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

Issue 445793002: Allow paint invalidation containers to cross frame boundaries. (Closed)

Created:
6 years, 4 months ago by chrishtr
Modified:
6 years, 3 months ago
CC:
blink-reviews, blink-reviews-rendering, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr., rune+blink, zoltan1
Project:
blink
Visibility:
Public.

Description

Allow paint invalidation containers to cross frame boundaries. Previously, the *actual* paint invalidation container, meaning the enclosing compositing layer / root RenderView, could already have been across a frame boundary. The logic to do this correctly was done via special code in RenderView. Instead, generalize the existing mechanisms to find a paint invalidation container and map rects to repaint container coordinate space to cross frame boundaries. This simplifies the code, and also causes paint invalidation rects to always be stored in the coordinate space of their graphics layer backing. The latter is important if we want to use these rects for determining which parts of a graphics layer need to be painted. BUG=401156 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=179762

Patch Set 1 #

Patch Set 2 : Update. #

Patch Set 3 : Fix. #

Patch Set 4 : Fixed. #

Total comments: 2

Patch Set 5 : Use PaintInvalidationState. #

Total comments: 3

Patch Set 6 : Added assert that paintInvalidationContainer is not 0. #

Patch Set 7 : Fixed bugs. #

Total comments: 2

Patch Set 8 : Tweak. #

Patch Set 9 : Adjusted asserts to work during document destruction. #

Patch Set 10 : Fix. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+52 lines, -57 lines) Patch
M Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderLayerRepainter.cpp View 1 2 1 chunk +0 lines, -16 lines 0 comments Download
M Source/core/rendering/RenderObject.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -4 lines 0 comments Download
M Source/core/rendering/RenderObject.cpp View 1 2 3 4 5 6 7 8 9 5 chunks +20 lines, -11 lines 0 comments Download
M Source/core/rendering/RenderView.cpp View 1 2 3 4 5 6 7 8 5 chunks +30 lines, -25 lines 0 comments Download

Messages

