Closed
Bug 725664
Opened 13 years ago
Closed 10 years ago
UpdateOverflow handling is wrong for transforms
Categories
(Core :: Layout, defect)
Core
Layout
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: MatsPalmgren_bugz, Assigned: MatsPalmgren_bugz)
References
Details
(Keywords: regression, testcase)
Attachments
(1 file)
452 bytes,
text/html
|
Details |
The wallpaper in bug 722325 is wrong. It causes the overflow areas
to monotonically grow until there is a reflow.
Assignee | ||
Comment 1•13 years ago
|
||
I think the problem is related to IsIgnoringViewportClipping() being true.
When scrolling the viewport I'm seeing transform style changes with a 1px diff,
they seem synthetic in the sense they don't appear to correspond to the scroll
position but just used to invalidate, or something.
I/Gecko (14954): ScrollVisual: blitting active IsIgnoringViewportClipping
D/GeckoLayerController(14954): scrollBy: v=RectF(0.0, 6284.0894, 720.0, 7322.0933) p=(720.0,9704.0) z=2.0 o=0.0,0.0
D/GeckoLayerController(14954): scrollBy: v=RectF(0.0, 6295.204, 720.0, 7333.208) p=(720.0,9704.0) z=2.0 o=0.0,0.0
I/Gecko (14954): mSpecifiedTransform '
I/Gecko (14954): translate(0px, 101px) scale(2)'
I/Gecko (14954): != aOther.mSpecifiedTransform '
I/Gecko (14954): translate(0px, 100px) scale(2)'
I/Gecko (14954): mSpecifiedTransform '
I/Gecko (14954): translate(0px, 101px) scale(2)'
I/Gecko (14954): != aOther.mSpecifiedTransform '
I/Gecko (14954): translate(0px, 100px) scale(2)'
I/Gecko (14954): AndroidGeckoEvent: 0x419334d0 : 20
I/Gecko (14954): ScrollVisual: blitting active IsIgnoringViewportClipping
I/Gecko (14954): mSpecifiedTransform '
I/Gecko (14954): translate(0px, 100px) scale(2)'
I/Gecko (14954): != aOther.mSpecifiedTransform '
I/Gecko (14954): translate(0px, 99px) scale(2)'
I/Gecko (14954): mSpecifiedTransform '
I/Gecko (14954): translate(0px, 100px) scale(2)'
I/Gecko (14954): != aOther.mSpecifiedTransform '
I/Gecko (14954): translate(0px, 99px) scale(2)'
Assignee | ||
Comment 2•13 years ago
|
||
... and ViewportFrame / SubdocumentFrame has special overflow stuff too:
http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsSubDocumentFrame.cpp#613
http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsViewportFrame.cpp#281
The patch in bug 720987 that was partially backed out is also wrong, as I describe in bug 984226.
I think this should be fixed as I describe in bug 984226 comment 3.
Depends on: 984226
Assignee | ||
Updated•10 years ago
|
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
Assignee | ||
Comment 5•10 years ago
|
||
We should land the testcase here as a reftest if it wasn't done in some other bug.
Flags: in-testsuite?
Comment 6•10 years ago
|
||
What was the original buggy rendering of the testcase here? (comment 0 said the overflow areas
monotonically grow until there's a reflow, but that doesn't sound like something that would be visible in a reftest)
I'm asking both w.r.t. comment 5 and w.r.t. bug 1131371 comment 10. (I'm not sure how to tell if I'm regressing this testcase, aside from using GDB and trying to inspect the overflow areas.)
Comment 7•10 years ago
|
||
(oh, maybe the buggy rendering was that scrollbars were triggered? I can see how too-large overflow areas would cause that, & that does seem reftest-able.)
Assignee | ||
Comment 8•10 years ago
|
||
Oh, it was very visible, the outline was repainted with an offset outward for each run
in the interval until it hit the viewport at which point a reflow was triggered and the
overflow areas were reset and it started all over again. So, just a couple of doTest()
calls instead of the setInterval() would catch it in a reftest I would think.
You need to log in
before you can comment on or make changes to this bug.
Description
•