Bug 100912 - Fix assertion fail in RenderGeometryMap::absoluteRect when frame scale != 1.0
Summary: Fix assertion fail in RenderGeometryMap::absoluteRect when frame scale != 1.0
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-31 19:04 PDT by Tien-Ren Chen
Modified: 2012-11-01 18:19 PDT (History)
6 users (show)

See Also:


Attachments
Patch (5.76 KB, patch)
2012-10-31 19:08 PDT, Tien-Ren Chen
no flags Details | Formatted Diff | Diff
Patch (4.92 KB, patch)
2012-11-01 00:05 PDT, Tien-Ren Chen
no flags Details | Formatted Diff | Diff
Patch (5.58 KB, patch)
2012-11-01 13:31 PDT, Tien-Ren Chen
no flags Details | Formatted Diff | Diff
Patch (4.92 KB, patch)
2012-11-01 13:53 PDT, Tien-Ren Chen
no flags Details | Formatted Diff | Diff
Patch (5.19 KB, patch)
2012-11-01 14:15 PDT, Tien-Ren Chen
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tien-Ren Chen 2012-10-31 19:04:58 PDT
Fix assertion fail in RenderGeometryMap::absoluteRect when frame scale != 1.0
Comment 1 Tien-Ren Chen 2012-10-31 19:08:37 PDT
Created attachment 171758 [details]
Patch
Comment 2 Simon Fraser (smfr) 2012-10-31 20:10:31 PDT
Comment on attachment 171758 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=171758&action=review

> Source/WebCore/rendering/RenderGeometryMap.cpp:125
> +        // If this box has a transform, it acts as a fixed position container
> +        // for fixed descendants, which prevents the propagation of 'fixed'
> +        // unless the layer itself is also fixed position.
> +        if (currentStep.m_hasTransform && !currentStep.m_isFixedPosition)
> +            inFixed = false;
> +        else if (currentStep.m_isFixedPosition)
> +            inFixed = true;

I'm not sure that moving this is correct. I think we may just want to special case the RenderView (step 0) to not disable the fixed handling if it has a transform.

Do we have test coverage for fixed inside transformed?

> LayoutTests/ChangeLog:4
> +        https://bugs.webkit.org/show_bug.cgi?id=100912

fail -> failure

> LayoutTests/ChangeLog:12
> +        tranformation case.

tranformation -> transformation
Comment 3 Tien-Ren Chen 2012-11-01 00:05:04 PDT
Created attachment 171783 [details]
Patch
Comment 4 Levi Weintraub 2012-11-01 04:48:21 PDT
Comment on attachment 171783 [details]
Patch

Great catch! I've hit that assert many times.
Comment 5 WebKit Review Bot 2012-11-01 05:38:36 PDT
Comment on attachment 171783 [details]
Patch

Rejecting attachment 171783 [details] from commit-queue.

New failing tests:
compositing/geometry/fixed-position-composited-page-scale-scroll.html
platform/chromium/virtual/softwarecompositing/geometry/fixed-position-composited-page-scale-scroll.html
Full output: http://queues.webkit.org/results/14696313
Comment 6 WebKit Review Bot 2012-11-01 05:59:28 PDT
Comment on attachment 171783 [details]
Patch

Attachment 171783 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14661592

New failing tests:
compositing/geometry/fixed-position-composited-page-scale-scroll.html
platform/chromium/virtual/softwarecompositing/geometry/fixed-position-composited-page-scale-scroll.html
Comment 7 Tien-Ren Chen 2012-11-01 13:31:18 PDT
Created attachment 171918 [details]
Patch
Comment 8 Tien-Ren Chen 2012-11-01 13:31:53 PDT
Change to ref-test
Comment 9 Simon Fraser (smfr) 2012-11-01 13:39:29 PDT
Comment on attachment 171918 [details]
Patch

I don't see the point of having a ref test for an assertion failure. Ref tests are slower to run.
Comment 10 Tien-Ren Chen 2012-11-01 13:53:42 PDT
Created attachment 171920 [details]
Patch
Comment 11 Simon Fraser (smfr) 2012-11-01 14:10:45 PDT
Comment on attachment 171920 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=171920&action=review

> LayoutTests/compositing/geometry/fixed-position-composited-page-scale-scroll-expected.txt:2
> +TEST
> +TEST

It's useful for the test output to say what the test is testing. So something like "This test should not hit an assertion in RenderGeometryMap in debug builds".
Comment 12 Tien-Ren Chen 2012-11-01 14:15:18 PDT
Created attachment 171929 [details]
Patch
Comment 13 WebKit Review Bot 2012-11-01 18:19:23 PDT
Comment on attachment 171929 [details]
Patch

Clearing flags on attachment: 171929

Committed r133248: <http://trac.webkit.org/changeset/133248>
Comment 14 WebKit Review Bot 2012-11-01 18:19:28 PDT
All reviewed patches have been landed.  Closing bug.