New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 651793 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

[RLS] fix layout test case for css3.0 folder

Project Member Reported by satay...@samsung.com, Sep 30 2016

Issue description

enable RLS and fix layout test failures for css3.0 folder.

 
Skobes,

blur-filter-page-scroll.html

I have checked this bug,

Please see the attached screenshot for the failure. I have debugged this issue, please see my below findings.


1. In working of non RLS. (Working Case)


//Before Scroll by 100px;

1. HTML/BODY Layer at (0,0)
2. Blur DIV Layer at (0,0) (this has 3 divs; fixedbox, redbox, greenbox)
    i. redbox at (0,0) ; height is 200px.
	ii. greenbox at (0,200)
3. fixedbox(black on) position is fixed and has Layer at (0, 0)
    
//Now Scroll by 100px using JS;

1. HTML/BODY Layer at (0,0)
2. Blur DIV Layer at (0,0) (this has 3 divs; fixedbox, redbox, greenbox)
    i. redbox at (0,0) ; height is 200px.
	ii. greenbox at (0,200)
3. fixedbox(black on) position is fixed and has Layer at (0, 100)

As we see Only Fixed Position Layer is scrolled down by 100px;


2. In case of RLS. (non Working Case)

//Before Scroll by 100px;

1. HTML/BODY Layer at (0,0)
2. Blur DIV Layer at (0,0) (this has 3 divs; fixedbox, redbox, greenbox)
    i. redbox at (0,0) ; height is 200px.
	ii. greenbox at (0,200)
3. fixedbox(black on) position is fixed and has Layer at (0, 0)
    
//Now Scroll by 100px using JS;

1. HTML/BODY Layer at (0, -100)  // All 3 Layers are moved by 100 
2. Blur DIV Layer at (0, -100) (this has 3 divs; fixedbox, redbox, greenbox)
    i. redbox at (0,0) ; height is 200px.
	ii. greenbox at (0,200)
3. fixedbox(black on) position is fixed and has Layer at (0, 0)

As we see Fixed Position Layer is remained constant at (0, 0), but behind content scrolled downed by -100px.

In Non RLS case, FrameView::setScrollPosition is triggered, in RLS case PaintLayerScrollableArea::setScrollPosition is triggered.

Do we need to unify this behvaiour ? only Fixed Layer scrolling down by 100 px instead of content scrolling up by -100px ?

Any pointers ? There are similar kind of bugs in this folder.
SEJU5N~E.PNG
172 KB View Download

Comment 2 by skobes@chromium.org, Oct 10 2016

It seems we get different LayoutTreeAsText output because (non-root) PaintLayer locations are in frame coordinates instead of document content coordinates.  I think this reflects correct RLS-mode behavior of PaintLayerClipper::calculateRects.

The easiest fix is for LayoutTreeAsText::writeLayers to offset the layer bounds by the root layer's scroll offset, so that the output matches.  We already have similar RLS compat hacks in LayoutTreeAsText (look for "reportFrameScrollInfo").

Alternatively we could add flag-specific baselines using the new support from  issue 598180 .  But there are probably a lot of affected tests here (anything that scrolls and dumps layout tree with more than one layer), so I am hesitant to do that.
Project Member

Comment 3 by bugdroid1@chromium.org, Oct 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/28c207c7b4d78a3f9d926d697b599878324069e5

commit 28c207c7b4d78a3f9d926d697b599878324069e5
Author: sataya.m <sataya.m@samsung.com>
Date: Mon Oct 24 20:59:46 2016

Adding rootlayerscrolls-specific test expectations.

Adding rootlayerscrolls-specific test expectations for these test cases

virtual/rootlayerscrolls/css3/filters/blur-filter-page-scroll-parents.html
virtual/rootlayerscrolls/css3/filters/blur-filter-page-scroll-self.html
virtual/rootlayerscrolls/css3/filters/blur-filter-page-scroll.html

BUG=651793

Review-Url: https://codereview.chromium.org/2412013003
Cr-Commit-Position: refs/heads/master@{#427145}

[add] https://crrev.com/28c207c7b4d78a3f9d926d697b599878324069e5/third_party/WebKit/LayoutTests/flag-specific/root-layer-scrolls/css3/filters/blur-filter-page-scroll-expected.txt
[add] https://crrev.com/28c207c7b4d78a3f9d926d697b599878324069e5/third_party/WebKit/LayoutTests/flag-specific/root-layer-scrolls/css3/filters/blur-filter-page-scroll-parents-expected.txt
[add] https://crrev.com/28c207c7b4d78a3f9d926d697b599878324069e5/third_party/WebKit/LayoutTests/flag-specific/root-layer-scrolls/css3/filters/blur-filter-page-scroll-self-expected.txt

  virtual/rootlayerscrolls/css3/filters/composited-layer-child-bounds-after-composited-to-sw-shadow-change.html [ Failure ]
  virtual/rootlayerscrolls/css3/flexbox/flexbox-height-with-overflow-auto.html [ Failure ]
  virtual/rootlayerscrolls/css3/flexbox/percentage-height-replaced-element.html [ Failure ]

@skobes, i have picked the next test case  

: virtual/rootlayerscrolls/css3/filters/composited-layer-child-bounds-after-composited-to-sw-shadow-change.html [ Failure ]

Do you have any pointers on this ? In root-layer-scrolling case, the horizontal scrollbar is created not created in non root layer scrolling case. PTAL at the screenshot.
SV2IWB~5.PNG
156 KB View Download

Comment 6 by skobes@chromium.org, Nov 12 2016

Tests that dump the GraphicsLayer tree will generally need flag-specific baselines to reflect the scrolling layers in the LayoutView's CompositedLayerMapping.
Components: Blink>Scroll

Sign in to add a comment