funkydude / BasicMinimap

BasicMinimap is a basic solution to a clean, square minimap for World of Warcraft.
17 stars 10 forks source link

An action was blocked because of taint from BasicMinimap - Search() #75

Closed klingo closed 1 week ago

klingo commented 2 years ago

Describe the problem

Recently I have the problem that stometimes when opening the Dungeon Finder and checking the open listings, I get an error message that an action from an addon was blocked. I enabled the Taint Logging and found the entry mentioned further below in this issue.

What steps will reproduce the problem?

"Unfortunately", it cannot be reproduced consistently. Sometimes I can open the Dungeon Finder and check the open listings without problems, other times it does not work. So looks like the "tainting code" was not run yet in the case when it works.

Consider attaching a screenshot below to help describe your issue (Attach directly, do not link to other websites)

n/a, just the yellow message in the main chat window that an acttion from an addon was blocked.

What version of the addon are you using? (Stating 'latest' is not useful)

Version: v10.0.1

Do you have an error log of what happened?

From Blizzard's taint.log file:

10/30 09:42:31.739  An action was blocked because of taint from BasicMinimap - Search()
10/30 09:42:31.739      Interface\AddOns\Blizzard_LookingForGroupUI\Blizzard_LFGBrowse.lua:225 LFGBrowse_DoSearch()
10/30 09:42:31.739      Interface\AddOns\Blizzard_LookingForGroupUI\Blizzard_LFGBrowse.lua:178 LFGBrowseFrame:SearchActiveEntry()
10/30 09:42:31.739      Interface\AddOns\Blizzard_LookingForGroupUI\Blizzard_LFGParentFrame.lua:92 LFGParentFrame_SearchActiveEntry()
10/30 09:42:31.739      Interface\AddOns\Blizzard_LookingForGroupUI\Blizzard_LFGListing.lua:67

Any additional information? (example: WoW language if not English)

funkydude commented 2 years ago

Have you customized the "clicks" functionality? Are you using minimap clicks other than just left click?

klingo commented 2 years ago

Yes, I changed some of the settings, and sometimes use it to change tracking or open the calendar with the right/middle mouse button: image

funkydude commented 2 years ago

Does opening the calendar and tracking with those clicks before using LFG allow you to reproduce the issue 100%?

klingo commented 2 years ago

Yes, but only when opening the tracking menu. Once I do that, the issue is 100% reproducible. No need to actually select anything, just opening the tracking menu is sufficient. Opening the calendar works fine and does not cause any taint.

klingo commented 2 years ago

Oh, just noticed a second issue, which I think is the same (or very similary) as originally reported in issue #68 .

10/31 00:23:49.996  An action was blocked because of taint from BasicMinimap - GuildControlSetRank()
10/31 00:23:49.996      Interface_Wrath\FrameXML\FriendsFrame_Wrath.lua:487 GuildControlPopupFrameDropDownButton_ClickedRank()
10/31 00:23:49.996      Interface_Wrath\FrameXML\FriendsFrame_Wrath.lua:239 GuildControlPopupFrame_Initialize()
10/31 00:23:49.996      Interface_Wrath\FrameXML\FriendsFrame_Wrath.lua:156 FriendsFrame_OnEvent()
10/31 00:23:49.996      FriendsFrame:OnEvent()
10/31 00:23:49.996      SetGuildRosterShowOffline()
10/31 00:23:49.996      GuildFrameLFGButton:OnClick()

I can also 100% reproduce this by following these steps:

klingo commented 2 years ago

Managed to get some more details on the issue by disabling all addons except BasicMinimap:

10/31 23:55:23.485  Global variable UIDROPDOWNMENU_MENU_LEVEL tainted by BasicMinimap - Interface\FrameXML\UIDropDownMenu.lua:966 ToggleDropDownMenu()
10/31 23:55:23.485      Interface\AddOns\BasicMinimap\BasicMinimap_Wrath.lua:686
10/31 23:55:23.485  Execution tainted by BasicMinimap while reading UIDROPDOWNMENU_MENU_LEVEL - Interface\FrameXML\UIDropDownMenu.lua:890 UIDropDownMenu_GetSelectedID()
10/31 23:55:23.485      Interface\FrameXML\UIDropDownMenu.lua:550 UIDropDownMenu_AddButton()
10/31 23:55:23.485      Interface_Wrath\FrameXML\Minimap.lua:399 initFunction()
10/31 23:55:23.485      Interface\FrameXML\UIDropDownMenu.lua:79 UIDropDownMenu_Initialize()
10/31 23:55:23.485      Interface\FrameXML\UIDropDownMenu.lua:1094 ToggleDropDownMenu()
10/31 23:55:23.485      Interface\AddOns\BasicMinimap\BasicMinimap_Wrath.lua:686
10/31 23:55:23.485  An action was blocked because of taint from BasicMinimap - Search()
10/31 23:55:23.485      Interface\AddOns\Blizzard_LookingForGroupUI\Blizzard_LFGBrowse.lua:225 LFGBrowse_DoSearch()
10/31 23:55:23.485      Interface\AddOns\Blizzard_LookingForGroupUI\Blizzard_LFGBrowse.lua:178 LFGBrowseFrame:SearchActiveEntry()
10/31 23:55:23.485      Interface\AddOns\Blizzard_LookingForGroupUI\Blizzard_LFGParentFrame.lua:92 LFGParentFrame_SearchActiveEntry()
10/31 23:55:23.485      Interface\AddOns\Blizzard_LookingForGroupUI\Blizzard_LFGListing.lua:67
klingo commented 2 years ago

Hm, I just learned that this apparently is caused by a bug on Blizzard side that has not been fixed in over three years now :/ --> https://github.com/Stanzilla/WoWUIBugs/issues/4

funkydude commented 2 years ago

Thanks. I appreciate all the info but no more is needed lol. The fix for this is re-creating a custom tracking menu, which will take some time. Until then, you can resolve this issue by typing /reload when it occurs.

klingo commented 1 year ago

Maybe https://www.wowinterface.com/downloads/info24408-LibUIDropDownMenu.html would help? According to the description this lib aims to avoid taints while still providing the UIDropDownMenu features.

funkydude commented 3 months ago

This is now resolved in retail wow, but we must wait for a future patch for the new dropdown system to be backported to classic.

This issue will remain open until then.

funkydude commented 1 week ago

Should finally now be resolved with WoW Cataclysm 4.4.1 which backports their new menu system from retail WoW.