Closed
Bug 796183
Opened 12 years ago
Closed 12 years ago
Updating/invalidation broken for plugins running OOP on OS X
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(firefox18+ verified)
RESOLVED
FIXED
People
(Reporter: smichaud, Assigned: mattwoodrow)
References
()
Details
(Keywords: regression)
Attachments
(1 file)
This started with today's mozilla-central nightly, and specifically with the patch for bug 795796 (http://hg.mozilla.org/mozilla-central/rev/beee809b7ade).
To see it, load one of the Flash movies on the following page, and compare what you see with the performance in yesterday's mozilla-central nightly (or in earlier FF distros). In today's nightly, both movies update much less often than they should.
http://mirrors.creativecommons.org/
I see this bug on OS X (10.7.5), but not in Windows XP.
This bug is spun off from bug 785667.
Reporter | ||
Comment 1•12 years ago
|
||
The bug happens whether or not HiDPI support is enabled.
To disable HiDPI support on a Retina display, set gfx.hidpi.enabled to '-1'.
Reporter | ||
Updated•12 years ago
|
Comment 2•12 years ago
|
||
I think this is bug 795796, so it should be fixed in the next nightly.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
Comment 3•12 years ago
|
||
Oh, oops. It's a regression from that bug? Sorry.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Reporter | ||
Comment 5•12 years ago
|
||
This bug effects Flash and Silverlight, but not Java. Flash and Silverlight use Core Animation, while Java uses Invalidating Core Animation. I suspect that's the key here.
Here's an example of Java animation:
http://www.eskimo.com/support/java/demo/Animator/example1.html
Assignee: nobody → matt.woodrow
Status: REOPENED → NEW
Summary: Updating/invalidation broken for at least some plugins on OS X → Updating/invalidation broken for Core Animation plugins on OS X
Reporter | ||
Updated•12 years ago
|
tracking-firefox18:
--- → ?
Keywords: regression
Reporter | ||
Updated•12 years ago
|
Severity: normal → major
Reporter | ||
Comment 6•12 years ago
|
||
To make updating work properly in (non invalidating) Core Animation mode, we use a timer to invalidate the plugin "window" every 20 ms:
http://hg.mozilla.org/mozilla-central/annotate/345a2a8ccb18/dom/plugins/ipc/PluginInstanceChild.cpp#l553
http://hg.mozilla.org/mozilla-central/annotate/345a2a8ccb18/dom/plugins/ipc/PluginInstanceChild.cpp#l460
I suspect the patch for bug 795796 is somehow preventing most of these invalidations from having effect.
(Yes, using a timer to do this is inefficient. And for some time we've also had support for an Invalidating Core Animation mode, in which the plugin is responsible for calling NPN_InvalidateRect() whenever all/part of the plugin needs to be updated: https://wiki.mozilla.org/NPAPI:InvalidatingCoreAnimation. But Flash and Silverlight haven't yet moved to Invalidating Core Animation.)
Reporter | ||
Updated•12 years ago
|
Summary: Updating/invalidation broken for Core Animation plugins on OS X → Updating/invalidation broken for (non-invalidating) Core Animation plugins on OS X
Reporter | ||
Comment 7•12 years ago
|
||
Core Graphics plugins are also effected by this bug when they run OOP (because we "borrow" the Core Animation infrastructure (using a subclass of CALayer called CGBridgeLayer) to draw Core Animation plugins when they run out-of-process).
The only example of a Core Animation plugin that I'm aware of is my Debug Events Plugin from bug 441880, which doesn't do animation. But I've heard there are others out there.
Comment 8•12 years ago
|
||
(In reply to Steven Michaud from comment #6)
> But Flash and
> Silverlight haven't yet moved to Invalidating Core Animation.)
I don't know about Silverlight but flash certainly used ICA last time I checked
Reporter | ||
Comment 9•12 years ago
|
||
> The only example of a Core Animation plugin that I'm aware of is my Debug Events
> Plugin from bug 441880 ...
The only example of a Core *Graphics* plugin ...
Reporter | ||
Comment 10•12 years ago
|
||
> I don't know about Silverlight but flash certainly used ICA last time I checked
In my tests for bug 785667 (the latest run about a week ago) I saw Flash and Silverlight use (non-invaliding) Core Animation.
Reporter | ||
Comment 11•12 years ago
|
||
Let me try again, though (in case I made a mistake).
Reporter | ||
Comment 12•12 years ago
|
||
(Following up comment #5)
Still compiling my debugging patch. But my hunch is falling apart in other ways: Java plugins by default run in-process (which I'd forgotten). But when I set Java to run out-of-process (by setting dom.ipc.plugins.java.enabled to true), it also fails to update properly.
I'll say more when I have a better hunch.
Reporter | ||
Updated•12 years ago
|
Summary: Updating/invalidation broken for (non-invalidating) Core Animation plugins on OS X → Updating/invalidation broken for plugins running OOP on OS X
Reporter | ||
Comment 13•12 years ago
|
||
I was wrong about which plugins use Core Animation and Invalidating Core Animation. I must have misremembered.
Flash does use Invalidating Core Animation. The version I tested with (which I think is current) is 11.4.402.265.
Silverlight and Java use (non invalidating) Core Animation.
Updated•12 years ago
|
Assignee | ||
Comment 15•12 years ago
|
||
Thanks for looking into this Steven.
Attachment #667197 -
Flags: review?(roc)
Attachment #667197 -
Flags: review?(roc) → review+
Assignee | ||
Comment 16•12 years ago
|
||
Status: NEW → RESOLVED
Closed: 12 years ago → 12 years ago
Resolution: --- → FIXED
Updated•12 years ago
|
status-firefox18:
--- → fixed
Comment 18•12 years ago
|
||
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:18.0) Gecko/20100101 Firefox/18.0
Verified as fixed on Firefox 18 beta 2 - flash movies and Silverlight animations are properly updating.
QA Contact: simona.marcu
Updated•2 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•