Closed Bug 1093712 Opened 9 years ago Closed 9 years ago

Loadee does not call frames if Loader is not on the stage

Categories

(Firefox Graveyard :: Shumway, defect)

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: yury, Assigned: tschneider)

References

()

Details

Attachments

(1 file)

If loadee is not added to the main stage, the frames code is not called, e.g.

 _loader = new Loader();
 _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);
 // notice no addChild(_loader);
 _loader.load(new URLRequest("Loadee.swf"));

When loader_complete is called, Loadee.swf does not call any frame scripts however Loadee's frame(s) was advanced.

Breaks any video players built based on standard video component.
Yury says this affects video players using Adobe's video component.
Assignee: nobody → till
Blocks: shumway-m3
Assignee: till → schneider
The issue here is that in the event loop we call _enqueueFrameScripts only on instances of MovieClip which excludes Loaders. We should call it on all items in DisplayObject._advancableInstances. Moved the instanceof check into an relase || assert since advancableInstances should already only contain objects of type DisplayObjectContainer.
Attachment #8560183 - Flags: review?(till)
So sorry for totally being wrong with my previous assumption. Of course we always have to do the instanceof check, but doing so to check for DisplayObjectContainers, not just MovieClips. Updated the pull-request, still asking for review :).
Comment on attachment 8560183 [details] [review]
Link to Github pull-request: https://github.com/mozilla/shumway/pull/2058

Looks good, thanks.
Attachment #8560183 - Flags: review?(till) → review+
Fixed in https://github.com/mozilla/shumway/pull/2058.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Product: Firefox → Firefox Graveyard
You need to log in before you can comment on or make changes to this bug.