Regression: Focus is seen on multiple categories on snapdeal |
|||||||||||
Issue descriptionChrome 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
,
May 19 2017
,
May 22 2017
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.
,
May 22 2017
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.
,
May 23 2017
Something that broke in M-52 is not a P1 regression.
,
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
,
May 30 2017
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!!
,
Jun 1 2017
Thanks for the fix, please request a merge to M60 ASAP.
,
Jun 1 2017
,
Jun 1 2017
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
,
Jun 3 2017
Merge not necessary - already in M60
,
Jun 5 2017
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
,
Jun 6 2017
As per #11, removing merge request label.
,
Jun 7 2017
|
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by kavvaru@chromium.org
, May 19 2017Labels: -Type-Bug -Pri-3 Needs-Bisect M-60 OS-Mac OS-All Pri-1 Type-Bug-Regression
Status: Untriaged (was: Unconfirmed)