Dragonfligh Pre-Patch...
Natlyz opened this issue ยท 21 comments
Hello!
With pre-patch release the addon seems to be broken ๐ฐ
8x bad argument #2 to '?' (Usage: self:SetParent([parent]))
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: in function SetParent' [string "@Interface/AddOns/XanChat/xanChat.lua"]:866: in function <Interface/AddOns/XanChat/xanChat.lua:795> [string "@Interface/AddOns/XanChat/xanChat.lua"]:1004: in function <Interface/AddOns/XanChat/xanChat.lua:1003> [string "@Interface/AddOns/XanChat/xanChat.lua"]:1682: in function
EnableAddon'
[string "@Interface/AddOns/XanChat/xanChat.lua"]:26: in function <Interface/AddOns/XanChat/xanChat.lua:15>
Locals:
(*temporary) = "bad argument #2 to '?' (Usage: self:SetParent([parent]))"
It looks like they just disabled and reworked a lot of their code to break addons. Why am I not surprised. They do this every patch and every expansion. I'll take a look at it, but without an active account this will be interesting.
It looks like they just disabled and reworked a lot of their code to break addons. Why am I not surprised. They do this every patch and every expansion. I'll take a look at it, but without an active account this will be interesting.
Thanks! Btw, you don't need an active subscription anymore. You can can make and play any character up to lvl20 for free.
"SetItemRef" is broken and it seems all chat addon authors are taking a break until Blizzard fixes their code.
"SetItemRef" is broken and it seems all chat addon authors are taking a break until Blizzard fixes their code.
Interesting, so they broke it and its affected every chat addon out there. Can you point in my the direction of this discussion. Perhaps it will shed some light on other issues my addon has. I'm fixing things as I can one addon at a time so it's a bit frustrating XD. They really did a mess with this expansion.
"SetItemRef" is broken and it seems all chat addon authors are taking a break until Blizzard fixes their code.
Interesting, so they broke it and its affected every chat addon out there. Can you point in my the direction of this discussion. Perhaps it will shed some light on other issues my addon has. I'm fixing things as I can one addon at a time so it's a bit frustrating XD. They really did a mess with this expansion.
I heard that from Lightspark in his LS:UI addon's discord: https://discord.com/invite/7QcJgQkDYD (everyone is welcome to join)
He's on some "addon dev" discord where they discuss all the stuff Blizzard did to the UI.
Sup, aforementioned "Lightspark" here ๐ค I discovered it while experimenting with the Glass addon, I was rewriting it to see if it's worth taking it over or nah.
SetItemRef
which handles clicks on player names, item links, outfit links, basically all links in the game, isn't broken, it works perfectly fine, but it taints the UI like crazy if it's called from insecure code aka addons.For instance, here I make link handling insecure via
ChatFrame1:SetScript("OnHyperlinkClick", ChatFrame_OnHyperlinkShow)
and the layout editor becomes super grumpy.rip_sir.mp4
And ofc in combat you'll be greeted withInterface action failed because of an AddOn.
, you won't be able to hide chat tabs while in combat either, and all the good stuff :DThe worst part is that, it's not broken, it works perfectly fine within the secure environment.
SetItemRef
just does A LOT while handling links, like, it opens frames and whatnot, there's prob even some potential for abuse. So the chance of Blizz adding a wrapper that would "sanitise" our input before passing it toSetItemRef
is highly unlikely, already asked some people in the know...That said, I have no idea if you even use
SetItemRef
in your code, I'm just here because @Natlyz told me about this discussion ๐ But you should be safe as long as your chat addon doesn't use it.
It does use SetItemRef actually and I'm going to have to tackle this problem once I get to it. I'm moving down the line in terms of ALL MY ADDONS. So as you can imagine I'm extremely frustrated trying to fix them all after Blizzard blundering continued mess for addon authors after every patch or expansion.
Thank you SOOO much for taking the time to post here and explain the situation. It sheds some light as to what is going on and gives me a clear picture as to why the problems are happening. The taint situation is going to be problematic as if you say it has been updated to reflect more changes in the code, I suspect this will fire a lot of taint problems. Which no way around it I may have to sacrifice functionality if I cannot find a proper way to reduce tainting.
You are correct though in your assumption that Blizzard will probably NOT add a wrapper around it. They in general are usually extremely reluctant to help out addon authors and just tell you to work with what you got.
This should be interesting once I get to it. XD
Sup, aforementioned "Lightspark" here ๐ค I discovered it while experimenting with the Glass addon, I was rewriting it to see if it's worth taking it over or nah.
SetItemRef
which handles clicks on player names, item links, outfit links, basically all links in the game, isn't broken, it works perfectly fine, but it taints the UI like crazy if it's called from insecure code aka addons.
For instance, here I make link handling insecure via ChatFrame1:SetScript("OnHyperlinkClick", ChatFrame_OnHyperlinkShow)
and the layout editor becomes super grumpy.
rip_sir.mp4
And ofc in combat you'll be greeted with Interface action failed because of an AddOn.
, you won't be able to hide chat tabs while in combat either, and all the good stuff :D
The worst part is that, it's not broken, it works perfectly fine within the secure environment. SetItemRef
just does A LOT while handling links, like, it opens frames and whatnot, there's prob even some potential for abuse. So the chance of Blizz adding a wrapper that would "sanitise" our input before passing it to SetItemRef
is highly unlikely, already asked some people in the know...
That said, I have no idea if you even use SetItemRef
in your code, I'm just here because @Natlyz told me about this discussion ๐ But you should be safe as long as your chat addon doesn't use it.
YW! <3
Man, I just came up with a workaround for the issue!
<Frame name="YourHyperlinkPropagator" propagateHyperlinksToParent="true" virtual="true"/>
Add this template to whatever you're using to display your messages, and then parent it to Blizz ChatFrame#
, this will make them handle all the links for you without actually tainting the code! I just found that attribute, it's an XML only thing, but it works flawlessly! Now I need to check if it's possible to chain it...
Guess it's time to restart my work on Glass XD
-- edit
Yes, it's possible to chain them! All the frames that are between ChatFrame#
and your custom chat message need to inherit that template! ๐ฅณ ๐ Damn, I "love" undocumented features ๐๐ซ
YW! <3
Man, I just came up with a workaround for the issue!
<Frame name="YourHyperlinkPropagator" propagateHyperlinksToParent="true" virtual="true"/>
Add this template to whatever you're using to display your messages, and then parent it to Blizz
ChatFrame#
, this will make them handle all the links for you without actually tainting the code! I just found that attribute, it's an XML only thing, but it works flawlessly! Now I need to check if it's possible to chain it...Guess it's time to restart my work on Glass XD
-- edit
Yes, it's possible to chain them! All the frames that are between
ChatFrame#
and your custom chat message need to inherit that template! ๐ฅณ ๐ Damn, I "love" undocumented features ๐๐ซ
WOW Nice find! Also YEAH.... tell me about it when it comes to undocumented features. I've had my fair share with them and it's WONDERFUL when you can't see any active decompiled use of them in the official Blizzard code other than a single line. Fun times!! Especially when you to experiment to figure out what exactly it's doing since it's undocumented.
Thank you so much for this awesome find! I hope it's working okay and not exploding the addon on your end. I'm nearly done going down the list with my other addons before I tackle this one. :) Big hug! Thanks for updates!
I wait with abated breath for an update. Thank you for working on this great addon.
I wait with abated breath for an update. Thank you for working on this great addon.
Aww thank you! I didn't think so many people actually used this addon. So that's kind of nice to know ๐
I'm going to work on this next once the servers go back up after maintenance. I'm going to also see about adding support for Classic and WOTLK. But that may be a bust since they share completely different chat systems and restrictions.
I wait with abated breath for an update. Thank you for working on this great addon.
Aww thank you! I didn't think so many people actually used this addon. So that's kind of nice to know ๐
I'm going to work on this next once the servers go back up after maintenance. I'm going to also see about adding support for Classic and WOTLK. But that may be a bust since they share completely different chat systems and restrictions.
Well, in case you weren't aware, Phanx was an author who had, for MANY years, produced some really great quality-of-life addons. One such addon was PhanxChat. However, he left WoW back in, I want to say BfA, and his addon died. YOUR addon is a wonderful replacement.
I've identified the issues with the mod and have worked around some of the restrictions. I'm reworking on how it processes the new Temporary Chat windows that are created now. That way they are also affected with any changes. In addition I'm reviewing each option to ensure they work as intended.
That's great!
Not sure if that helps, but note that we now have new chat channels: Newcomer /4 and Trade (Services) /5.
When opening the Edit Mode:
1x [ADDON_ACTION_FORBIDDEN] AddOn 'XanChat' tried to call the protected function 'ClearTarget()'.
[string "@Interface/AddOns/!BugGrabber/BugGrabber.lua"]:480: in function <Interface/AddOns/!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: in function `ClearTarget'
[string "@Interface/FrameXML/EditModeManager.lua"]:1496: in function `ResetTargetAndFocus'
[string "@Interface/FrameXML/EditModeManager.lua"]:1531: in function `RefreshTargetAndFocus'
[string "@Interface/FrameXML/EditModeManager.lua"]:1462: in function `OnEditModeEnter'
[string "@Interface/FrameXML/EditModeManager.lua"]:171: in function `EnterEditMode'
[string "@Interface/FrameXML/EditModeManager.lua"]:193: in function <Interface/FrameXML/EditModeManager.lua:191>
[string "=[C]"]: in function `Show'
[string "@Interface/FrameXML/UIParent.lua"]:2844: in function `SetUIPanel'
[string "@Interface/FrameXML/UIParent.lua"]:2648: in function `ShowUIPanel'
[string "@Interface/FrameXML/UIParent.lua"]:2552: in function <Interface/FrameXML/UIParent.lua:2548>
[string "=[C]"]: in function `SetAttribute'
[string "@Interface/FrameXML/UIParent.lua"]:3150: in function `ShowUIPanel'
[string "@Interface/FrameXML/FloatingChatFrame.lua"]:282: in function `func'
[string "@Interface/SharedXML/UIDropDownMenu.lua"]:1007: in function `UIDropDownMenuButton_OnClick'
[string "*UIDropDownMenuTemplates.xml:136_OnClick"]:1: in function <[string "*UIDropDownMenuTemplates.xml:136_OnClick"]:1>
When opening the Edit Mode:
1x [ADDON_ACTION_FORBIDDEN] AddOn 'XanChat' tried to call the protected function 'ClearTarget()'. [string "@Interface/AddOns/!BugGrabber/BugGrabber.lua"]:480: in function <Interface/AddOns/!BugGrabber/BugGrabber.lua:480> [string "=[C]"]: in function `ClearTarget' [string "@Interface/FrameXML/EditModeManager.lua"]:1496: in function `ResetTargetAndFocus' [string "@Interface/FrameXML/EditModeManager.lua"]:1531: in function `RefreshTargetAndFocus' [string "@Interface/FrameXML/EditModeManager.lua"]:1462: in function `OnEditModeEnter' [string "@Interface/FrameXML/EditModeManager.lua"]:171: in function `EnterEditMode' [string "@Interface/FrameXML/EditModeManager.lua"]:193: in function <Interface/FrameXML/EditModeManager.lua:191> [string "=[C]"]: in function `Show' [string "@Interface/FrameXML/UIParent.lua"]:2844: in function `SetUIPanel' [string "@Interface/FrameXML/UIParent.lua"]:2648: in function `ShowUIPanel' [string "@Interface/FrameXML/UIParent.lua"]:2552: in function <Interface/FrameXML/UIParent.lua:2548> [string "=[C]"]: in function `SetAttribute' [string "@Interface/FrameXML/UIParent.lua"]:3150: in function `ShowUIPanel' [string "@Interface/FrameXML/FloatingChatFrame.lua"]:282: in function `func' [string "@Interface/SharedXML/UIDropDownMenu.lua"]:1007: in function `UIDropDownMenuButton_OnClick' [string "*UIDropDownMenuTemplates.xml:136_OnClick"]:1: in function <[string "*UIDropDownMenuTemplates.xml:136_OnClick"]:1>
Can you open a new ticket with these issues? It's a bit of a pain to keep going back to a closed ticket.