New issue
Advanced search Search tips

Issue 892347 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 29
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Task

Blocked on:
issue 917944

Blocking:
issue 896985



Sign in to add a comment

Migrate visual overflow computation from layout to compositing

Project Member Reported by chrishtr@chromium.org, Oct 4

Issue description

Right now, visual overflow and layout overflow are computed together.
However, the former is not used in layout and is only used in compositing, paint invalidation, paint, and hit testing. Furthermore,
visual overflow depends on the self-painting status of PaintLayers,
which can change during the compositing step (in SPv1 mode at least).

Therefore we should refactor visual overflow code to separate the
concepts and move it to compositing.
 
Cc: kojii@chromium.org
This is awesome, thank you Chris for jumping in to help this problem.

> The data will be stored in the OverflowModel of LayoutObjects as usual.

Where to store OverflowModel for inline boxes might need some thoughts, because LayoutInline will be fragmented. In legacy we store OverflowModel in InlineFlowBox. In NG, we don't have InlineFlowBox, only NGPhysicalFragment and NGPaintFragment. I'm guessing it'll be NGPaintFragment, or somewhere in paint-related data structure such as FragmentData (or merge the two). Happy to help discussions if I can be any help.
Owner: chrishtr@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Oct 5

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

commit 6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Fri Oct 05 23:08:17 2018

Split dirty bits for visual overflow vs layout overflow.

Also, rename the recursive recalc methods to remove the
"AfterStyleChange" suffix, because it may not only be due
to style, and the update is not going to happen right after
style soon.

This is a pure refactoring patch. It is step 1 of
work to split work to recompute visual overflow from work
to recompute layout overflow. See the referenced bug
for more details.

Bug:  892347 

Change-Id: I791c143da4486763cea256036fc4c68b1cf79264
Reviewed-on: https://chromium-review.googlesource.com/c/1265509
Reviewed-by: vmpstr <vmpstr@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597357}
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/dom/document.cc
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/frame/local_frame_view.cc
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_block.cc
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_block.h
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_block_flow.cc
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_block_flow.h
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_object.cc
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_object.h
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_table.cc
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_table.h
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_table_section.cc
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_table_section.h
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_view.cc
[modify] https://crrev.com/6b32ed3f4bf1b7a7336dfaf10915cf2ef8d9a84b/third_party/blink/renderer/core/layout/layout_view.h

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 8

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

commit 2231aea5dcda383dd2c924e7750a02a3f88c783c
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Mon Oct 08 20:17:19 2018

[LayoutNG] Separate code for computing visual and layout overflows.

This is step 2 of completely separating visual from layout
overflow computation, and running them at different lifecycle phases.

Bug:  892347 

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I5616018cf84516a722d1ca32cf7d950fdb561acc
Reviewed-on: https://chromium-review.googlesource.com/c/1266717
Reviewed-by: Aleks Totic <atotic@chromium.org>
Reviewed-by: vmpstr <vmpstr@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597662}
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_block.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_block.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_block_flow.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_block_flow.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_block_flow_line.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_box.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_box.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_list_item.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_list_item.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_multi_column_set.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_multi_column_set.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_table.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_table.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_table_cell.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_table_cell.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_table_section.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_table_section.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_text_control_single_line.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/layout_text_control_single_line.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/line/inline_flow_box.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/line/inline_flow_box.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h
[modify] https://crrev.com/2231aea5dcda383dd2c924e7750a02a3f88c783c/third_party/blink/renderer/core/layout/ng/ng_block_node.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 8

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

commit f2dbdff695441cc00a54ca968f5bc85233d188c9
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Mon Oct 08 23:28:45 2018

Overflow recalc cleanup in LayoutBlock

1. Remove AddVisualOverflowFromPositionedObjects. All such descendants
must have self-painting PaintLayers and therefore can't contribute
to visual overflow.

2. Only exclude fixed-position "positioned descendants" for the
LayoutView. If the containing block of fixed-position element
is not the LayoutView, then it is scrolled along with the containing
block. The LayoutView situation is already tested in
WebFrameTest.fixedPositionInFixedViewport.

Bug:  892347 

