Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Issue 2060053002: Set paintingLayerNeedsRepaint() in layout tree (Closed)

Created:
4 years, 6 months ago by Xianzhu
Modified:
4 years, 6 months ago
Reviewers:
CC:
chromium-reviews, szager+layoutwatch_chromium.org, zoltan1, blink-reviews-layout_chromium.org, pdr+renderingwatchlist_chromium.org, eae+blinkwatch, leviw+renderwatch, slimming-paint-reviews_chromium.org, dshwang, jchaffraix+rendering, blink-reviews-paint_chromium.org, blink-reviews
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Set paintingLayerNeedsRepaint() in layout tree Mark paintingLayerNeedsRepaint on the layout object, then mark PaintLayer needsRepaint during paint invalidation. This has the following benefits: - No need to find the painting layer when setting the flag; - Performance improvement for repeated invalidateDisplayItemClient(); - Common path for invalidateDisplayItemClients with and without PaintInvalidationState; - Automatically dealing with layer structure changes. This also fixes bug 570706. BUG=570706

Patch Set 1 #

Patch Set 2 : Set paintingLayerNeedsRepaint() in layout tree #

Patch Set 3 : Set paintingLayerNeedsRepaint() in layout tree #

Patch Set 4 : Set paintingLayerNeedsRepaint() in layout tree #

Patch Set 5 : Set paintingLayerNeedsRepaint() in layout tree #

Patch Set 6 : Set paintingLayerNeedsRepaint() in layout tree #

Unified diffs Side-by-side diffs Delta from patch set Stats (+100 lines, -128 lines) Patch
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 3 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.h View 2 chunks +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp View 1 2 3 2 chunks +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutInline.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutInline.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 3 10 chunks +26 lines, -31 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 3 4 5 13 chunks +42 lines, -69 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTableBoxComponent.h View 1 2 3 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutText.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutText.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutView.cpp View 2 chunks +1 line, -5 lines 0 comments Download
M third_party/WebKit/Source/core/layout/PaintInvalidationState.h View 1 1 chunk +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/api/LayoutBlockItem.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidator.h View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidator.cpp View 1 2 3 2 chunks +6 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.cpp View 1 2 3 5 chunks +9 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp View 1 chunk +3 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 2 (2 generated)
Xianzhu
Description was changed from ========== Set paintingLayerNeedsRepaint() in layout tree Mark paintingLayerNeedsRepaint on the layout ...
4 years, 6 months ago (2016-06-11 00:45:58 UTC) #1
Xianzhu
4 years, 6 months ago (2016-06-11 02:57:08 UTC) #2
Description was changed from

==========
Set paintingLayerNeedsRepaint() in layout tree

Mark paintingLayerNeedsRepaint on the layout object and its ancestor
chain, then mark PaintLayer needsRepaint during paint invalidation.

This has the following benefits:
- No need to find the painting layer when setting the flag;
- Performance improvement for repeated invalidateDisplayItemClient();
- Common path for invalidateDisplayItemClients with and without
  PaintInvalidationState;
- Automatically dealing with layer structure changes.

A possible drawback is that when setting the flag along ancestor
chain, we don't stop at compositing boundaries, so the flag will
also affect ancestor graphics layers. This will not be a drawback
for spv2.

This also fixes bug 570706.

BUG=570706
==========

to

==========
Set paintingLayerNeedsRepaint() in layout tree

Mark paintingLayerNeedsRepaint on the layout object, then mark
PaintLayer needsRepaint during paint invalidation.

This has the following benefits:
- No need to find the painting layer when setting the flag;
- Performance improvement for repeated invalidateDisplayItemClient();
- Common path for invalidateDisplayItemClients with and without
  PaintInvalidationState;
- Automatically dealing with layer structure changes.

This also fixes bug 570706.

BUG=570706
==========

Powered by Google App Engine
This is Rietveld 408576698