Closed Bug 635405 Opened 11 years ago Closed 11 years ago

Zooming windowless plugin frame can cause it to "bleed" outside bounds


(Core :: Layout, defect)

Not set



Tracking Status
blocking2.0 --- final+


(Reporter: cjones, Assigned: mats)




(Keywords: regression, Whiteboard: [softblocker])


(1 file, 1 obsolete file)

 (1) Load URL above
 (2) Ctrl-+ page to zoom in a ways
 (3) Ctrl-0

The plugin ImageLayer ends up drawing outside its bounds and splatting content all over its surrounding ThebesLayer.  Nothing knows to invalidate what was splatted, so it can persist "forever".

Not clear yet what's causing this; roc suggested empty transactions.  Wouldn't necessarily block on this, but it's a regression from 3.6.  Would be nice to fix.
(Can't attach a screenshot because that invalidate the entire window and makes the glitch go away.  But it's easy to repro.)
This could very well be the plugin version of bug 633164.
Yup, I'd take that bet.
It certainly meets softblocker criteria.
blocking2.0: --- → final+
Keywords: regression
Whiteboard: [softblocker]
Attached patch wip (obsolete) — Splinter Review
Fwiw, this seems to fix it.  Should we fall through here?
It's the nsDisplayPluginReadback that is causing the problem.
I don't see how that can possibly be right. We wouldn't paint anything when using async rendering.
Applying the patches in bug 631388 changes the symptoms in this bug.
Now the damage looks similar to what I saw in bug 633164, ie changing
the zoom doesn't invalidate the old area.
Depends on: 631388
Attached patch fix v1Splinter Review
Detect image size change and then UnionRect the old area to the
damage so that it'll be Invalidated too.
Simplify the common "rect + TopLeft" expressions to make the code
more readable.
Attachment #513694 - Attachment is obsolete: true
Attachment #514336 - Flags: review?(roc)
Needs bug 631388 though to work correctly, although I think it wouldn't
cause any problem if we landed it before that.
Whiteboard: [softblocker] → [softblocker][needs landing]
Closed: 11 years ago
Resolution: --- → FIXED
Summary: Resizing windowless plugin frame can cause it to "bleed" outside bounds → Zooming windowless plugin frame can cause it to "bleed" outside bounds
Whiteboard: [softblocker][needs landing] → [softblocker]
Target Milestone: --- → mozilla2.0
Depends on: 647554
You need to log in before you can comment on or make changes to this bug.