Change-Id: I0764da7179f911a71bd8dca0fb5046a8beadda34
Reviewed-on: https://chromium-review.googlesource.com/c/1269798
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: vmpstr <vmpstr@chromium.org>
Reviewed-by: vmpstr <vmpstr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597726}
[modify] https://crrev.com/f2dbdff695441cc00a54ca968f5bc85233d188c9/third_party/blink/renderer/core/layout/layout_block.cc
[modify] https://crrev.com/f2dbdff695441cc00a54ca968f5bc85233d188c9/third_party/blink/renderer/core/layout/layout_block.h

Cc: atotic@chromium.org
Blocking: 896985
Cc: schenney@chromium.org
For SPv1 in which compositing is before painting, we have to compute visual overflow before painting. In SPv2, computing visual overflow from painted result might be feasible which can avoid the problem of inaccurate prediction of painted bounds before painting.
Project Member

Comment 9 by bugdroid1@chromium.org, Dec 5

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

commit ee6d40bff620deed1b5d3d022fe8534bd71d0a2e
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Wed Dec 05 22:30:43 2018

Fix typo in clearing overflow recalc bits.

This was an accidental bug in crrev.com/597357.

Bug:  892347 

Change-Id: I2be0896140f7d5bafeb7fcb5060004e05e2d2f39
Reviewed-on: https://chromium-review.googlesource.com/c/1363801
Reviewed-by: Aleks Totic <atotic@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614137}
[modify] https://crrev.com/ee6d40bff620deed1b5d3d022fe8534bd71d0a2e/third_party/blink/renderer/core/layout/layout_table_section.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Dec 6

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

commit 05fa475a0dd95e7c381c6839bae250068c3fc821
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Thu Dec 06 00:07:14 2018

[Overflow] Separate methods on BoxOverflowModel for visual and layout overflow.

Also, make the overflow_ method of LayoutBox private and adjust callsites
to use proper methods on it rather than manipulating the object directly.

Bug:  892347 

Change-Id: I764d09c5bac41ead4694690748057d2f4d8405ab
Reviewed-on: https://chromium-review.googlesource.com/c/1363962
Reviewed-by: Aleks Totic <atotic@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614188}
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/layout_block.cc
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/layout_box.cc
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/layout_box.h
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/layout_embedded_object.cc
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/layout_iframe.cc
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/layout_multi_column_spanner_placeholder.cc
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/layout_replaced.cc
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/layout_table_row.cc
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/layout_table_section.cc
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/overflow_model.h
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
[modify] https://crrev.com/05fa475a0dd95e7c381c6839bae250068c3fc821/third_party/blink/renderer/core/layout/svg/layout_svg_text.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Dec 27

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

commit 395a93a5ea18f0890a237d5e687a80b69f39a473
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Thu Dec 27 00:52:11 2018

Move visual overflow computation into the descendant-dependent tree walk.

Visual overflow is different than layout overflow, and is used in:
* Pre-CAP (aka SPv1) compositing (to determine bounds of composited layers)
* Paint/raster invalidation (to determine whether drawn areas on the
screen change).

Tested: There were multiple layout or unit tests which failed due to the
absence of each of the parts of this CL. We appear to have quite good
test coverage of this logic.

Bug:  892347 

