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

Issue 740517 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Regression: Flipkart page gets blank on clicking slider icon.

Reported by dchau...@etouch.net, Jul 10 2017

Issue description

Chrome Version: 61.0.3153.0 (Official Build) 4b9102f9588fb6cf639a6165fd4777658d5ade0d-refs/heads/master@{#485143} 32/64-bit.
OS: Windows (7,8,8.1,10),Linux (14.04 LTS),Mac OS X(10.11.6,10.12.3)

What steps will reproduce the problem?
1. Launch chrome and go to www.flipkart.com
2. Multiple times click on arrow (slider) icon.
3. Now, Scroll down the page and again click on arrow icon and observe. (Refer video)

Flipkart page gets blank on clicking arrow icon.
Flipkart page should not be blank on clicking arrow icon.

This is a regression issue, broken in M-61 series, below is manual regression range.

Good build: 61.0.3150.0
Bad build: 61.0.3152.0

Note: This issue is not seen on Firefox and IE browsers.

kindly review the attached screen-cast for reference.
 
Actual behavior.mp4
1.5 MB View Download
Expected behavior.mp4
1.1 MB View Download
Labels: hasbisect-per-revision ReleaseBlock-Stable
Owner: sunxd@chromium.org
Status: Assigned (was: Unconfirmed)
Using the per-revision bisect providing the bisect results,
Good build: 61.0.3150.0 (Revision: 484425).
Bad build : 61.0.3152.0 (Revision: 485105).

You are probably looking for a change made after 484750 (known good), but no later than 484751 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/e52af452bf5bf781f405c2e9c6803a2961cee308..0d09713458f374a911822779fa48bae96b6608ed

@Xianda Sun: Could you please look into the issue, pardon me if it has nothing to do with your changes and if possible please assign it to concern owner.
Adding RB Label as this is a recent Regression. Please remove if not required.
Thank You.

Comment 2 by sunxd@chromium.org, Jul 10 2017

Cc: -nyerramilli@chromium.org -rbasuvula@chromium.org chrishtr@chromium.org schenney@chromium.org
This issue is also caused by a 0-solid color mask. But forcing NeedsToClip to return true does not fix this issue.

Making cc ignore 0-solid-color mask would solve this problem, if there are more potential cases in the wild, can we fix it by ignoring these masks and record logs to track these masks so that we do not need to revert changes every time we get such a problem?
Why is all this breaking now but did not break when I landed the original masking patch? What is it about tiling the masks that causes more problems?
Labels: PaintTeamTriaged-20170710 BugSource-Chromium

Comment 5 by sunxd@chromium.org, Jul 10 2017

The tiling mask patch changes the behavior of how cc handles a 0-solid color mask layer. Before, cc does not care about whether the layer is a solid color one, it simply applies the mask layer to the render surface (but I do not understand why the content is not masked out). Now when trying to tile the mask, cc calls SolidColorLayerImpl::AppendQuads when processing a solid color mask, that function throws away the layer when it finds that the color is 0.

Comment 6 by sunxd@chromium.org, Jul 10 2017

So cc has the logic of ignoring masks whose mask_resource_id == 0. When we get empty mask layers, cc would ignore them by not choosing the HAS_MASK version of shader program or skip mask logic in software renderer.

After the tiling patch, we throw away those masked quads as we think they mean everything is masked out. This cause the breakings of this type of bugs.

I think we can teach the tiling logic to ignore masks in this case?
Cc: sunxd@chromium.org jmukthavaram@chromium.org kavvaru@chromium.org brajkumar@chromium.org
 Issue 740471  has been merged into this issue.
I have a fix. Working on a testcase now.
Owner: chrishtr@chromium.org
Reduced testcase:

<!DOCTYPE html>
<div style=" height:700px"></div>
<div style="border-radius: 2px; overflow: hidden;">
  <div style="width: 100px; height: 100px; background: lightblue; will-change: transform"></div>
</div>


The first div has to be tall enough to induce scroll. The scroll adjustment demonstrates an
error in the calculation of whether there is a non-empty paint fragment for the ancestor
clipping mask.

Comment 11 by rtoy@chromium.org, Jul 11 2017

Components: -Blink Blink>Paint
A friendly reminder that M61 branch is coming soon on 07/20! Your bug is labelled as Stable ReleaseBlock, pls make sure to land the fix ASAP to trunk. This way we branch M61 from a high quality trunk. Thank you.
Status: Fixed (was: Assigned)

Sign in to add a comment