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

Issue 724453 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , All , Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Regression: Focus is seen on multiple categories on snapdeal

Project Member Reported by divya.pa...@techmahindra.com, May 19 2017

Issue description

Chrome Version:60.0.3104.0
OS: Ubuntu 14.04

What steps will reproduce the problem?
(1)Launch Chrome>> Navigate to https://www.snapdeal.com/
(2)Select any Top categories and keep tabbing on the sub-category and observe the focus

Expected 
The Focus should be only on one category 

Actual
Focus is seen on multiple categories.

Enclosed Video for reference

This is a Regression issue seen in M-52
========================
Manual Bisect Info:

Good Build: 52.0.2711.0
Bad Build: 52.0.2712.0
========================

Below is the change log URL:
You are probably looking for a change made after 387860 (known good), but no lat
er than 387862 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/74d1a68fa838d973b6104ddb4a
f4d88881fb901c..de7ae34361ba945b6d1ec7b3c679fecf5d94d35b

=======================
Suspecting below link:
https://codereview.chromium.org/1809643008

 
Actual.Snapdeal.ogv
3.6 MB View Download
Expected. snapdeal.ogv
2.5 MB View Download
Components: Blink>Focus
Labels: -Type-Bug -Pri-3 Needs-Bisect M-60 OS-Mac OS-All Pri-1 Type-Bug-Regression
Status: Untriaged (was: Unconfirmed)
Able to reproduce the issue on Mac 10.12.4 using chrome version 60.0.3104.0

Comment 2 by ajha@chromium.org, May 19 2017

Labels: -Needs-Bisect hasbisect
Owner: robho...@gmail.com
Status: Assigned (was: Untriaged)
Cc: wangxianzhu@chromium.org
Here's a reduction. The artefacts aren't consistent with my understanding of how we would expect an invalidation bug to look - the painting artefacts appear in items that haven't been recently invalidated. When debugging I can see that there's no attempt to paint the outline on the items that show the artefacts so it must be happening in some other way - is it due to cached painting items somehow? The issue only happens when the items in the list are floated - so it appears to be specific to painting floats, which we do outside the natural dom order.

cc'ing wangxianzhu for this thoughts.
724453.html
430 bytes View Download
Components: -Blink>Focus Blink>Paint>Invalidation
I added in the test a rule
:focus { outline: 20px solid blue }
in <style> to show the problem more obviously.

It's an under-raster-invalidation issue, i.e. the visual rect (LayoutObject::VisualRect) doesn't cover the whole outline we paint. The visual rect is calculated based on LocalVisualRect() which is usually based on SelfVisualOverflowRect(). You might want to look at code related to visual overflow calculation.

Fwiw, here are some tips about paint invalidation debugging:

* --enable-blink-features=paintUnderInvalidationCheckingEnabled: With this command line flag, any under-paint-invalidation (any changed DisplayItemClient is not invalidated) will fail at a DCHECK, and any under-raster-invalidation (any changed pixels are not covered by invalidation rects) will show information about the pixels.

* --show-paint-rects: With this command line flag, the browser will show invalidated rects (which should cover any changed pixels) in the page.
Labels: -Pri-1 ReleaseBlock-Stable Pri-2
Something that broke in M-52 is not a P1 regression.
Project Member

Comment 6 by bugdroid1@chromium.org, May 24 2017

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

commit eac1506ac1502a44f10c1af30d0c4de6d7490a6b
Author: robhogan <robhogan@gmail.com>
Date: Wed May 24 14:04:11 2017

Ensure visual overflow from style recalc gets propagated

When recalculating overflow due to style change, the overflow we calculate may
be clipped. We still need to treat it as having changed so that we can update
the ContentsVisualOverflowRect() of our container. This will allow the paint layer
to clip the overflow when painting it.

BUG= 724453 

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

[add] https://crrev.com/eac1506ac1502a44f10c1af30d0c4de6d7490a6b/third_party/WebKit/LayoutTests/paint/invalidation/inline-block-overflow-repaint-expected.html
[add] https://crrev.com/eac1506ac1502a44f10c1af30d0c4de6d7490a6b/third_party/WebKit/LayoutTests/paint/invalidation/inline-block-overflow-repaint.html
[modify] https://crrev.com/eac1506ac1502a44f10c1af30d0c4de6d7490a6b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp

Labels: TE-Verified-M60 TE-Verified-60.0.3112.7
Tested the issue on Mac 10.12.4,Ubuntu 14.04 & windows 7 using chrome dev version#60.0.3112.7 with the steps mentioned in comment #0.Observed that the focus is seen on only one category in snapdeal website. Hence adding TE-Verified labels.

Please find the attached screencast for the same.
Thanks!!
724453.mp4
2.0 MB View Download
Thanks for the fix, please request a merge to M60 ASAP.
Labels: Merge-Request-60
Project Member

Comment 10 by sheriffbot@chromium.org, Jun 1 2017

Labels: -Merge-Request-60 Hotlist-Merge-Approved Merge-Approved-60
Your change meets the bar and is auto-approved for M60. Please go ahead and merge the CL to branch 3112 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), josafat@(ChromeOS), bustamante@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Fixed (was: Assigned)
Merge not necessary - already in M60
Project Member

Comment 12 by sheriffbot@chromium.org, Jun 5 2017

Cc: robhogan@chromium.org
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
As per #11, removing merge request label.
Labels: -Merge-Approved-60

Sign in to add a comment