Change-Id: I1fadc5d600bda50992d9aba203319ed2d5059aac
Reviewed-on: https://chromium-review.googlesource.com/c/1366767
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618986}
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/display_lock/display_lock_budget_test.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/dom/document.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/frame/local_frame_view.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/frame/local_frame_view.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/custom/layout_custom.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_block.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_block.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_block_flow.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_block_flow.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_box.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_box.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_deprecated_flexible_box.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_embedded_object.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_flexible_box.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_grid.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_iframe.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_list_item.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_list_item.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_multi_column_set.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_multi_column_set.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_multi_column_spanner_placeholder.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_multi_column_spanner_placeholder.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_object.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_object.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_object_child_list.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_replaced.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_replaced.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_ruby_run.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_table.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_table.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_table_cell.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_table_cell.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_table_row.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_table_row.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_table_section.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_table_section.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_table_section_test.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_text.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_text.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_text_control_single_line.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_text_control_single_line.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_view.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/layout_view.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/line/inline_flow_box.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/line/inline_flow_box.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/svg/layout_svg_root.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/svg/layout_svg_text.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/layout/svg/layout_svg_text.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/paint/box_paint_invalidator_test.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/paint/paint_layer.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/paint/paint_layer.h
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/paint/paint_layer_painter.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/paint/table_painter_test.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/paint/table_section_painter.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/renderer/core/scheduler/frame_throttling_test.cc
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/web_tests/external/wpt/css/CSS2/linebox/line-height-129.xht
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/web_tests/paint/invalidation/box/invalidate-box-shadow-currentColor.html
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/web_tests/paint/invalidation/table/border-collapse-change-collapse-to-separate.html
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/web_tests/platform/mac/paint/invalidation/forms/textarea-caret-expected.png
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/web_tests/platform/mac/paint/invalidation/forms/textarea-caret-expected.txt
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/web_tests/platform/mac/paint/invalidation/offset-change-wrong-invalidation-with-float-expected.txt
[modify] https://crrev.com/395a93a5ea18f0890a237d5e687a80b69f39a473/third_party/blink/web_tests/platform/win/paint/invalidation/offset-change-wrong-invalidation-with-float-expected.txt

Blockedon: 917944
Project Member

Comment 13 by bugdroid1@chromium.org, Dec 27

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

commit 133f89bdb244aa93668bfab1a1c75438a91eecdf
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Thu Dec 27 21:30:14 2018

Remove (apparently) redundant code setting needs overflow recalc.

The condition for the code included whether overflow recalc was
already needed and position changed, but if overflow recalc was
needed then the ancestor chain should already need recalc. This
may have been a bug in the original code (*).

(*) https://codereview.chromium.org/250773002

Bug:  892347 

Change-Id: I13767d5894e651f281bb7784734fdc319bd0c0a2
Reviewed-on: https://chromium-review.googlesource.com/c/1391770
Reviewed-by: Aleks Totic <atotic@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619068}
[modify] https://crrev.com/133f89bdb244aa93668bfab1a1c75438a91eecdf/third_party/blink/renderer/core/layout/layout_object.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Dec 27

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

commit c4e22a47b3b8cdd0f201f7820e591abef678d305
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Thu Dec 27 23:02:48 2018

[CI] Simplify redundant code.

Bug:  892347 

Change-Id: Iba50c9a12a0de717f865c33249b8b8b6f0458c3f
Reviewed-on: https://chromium-review.googlesource.com/c/1391769
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619085}
[modify] https://crrev.com/c4e22a47b3b8cdd0f201f7820e591abef678d305/third_party/blink/renderer/core/frame/local_frame_view.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Dec 29

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

commit d8ebabeb38aae2a0f18e2f8e843ed069080037b5
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Sat Dec 29 01:10:27 2018

Move dirty bits for visual overflow recalc into PaintLayer

Visual overflow is only computed up to the containing self-painting
PaintLayer. Keeping track of a dirty bit at that boundary alone
will get most of any performance benefit, and also greatly simplify
dirty bit and return-value checking in the visual overflow recalc
code.

Bug:  892347 

Change-Id: Icb1f7fb0ce0b26b330141292be88ad74326b0aca
Reviewed-on: https://chromium-review.googlesource.com/c/1391863
Reviewed-by: Aleks Totic <atotic@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619218}
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_block.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_block.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_block_flow.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_block_flow.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_list_item.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_list_item.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_multi_column_spanner_placeholder.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_multi_column_spanner_placeholder.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_object.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_object.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_object_child_list.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_replaced.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_replaced.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_table.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_table.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_table_row.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_table_row.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_table_section.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_table_section.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_text.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/layout_text.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/line/inline_flow_box.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/svg/layout_svg_root.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/svg/layout_svg_text.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/layout/svg/layout_svg_text.h
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/paint/paint_layer.cc
[modify] https://crrev.com/d8ebabeb38aae2a0f18e2f8e843ed069080037b5/third_party/blink/renderer/core/paint/paint_layer.h

Status: Fixed (was: Assigned)

Sign in to add a comment