Closed Bug 725664 Opened 12 years ago Closed 10 years ago

UpdateOverflow handling is wrong for transforms

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: MatsPalmgren_bugz, Assigned: MatsPalmgren_bugz)

References

Details

(Keywords: regression, testcase)

Attachments

(1 file)

Attached file Testcase
The wallpaper in bug 722325 is wrong.  It causes the overflow areas
to monotonically grow until there is a reflow.
No longer blocks: 722325
Blocks: 722325
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)'
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
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
We should land the testcase here as a reftest if it wasn't done in some other bug.
Flags: in-testsuite?
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.)
(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.)
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.

Attachment

General

Created:
Updated:
Size: