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

Issue 825543 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Regression: Facebook logout menu is blank when clicked after page scroll.

Project Member Reported by ajha@chromium.org, Mar 25 2018

Issue description

Chrome Version: 66.0.3359.45
OS: Mac OS 10.13.3

What steps will reproduce the problem?
(1) Launch chrome and sign into facebook using valid credentials.
(2) Once signed in, scroll down the page a little bit and now click on the down arrow icon where logout option is present. 
(3) All the menu options are seen blank.

What is the expected result?
> Menu options should be present.

What happens instead?
> All the Menu options are seen missing and is blank.


Note:
=====
1. This seems to be working fine on the latest canary: 67.0.3379.0 as tested on Mac OS 10.13.3. I will update the behavior of Windows and Linux soon.

Reverse bisected in M-67 on Mac to identify the CL that fixed this:

Last bad build: 67.0.3371.0
First good build: 67.0.3372.0

Changelog: https://chromium-review.googlesource.com/c/chromium/src/+/961643.This was fixed by the above CL in M-67 but interestingly the same CL when was merged to M-66 resulted in this issue.

Bisected in M-66 to confirm which CL caused this regression in M-66 branch and below is the result.

Last good build: 66.0.3359.43
First bad build: 66.0.3359.45

Changelog: https://chromium.googlesource.com/chromium/src/+log/66.0.3359.43..66.0.3359.45?pretty=fuller&n=10000. Above range contains https://chromium-review.googlesource.com/c/chromium/src/+/971866 merged to M-66 from M-67.

Tagging with Beta blocker as this is recent break in M-66 and looks really bad with logout option missing in FB.
 
Facebook_Logout.webm
8.6 MB View Download
It's probably because the CL is wrong for non-RLS mode.

Comment 2 by cnardi@chromium.org, Mar 25 2018

Might be the same issue as  bug 825280 ?
any updates on this issue yet? It's marked as RB-Beta and we have an M66 Beta release on Wednesday. 

Comment 4 by trchen@chromium.org, Mar 26 2018

Cc: trchen@chromium.org
Labels: -ReleaseBlock-Beta -hasbisect-per-revision -M-66 -FoundIn-66 -RegressedIn-66 -Target-66 Needs-Bisect
Owner: ajha@chromium.org
Status: Untriaged (was: Assigned)
I can repro this locally on 66.0.3359.45 on a Macbook, but only with --force-device-scale-factor=1.0

However the bisect result wasn't accurate. I reverted my patch in M66 locally, but the bug still repro. It is probably something else.

Comment 5 by trchen@chromium.org, Mar 26 2018

I could repro on 66.0.3359.43 too. I think the repro is not very reliable, as I can see the menu contents flash in/out while scrolling. The bisect needs to be redone.

Comment 6 by trchen@chromium.org, Mar 27 2018

This can be repro'd on r543584 too. I don't think it is fixed by
 https://chromium-review.googlesource.com/c/chromium/src/+/961643

I can't repro this on ToT today (r545883). I'll try to further bisect this.

Comment 7 by trchen@chromium.org, Mar 27 2018

I bisected again, and it seems r543584 did fix the issue on trunk.

Now it is puzzling why the same CL is not effective in M66... Could it be sensitive to SPv175?
Cc: -trchen@chromium.org viswa.karala@chromium.org
Labels: -Needs-Bisect hasbisect-per-revision RegressedIn-66 M-66 ReleaseBlock-Beta FoundIn-66 Target-66 Triaged-ET OS-Linux OS-Windows
Owner: trchen@chromium.org
Status: Assigned (was: Untriaged)
Able to reproduce the issue on reported chrome version 66.0.3359.45 using Windows-10, Mac 10.12.6 & Ubuntu 14.04
Re-bisected the issue again, as the issue is not seen on latest chrome version# 67.0.3379.0, hence providing the reverse bisect info as per comment#0

Last bad build: 67.0.3371.0
First good build: 67.0.3372.0

Change Log: https://chromium.googlesource.com/chromium/src/+log/67.0.3371.0..67.0.3372.0?pretty=fuller&n=10000
Commit: https://chromium.googlesource.com/chromium/src/+/d09d2073659030ed2d5ea3f3b8331583d46796c0
Reviewed-on: https://chromium-review.googlesource.com/961643

Observed the issue on chrome version# 66.0.3359.45, observed the break in branch builds, hence providing the manual change log from omahaproxy

Last good build: 66.0.3359.44
First bad build: 66.0.3359.45

Change Log: https://chromium.googlesource.com/chromium/src/+log/66.0.3359.44..66.0.3359.45?pretty=fuller&n=10000
Commit: https://chromium.googlesource.com/chromium/src/+/cee8973f56386ace74fa77b87e81224c04ca7b26
Reviewed-on: https://chromium-review.googlesource.com/971866

Re-adding Beta blocker as this is recent break in M-66, feel free to adjust the same if not applicable.

Thanks!

Since this isn't highly reproducible (I just tried it on Mac and couldn't), and this is already present in last M66 Beta, we will not block tomorrow's beta on this. The fix should still be targeted asap. 
Here's a minimal repro.
test11.html
721 bytes View Download
I added some debug output locally. It seems that the fixed-pos compensation is already somehow applied in M66 prior to the patch (which is surprising because the source code is identical in M66 and trunk), and with my patch the compensation will be doubly applied. I think it is safe to just revert the merge.

I created a revert here: https://chromium-review.googlesource.com/c/chromium/src/+/985254
but I don't have the permission to submit it. abdulsyed@ could you help?

Also I still worry that even prior to my merge, the logout menu can be seen flashing white while scrolling. I suggest that we revert my merge, close this bug, then open another bug to continue investigation.

Are you landing the revert in branch directly? Can you please add Merge-Request-66 label when ready to merge? 
Labels: Merge-Request-66
Yes I'm reverting in a branch directly.

To clarify, it is reverting a CL that is cherry picked into M66. While the CL worked as intended in trunk, somehow it resulted in a bad interaction in M66, thus we only want to cancel the merge to M66 but not reverting it in trunk.
Project Member

Comment 14 by sheriffbot@chromium.org, Mar 29 2018

Labels: -Merge-Request-66 Merge-Review-66 Hotlist-Merge-Review
This bug requires manual review: M66 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), josafat@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Merge-Review -Merge-Review-66
Actually, never mind. I think I found the root cause why the bug only shows up in M66.

I turns out that as a side effect, one of my optimization patch in trunk: https://chromium-review.googlesource.com/c/chromium/src/+/952540 fixed a bug whether LayoutView should be considered a scrolling container of fixed-pos elements with RLS. 

While that CL is too complex to bring to M66, I think a one line patch can be done to achieve the same effect. I'll be tailoring the patch for M66 right now.
trchen@, Gentle ping! Do we have any further update on this?
Project Member

Comment 17 by bugdroid1@chromium.org, Apr 4 2018

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

commit 34569e4441bf99e40a6ede00237e03f064d3bd93
Author: Tien-Ren Chen <trchen@chromium.org>
Date: Wed Apr 04 04:29:12 2018

[Blink] Correct ignore root layer scrolling in PaintLayerClipper

The flag kIgnoreOverflowClipAndScroll can be passed to PaintLayerClipper
to compute clip rect in the space of the scrolled box of the root layer.
This is done by first computing clip rect in the space of the border box,
then apply an anti-scroll to the rect if the rect was affected by the
scroll.

Prior to this CL, the condition that determines whether the anti-scroll
is needed was incorrect. It used a function that determines whether two
layers can ever have relative movement upon scrolled, and is allowed to
return false positive. This CL instead traverses the layer tree to see
whether the root layer is a part of the containing block chain.