Total messages: 24 (0 generated)
chrishtr
6 years, 4 months ago (2014-08-06 18:43:27 UTC) #1
leviw_travelin_and_unemployed
6 years, 4 months ago (2014-08-06 18:52:32 UTC) #2
leviw_travelin_and_unemployed
https://codereview.chromium.org/445793002/diff/60001/Source/core/rendering/RenderView.cpp File Source/core/rendering/RenderView.cpp (right): https://codereview.chromium.org/445793002/diff/60001/Source/core/rendering/RenderView.cpp#newcode451 Source/core/rendering/RenderView.cpp:451: const RenderLayerModelObject* paintInvalidationContainer = containerForPaintInvalidation(); Can we not use ...
6 years, 4 months ago (2014-08-06 18:54:00 UTC) #3
chrishtr
https://codereview.chromium.org/445793002/diff/60001/Source/core/rendering/RenderView.cpp File Source/core/rendering/RenderView.cpp (right): https://codereview.chromium.org/445793002/diff/60001/Source/core/rendering/RenderView.cpp#newcode451 Source/core/rendering/RenderView.cpp:451: const RenderLayerModelObject* paintInvalidationContainer = containerForPaintInvalidation(); On 2014/08/06 18:54:00, leviw ...
6 years, 4 months ago (2014-08-06 21:59:56 UTC) #4
leviw_travelin_and_unemployed
lgtm https://codereview.chromium.org/445793002/diff/80001/Source/core/rendering/RenderView.cpp File Source/core/rendering/RenderView.cpp (right): https://codereview.chromium.org/445793002/diff/80001/Source/core/rendering/RenderView.cpp#newcode512 Source/core/rendering/RenderView.cpp:512: if (!paintInvalidationContainer || paintInvalidationContainer == this) What's the ...
6 years, 4 months ago (2014-08-06 22:04:32 UTC) #5
chrishtr
https://codereview.chromium.org/445793002/diff/80001/Source/core/rendering/RenderView.cpp File Source/core/rendering/RenderView.cpp (right): https://codereview.chromium.org/445793002/diff/80001/Source/core/rendering/RenderView.cpp#newcode512 Source/core/rendering/RenderView.cpp:512: if (!paintInvalidationContainer || paintInvalidationContainer == this) On 2014/08/06 22:04:32, ...
6 years, 4 months ago (2014-08-06 22:54:21 UTC) #6
chrishtr
The CQ bit was checked by chrishtr@chromium.org
6 years, 4 months ago (2014-08-06 22:54:25 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/chrishtr@chromium.org/445793002/100001
6 years, 4 months ago (2014-08-06 22:55:01 UTC) #8
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: linux_blink_dbg on tryserver.blink ...
6 years, 4 months ago (2014-08-07 00:14:00 UTC) #9
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-08-07 00:22:16 UTC) #10
commit-bot: I haz the power
Try jobs failed on following builders: linux_blink_dbg on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/linux_blink_dbg/builds/20186)
6 years, 4 months ago (2014-08-07 00:22:17 UTC) #11
chrishtr
Updated to have RenderObject::absoluteClippedOverflowRect() use the view() as its "paint invalidation container" (it's abusing terminology ...
6 years, 4 months ago (2014-08-07 18:49:24 UTC) #12
leviw_travelin_and_unemployed
lgtm https://codereview.chromium.org/445793002/diff/120001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/445793002/diff/120001/Source/core/rendering/RenderObject.cpp#newcode1453 Source/core/rendering/RenderObject.cpp:1453: while (!paintInvalidationContainer && renderView->frame()->ownerRenderer()) It seems like we'd ...
6 years, 4 months ago (2014-08-07 18:54:05 UTC) #13
chrishtr
https://codereview.chromium.org/445793002/diff/120001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/445793002/diff/120001/Source/core/rendering/RenderObject.cpp#newcode1453 Source/core/rendering/RenderObject.cpp:1453: while (!paintInvalidationContainer && renderView->frame()->ownerRenderer()) On 2014/08/07 18:54:05, leviw wrote: ...
6 years, 4 months ago (2014-08-07 20:20:27 UTC) #14
chrishtr
Updated two ASSERTS to not trigger during document destruction. During such a destruction, the render ...
6 years, 4 months ago (2014-08-07 20:47:01 UTC) #15
chrishtr
The CQ bit was checked by chrishtr@chromium.org
6 years, 4 months ago (2014-08-07 20:50:00 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/chrishtr@chromium.org/445793002/160001
6 years, 4 months ago (2014-08-07 20:51:11 UTC) #17
commit-bot: I haz the power
Change committed as 179762
6 years, 4 months ago (2014-08-07 22:33:08 UTC) #18
abarth-chromium
Could this issue have caused https://code.google.com/p/chromium/issues/detail?id=403734#c4 (See comment #4 for a reduction.)
6 years, 4 months ago (2014-08-14 22:34:52 UTC) #19
leviw_travelin_and_unemployed
A revert of this CL (patchset #10) has been created in https://codereview.chromium.org/469313003/ by leviw@chromium.org. The ...
6 years, 4 months ago (2014-08-14 22:47:39 UTC) #20
philipj_slow
philipj@opera.com changed reviewers: + philipj@opera.com
6 years, 3 months ago (2014-08-28 14:02:28 UTC) #21
philipj_slow
https://codereview.chromium.org/445793002/diff/80001/Source/core/rendering/RenderView.cpp File Source/core/rendering/RenderView.cpp (right): https://codereview.chromium.org/445793002/diff/80001/Source/core/rendering/RenderView.cpp#newcode512 Source/core/rendering/RenderView.cpp:512: if (!paintInvalidationContainer || paintInvalidationContainer == this) On 2014/08/06 22:54:20, ...
6 years, 3 months ago (2014-08-28 14:02:28 UTC) #22
chrishtr
On 2014/08/28 at 14:02:28, philipj wrote: > https://codereview.chromium.org/445793002/diff/80001/Source/core/rendering/RenderView.cpp > File Source/core/rendering/RenderView.cpp (right): > > https://codereview.chromium.org/445793002/diff/80001/Source/core/rendering/RenderView.cpp#newcode512 ...
6 years, 3 months ago (2014-08-28 16:19:02 UTC) #23
philipj_slow
6 years, 3 months ago (2014-08-28 18:04:11 UTC) #24
Message was sent while issue was closed.
I posted a review earlier today: https://codereview.chromium.org/516933002/

Powered by Google App Engine
This is Rietveld 408576698