Bug 132535 - Top content inset: Margin tiles should not display in the inset area when pinned to the top of the page
Summary: Top content inset: Margin tiles should not display in the inset area when pin...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2014-05-03 15:36 PDT by Beth Dakin
Modified: 2014-08-16 09:16 PDT (History)
17 users (show)

See Also:


Attachments
Patch (52.56 KB, patch)
2014-05-03 15:58 PDT, Beth Dakin
simon.fraser: review+
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2 (149.69 KB, application/zip)
2014-05-03 16:44 PDT, Build Bot
no flags Details
Archive of layout-test-results from webkit-ews-06 for mac-mountainlion (191.38 KB, application/zip)
2014-05-03 18:03 PDT, Build Bot
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Beth Dakin 2014-05-03 15:36:53 PDT
Top content inset: Margin tiles should not display in the inset area when pinned to the top of the page. 

<rdar://problem/16609602>
Comment 1 Beth Dakin 2014-05-03 15:57:24 PDT
Oops, wrong radar number. I mean <rdar://problem/16613039>
Comment 2 Beth Dakin 2014-05-03 15:58:23 PDT
Created attachment 230768 [details]
Patch
Comment 3 WebKit Commit Bot 2014-05-03 16:01:07 PDT
Attachment 230768 [details] did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderLayerCompositor.cpp:1580:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/rendering/RenderLayerCompositor.cpp:1594:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 2 in 48 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 4 Simon Fraser (smfr) 2014-05-03 16:11:14 PDT
Comment on attachment 230768 [details]
Patch

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

r+ but it would be nice to try to share more of the layer position math, and fix UI-side compositing (at least encode/decode the new values).

> Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:223
> +                positionForInsetClipLayer = FloatPoint();

No need, it's already 0,0

> Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:226
> +                positionForInsetClipLayer = FloatPoint(0, topContentInset - scrollY);

positionForInsetClipLayer.setY(...)?

> Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:235
> +                if (insetClipLayer)
> +                    insetClipLayer->setPosition(positionForInsetClipLayer);

Why did we spend all that time computing positionForInsetClipLayer when we don't have one :(

> Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h:128
> +    // This is a clipping layer that will scroll with the page for all y-delta scroll values between 0
> +    // and topContentInset(). Once the y-deltas get beyond the content inset point, this layer no longer
> +    // needs to move.

Comment only applies to some configurations.

> Source/WebCore/rendering/RenderLayerCompositor.cpp:1603
> +FloatPoint RenderLayerCompositor::positionForClipLayer() const
> +{
> +    float contentInset = m_renderView.frameView().topContentInset();
> +    if (contentInset == 0)
> +        return FloatPoint();
> +
> +    int scrollY = std::max(0, m_renderView.frameView().scrollPosition().y());
> +
> +    if (scrollY >= contentInset)
> +        return FloatPoint();
> +
> +    return FloatPoint(0, contentInset - scrollY);
> +}
> +
> +float RenderLayerCompositor::topContentOffsetForRootLayer() const
> +{
> +    float contentInset = m_renderView.frameView().topContentInset();
> +    if (contentInset == 0)
> +        return 0;
> +
> +    int scrollY = std::max(0, m_renderView.frameView().scrollPosition().y());
> +
> +    if (scrollY >= contentInset)
> +        return contentInset;
> +
> +    return scrollY;
> +}

Doesn't this duplicate code in RenderLayerCompositor and teh scrolling tree node? Can we factor into a static FrameView function?
Comment 5 Build Bot 2014-05-03 16:44:48 PDT
Comment on attachment 230768 [details]
Patch

Attachment 230768 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/5751922292162560