BUG= 825543 

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ifec0bddb9511aa3b878cc0757bb8fb6f59cfb0ab
Reviewed-on: https://chromium-review.googlesource.com/987319
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Tien-Ren Chen <trchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547979}
[modify] https://crrev.com/34569e4441bf99e40a6ede00237e03f064d3bd93/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/34569e4441bf99e40a6ede00237e03f064d3bd93/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/34569e4441bf99e40a6ede00237e03f064d3bd93/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
[modify] https://crrev.com/34569e4441bf99e40a6ede00237e03f064d3bd93/third_party/WebKit/Source/core/paint/PaintLayerClipperTest.cpp

Labels: Merge-Request-66
Status: Started (was: Assigned)
Cherrypicked r547979 locally to verify it fixed this bug on M66. Let's bake one or two day then we can merge it to M66.
Project Member

Comment 19 by sheriffbot@chromium.org, Apr 4 2018

Labels: -Merge-Request-66 Merge-Review-66 Hotlist-Merge-Review
This bug requires manual review: We are only 12 days from stable.
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), josafat@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
How does the change look in canary today?
Please verify if this has been fixed in canary.
M67 was never affected by this bug. We are baking to make sure the CL has no adverse effects. So far I haven't seen any related regression, so I think it could be considered safe to merge.
Labels: -Merge-Review-66 Merge-Approved-66
Ok cool - approving merge to M66. Branch:3359. Let's monitor it closely post Beta release on Wednesday.
Project Member

Comment 24 by bugdroid1@chromium.org, Apr 9 2018

Labels: -merge-approved-66 merge-merged-3359
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/626754cb88b616fdab3db3222deb008fc34763ec

commit 626754cb88b616fdab3db3222deb008fc34763ec
Author: Tien-Ren Chen <trchen@chromium.org>
Date: Mon Apr 09 20:36:22 2018

[Blink] Correct ignore root layer scrolling in PaintLayerClipper

The flag kIgnoreOverflowClipAndScroll can be passed to PaintLayerClipper
to compute clip rect in the space of the scrolled box of the root layer.
This is done by first computing clip rect in the space of the border box,
then apply an anti-scroll to the rect if the rect was affected by the
scroll.

Prior to this CL, the condition that determines whether the anti-scroll
is needed was incorrect. It used a function that determines whether two
layers can ever have relative movement upon scrolled, and is allowed to
return false positive. This CL instead traverses the layer tree to see
whether the root layer is a part of the containing block chain.

BUG= 825543 

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ifec0bddb9511aa3b878cc0757bb8fb6f59cfb0ab
Reviewed-on: https://chromium-review.googlesource.com/987319
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Tien-Ren Chen <trchen@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#547979}(cherry picked from commit 34569e4441bf99e40a6ede00237e03f064d3bd93)
Reviewed-on: https://chromium-review.googlesource.com/1003151
Reviewed-by: Tien-Ren Chen <trchen@chromium.org>
Cr-Commit-Position: refs/branch-heads/3359@{#629}
Cr-Branched-From: 66afc5e5d10127546cc4b98b9117aff588b5e66b-refs/heads/master@{#540276}
[modify] https://crrev.com/626754cb88b616fdab3db3222deb008fc34763ec/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/626754cb88b616fdab3db3222deb008fc34763ec/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/626754cb88b616fdab3db3222deb008fc34763ec/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
[modify] https://crrev.com/626754cb88b616fdab3db3222deb008fc34763ec/third_party/WebKit/Source/core/paint/PaintLayerClipperTest.cpp

Status: Fixed (was: Started)

Comment 26 by ajha@chromium.org, Apr 12 2018

Labels: TE-Verified-66.0.3359.106 TE-Verified-M66
Verified the fix on the latest M-66(66.0.3359.106) on Mac OS 10.13.3 as per the test steps in C#0. This seems to be working fine now.

Sign in to add a comment