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

Issue 621644 link

Starred by 8 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug-Regression

Blocking:
issue 611112



Sign in to add a comment

Unnecessary repaint of inside DevTools Console

Project Member Reported by l...@chromium.org, Jun 20 2016

Issue description

Version: found on 53.0.2764.0 Linux

What steps will reproduce the problem?
(1) Open DevTools, then DevTools in DevTools, (undock the first DT, then Cmd+shift+I)
(2) In the first DevTools, go to Console and enter enough lines to see a scrollbar
(3) Turn on 'Paint Flashing' in the Rendering drawer in the second DevTools
(5) Start typing in the first DevTools console's prompt

Observe that on each keystroke all the previous messages are flashing for repaint.  For some reason, this doesn't seem to occur on 53.0.2768.0 Mac.

Bisect led to this commit related to scroll updates
https://chromium.googlesource.com/chromium/src/+/aff9f64394945f24400021fdec18dbd70eee3e14


I've made a standalone JSFiddle with what I believe to be the root issue here:
What steps will reproduce the problem?
(1) Go to https://jsfiddle.net/2jLp67d2/1/
(2) Open DevTools, open the Rendering tab from the drawer
(3) Enable Paint Flashing

What is the expected output?
On stable, the only repainted area is the 'dynamic' div.

What do you see instead?
On dev, according to the Paint Flashing, the entire gray box seems to be repainted, even though there is just one dynamic div.




 

Comment 1 by l...@chromium.org, Jun 20 2016

Blocking: 611112
Components: -Blink>Layout Blink>Paint>Invalidation

Comment 3 by szager@chromium.org, Jun 21 2016

Thanks for the excellent reproduction, I am looking into this.

Comment 4 by szager@chromium.org, Jun 23 2016

Cc: tsergeant@chromium.org tjsavage@chromium.org calamity@chromium.org
 Issue 618153  has been merged into this issue.
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 23 2016

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

commit 96c111dfbb085888c163c987375ff854b4619c5e
Author: szager <szager@chromium.org>
Date: Thu Jun 23 22:34:52 2016

Don't invalidate width for children unless scrollbars have changed.

Previous to this patch, PaintLayerScrollableArea::updateAfterLayout
would call box().scrollbarsChanged(), even if relayout was delayed.
The result is that the box would sometimes force relayout its
children even when the box'es final state had the same logical width
as before.

With this patch, box().scrollbarsChanged() is only called when the
final state of scrollbars differs from the initial state.

BUG= 621644 
R=cbiesinger@chromium.org,eae@chromium.org

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

[add] https://crrev.com/96c111dfbb085888c163c987375ff854b4619c5e/third_party/WebKit/LayoutTests/css3/flexbox/scrollbars-changed-expected.txt
[add] https://crrev.com/96c111dfbb085888c163c987375ff854b4619c5e/third_party/WebKit/LayoutTests/css3/flexbox/scrollbars-changed.html
[modify] https://crrev.com/96c111dfbb085888c163c987375ff854b4619c5e/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/96c111dfbb085888c163c987375ff854b4619c5e/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h

Comment 6 by szager@chromium.org, Jun 24 2016

Status: Fixed (was: Assigned)

Comment 7 by e...@chromium.org, Nov 2 2016

Cc: kavvaru@chromium.org durga.behera@chromium.org ajha@chromium.org
 Issue 616413  has been merged into this issue.

Sign in to add a comment