New failing tests:
compositing/columns/untransformed-composited-in-paginated.html
compositing/columns/hittest-composited-in-paginated.html
compositing/contents-opaque/body-background-painted.html
compositing/absolute-inside-out-of-view-fixed.html
compositing/columns/composited-nested-columns.html
compositing/columns/clipped-in-paginated.html
compositing/columns/composited-columns.html
compositing/backing/no-backing-for-clip-overhang.html
compositing/columns/rotated-in-paginated.html
compositing/columns/composited-columns-vertical-rl.html
compositing/columns/ancestor-clipped-in-paginated.html
compositing/contents-opaque/background-color.html
compositing/bounds-in-flipped-writing-mode.html
compositing/columns/composited-in-paginated-writing-mode-rl.html
compositing/backing/backface-visibility-in-3dtransformed.html
compositing/tiled-layers-hidpi.html
compositing/contents-opaque/filter.html
compositing/animation/layer-for-filling-animation.html
compositing/columns/composited-in-paginated.html
compositing/contents-opaque/body-background-skipped.html
compositing/clip-child-by-non-stacking-ancestor.html
compositing/columns/composited-in-paginated-rl.html
compositing/animation/filling-animation-overlap.html
compositing/overflow-trumps-transform-style.html
compositing/backing/no-backing-for-clip.html
compositing/animation/filling-animation-overlap-at-end.html
compositing/backing/no-backing-for-clip-overlap.html
compositing/backing/no-backing-for-perspective.html
compositing/contents-opaque/control-layer.html
compositing/contents-opaque/background-clip.html
Comment 6 Build Bot 2014-05-03 16:44:54 PDT
Created attachment 230771 [details]
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-09  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5
Comment 7 Tim Horton 2014-05-03 16:50:58 PDT
(In reply to comment #5)
> (From update of attachment 230768 [details])
> Attachment 230768 [details] did not pass mac-wk2-ews (mac-wk2):
> Output: http://webkit-queues.appspot.com/results/5751922292162560

You could adjust RLB::shouldDumpPropertyForLayer, but if the new results are consistent between all platforms I think you should just extend your rebaselining and not introduce additional lying in the logging.
Comment 8 Build Bot 2014-05-03 18:02:58 PDT
Comment on attachment 230768 [details]
Patch

Attachment 230768 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/4998075806384128

New failing tests:
compositing/columns/hittest-composited-in-paginated.html
compositing/contents-opaque/body-background-painted.html
compositing/absolute-inside-out-of-view-fixed.html
compositing/columns/composited-nested-columns.html
compositing/columns/clipped-in-paginated.html
compositing/columns/composited-columns.html
compositing/backing/no-backing-for-clip-overhang.html
compositing/columns/rotated-in-paginated.html
compositing/columns/composited-columns-vertical-rl.html
compositing/columns/ancestor-clipped-in-paginated.html
compositing/contents-opaque/background-color.html
compositing/bounds-in-flipped-writing-mode.html
compositing/columns/composited-in-paginated-writing-mode-rl.html
compositing/backing/backface-visibility-in-3dtransformed.html
compositing/backing/no-backing-for-clip-overlap.html
compositing/contents-scale/animating.html
compositing/contents-opaque/filter.html
compositing/animation/layer-for-filling-animation.html
compositing/columns/composited-in-paginated.html
compositing/contents-opaque/hidden-with-visible-child.html
compositing/contents-opaque/body-background-skipped.html
compositing/contents-opaque/background-clip.html
compositing/columns/composited-in-paginated-rl.html
compositing/animation/filling-animation-overlap.html
compositing/backing/no-backing-for-clip.html
compositing/animation/filling-animation-overlap-at-end.html
compositing/columns/composited-lr-paginated-repaint.html
compositing/backing/no-backing-for-perspective.html
compositing/contents-opaque/control-layer.html
compositing/clip-child-by-non-stacking-ancestor.html
Comment 9 Build Bot 2014-05-03 18:03:05 PDT
Created attachment 230777 [details]
Archive of layout-test-results from webkit-ews-06 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-06  Port: mac-mountainlion  Platform: Mac OS X 10.8.5
Comment 10 Beth Dakin 2014-05-04 13:42:12 PDT
I addressed all of Simon's comments, and I continued re-baselining the tests. I'm not sure if that was the right decision, because it ended up being a ton of tests, but it's done for now at least.

http://trac.webkit.org/changeset/168244
Comment 11 Alexey Proskuryakov 2014-05-04 18:17:18 PDT
This patch broke compositing/visibility/visibility-image-layers-dynamic.html

http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=compositing%2Fvisibility%2Fvisibility-image-layers-dynamic.html

Actually, maybe it broke all these tests? I didn't check.

http://build.webkit.org/results/Apple%20MountainLion%20Release%20WK1%20(Tests)/r168244%20(19672)/results.html
Comment 12 Beth Dakin 2014-05-04 19:06:54 PDT
(In reply to comment #11)
> This patch broke compositing/visibility/visibility-image-layers-dynamic.html
> 

Still investigating what those differences are all about with this bug:
https://bugs.webkit.org/show_bug.cgi?id=132551

> http://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=compositing%2Fvisibility%2Fvisibility-image-layers-dynamic.html
> 
> Actually, maybe it broke all these tests? I didn't check.
> 
> http://build.webkit.org/results/Apple%20MountainLion%20Release%20WK1%20(Tests)/r168244%20(19672)/results.html

It did cause other failures, but they were all straightforward re-baselines, and I have committed the re-baselines.
Comment 13 mitz 2014-08-16 09:16:00 PDT
(In reply to comment #10)
> I addressed all of Simon's comments, and I continued re-baselining the tests. I'm not sure if that was the right decision, because it ended up being a ton of tests, but it's done for now at least.
> 
> http://trac.webkit.org/changeset/168244

This caused bug 136019.