Right now, quite a few addons use the Blizzard UI Function UIFrameFade and UIFrameFlash. These functions are also used in the secure code that handle the vocal notification of the base UI, so when people use the vocal chat in fight, trouble ensue, the frame does not get correctly updated, ...
It would be very easy to rewrite the API, I even already did so :
local fadeInfo = {};
fadeInfo.mode = "OUT";
fadeInfo.timeToFade = .35;
fadeInfo.startAlpha = 1;
fadeInfo.endAlpha = 0;
fadeInfo.finishedFunc = function() if ( #VOICECHAT_TALKERS > 0 ) then return end VoiceChatTalkers.buttons[1].button:SetAttribute("name", nil); VoiceChatTalkers.buttons[1]:Hide() VoiceChatTalkersSpeaker:Show() end;
UIFrameFade(VoiceChatTalkers, fadeInfo);
VoiceChatTalkers.visible = 0;
If any addon calls an API part of UIFrameFade (or UIFrameFlash, which in turn use UIFrameFade), then UIFrameFade itself becomes tainted, so the code path that leads to fadeInfo.finishedFunc above being called becomes tainted and the code fails in combat.
Seems like this should be reported on the UI forums so that Blizzard can fix it. We shouldn't have to work around issues like this in the API.
EDIT: That said, if you want to provide a patch for http://svn.wowace.com/wowace/trunk/BigWigs/Extras/Flash.lua, I would review it and accept.
Personally I don't have a stable connection or a WoW account right now, so I can't take it upon myself to integrate your code at this point.
<offtopic>
Ugh. Looking at Blizzard lua makes me want to cry sometimes.
This will create a new table and a new function every time everyone shut up in voice chat. Glad I don't use it.
Almost worse than creating a new table every time my combo points change. gg Blizz
</offtopic>
I'm bumping this, because I think it needs to be posted on the US UI and macros forum so that Blizzard know the issue. I don't have access to this forum so I can't do it myself.
The core of the issue is the anonymous function on line 112 in FrameXML/VoiceChat.lua. This function can't work if the UIFrameFade/UIFrameFlash() API has been tainted by addon code. Obviously using directly the API will taint it, but it seems to be really fragile.
As explained there, some unrelated code end up tainting the UIFrameFade() API, which seems to show that this particular API is very sensible to taint, and maybe needs to be strengthen against taint or the particular use in VoiceChat.lua changed so that it can be tainted.
Necro as this is still relevant and more so since 3.3.5.
I've had taint when flashing some frames in combat regardless of using vocal chat or not.
(this was not the case prior to 3.3.5 with the exact same codebase)
Necro as this is still relevant and more so since 3.3.5.
I've had taint when flashing some frames in combat regardless of using vocal chat or not.
(this was not the case prior to 3.3.5 with the exact same codebase)
Yeah, the only solution is still, flashing it with your own function, or not flashing. I wonder if the animation system can be used as a replacement? I've barely looked at it.
Right now, quite a few addons use the Blizzard UI Function UIFrameFade and UIFrameFlash. These functions are also used in the secure code that handle the vocal notification of the base UI, so when people use the vocal chat in fight, trouble ensue, the frame does not get correctly updated, ...
It would be very easy to rewrite the API, I even already did so :
http://wow-jerry-stuff.googlecode.com/svn/trunk/jerry/ffade.lua
or, as a Library (untested) :
http://wow-jerry-stuff.googlecode.com/svn/trunk/jLootz/fades.lua
The reason is on line 112 of FrameXML/VoiceChat.lua :
If any addon calls an API part of UIFrameFade (or UIFrameFlash, which in turn use UIFrameFade), then UIFrameFade itself becomes tainted, so the code path that leads to fadeInfo.finishedFunc above being called becomes tainted and the code fails in combat.
EDIT: That said, if you want to provide a patch for http://svn.wowace.com/wowace/trunk/BigWigs/Extras/Flash.lua, I would review it and accept.
Personally I don't have a stable connection or a WoW account right now, so I can't take it upon myself to integrate your code at this point.
Ugh. Looking at Blizzard lua makes me want to cry sometimes.
This will create a new table and a new function every time everyone shut up in voice chat. Glad I don't use it.
Almost worse than creating a new table every time my combo points change. gg Blizz
</offtopic>
The core of the issue is the anonymous function on line 112 in FrameXML/VoiceChat.lua. This function can't work if the UIFrameFade/UIFrameFlash() API has been tainted by addon code. Obviously using directly the API will taint it, but it seems to be really fragile.
Look at the last commit I made for Links, too :
http://groups.google.com/group/wowace/browse_thread/thread/44332a6c39024eb2
As explained there, some unrelated code end up tainting the UIFrameFade() API, which seems to show that this particular API is very sensible to taint, and maybe needs to be strengthen against taint or the particular use in VoiceChat.lua changed so that it can be tainted.
I've had taint when flashing some frames in combat regardless of using vocal chat or not.
(this was not the case prior to 3.3.5 with the exact same codebase)
I have experienced this as well.
Did you have any code written down that you could share? :p
That's an interesting experiment though. I'm afraid reparenting an AnimationGroup is probably neither optimised nor tested on the client.
Scratch that. AnimationGroup can't be reparented.