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

Issue 395463003: Invalidate previous paint rect in RenderObject::paintInvalidationForWholeRenderer() (Closed)

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

Description

Invalidate previous paint rect in RenderObject::paintInvalidationForWholeRenderer() When an object is being removed, it calls paintInvalidationForWholeRenderer() which previously invalidated the current repaint rect only. However if the object has been layouted after the last invalidation, we'll miss invalidation of the object's previous location. Now let the method also invalidate the previous paint rect if possible. BUG=392794, 394004 TEST=fast/repaint/remove-block-after-layout.html TEST=fast/repaint/remove-inline-after-layout.html TEST=fast/repaint/remove-inline-layer-after-layout.html R=dsinclair@chromium.org, jchaffraix@chromium.org Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=179059

Patch Set 1 #

Total comments: 2

Patch Set 2 : FIXME about invalidation of current location #

Patch Set 3 : Update previousPaintInvalidationRect #

Total comments: 4

Patch Set 4 : Add savesPreviousPaintInvalidationRect; Remove extra optimization code #

Total comments: 2

Patch Set 5 : Simplified #

Total comments: 7

Patch Set 6 : Based on https://codereview.chromium.org/398343003/ (Unified invalidation) #

Patch Set 7 : Back to the original method #

Patch Set 8 : Invalidate both old and new paint rects #

Total comments: 6

Patch Set 9 : Nits #

Total comments: 4

Patch Set 10 : Try layout tests #

Patch Set 11 : For landing #

Unified diffs Side-by-side diffs Delta from patch set Stats (+82 lines, -2 lines) Patch
M LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 9 10 1 chunk +14 lines, -0 lines 0 comments Download
A LayoutTests/fast/repaint/remove-block-after-layout.html View 1 2 3 4 5 6 7 8 9 10 1 chunk +17 lines, -0 lines 0 comments Download
A + LayoutTests/fast/repaint/remove-block-after-layout-expected.txt View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
A LayoutTests/fast/repaint/remove-inline-after-layout.html View 1 2 3 4 5 6 7 8 9 10 1 chunk +19 lines, -0 lines 0 comments Download
A + LayoutTests/fast/repaint/remove-inline-after-layout-expected.txt View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -1 line 0 comments Download
A LayoutTests/fast/repaint/remove-inline-layer-after-layout.html View 1 2 3 4 5 6 7 8 9 1 chunk +19 lines, -0 lines 0 comments Download
A + LayoutTests/fast/repaint/remove-inline-layer-after-layout-expected.txt View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -1 line 0 comments Download
M Source/core/rendering/RenderObject.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +7 lines, -0 lines 0 comments Download

Messages

Total messages: 49 (0 generated)
Xianzhu
6 years, 5 months ago (2014-07-14 18:37:12 UTC) #1
leviw_travelin_and_unemployed
The code change makes sense. From your description: Which existing tests will be affected? Can ...
6 years, 5 months ago (2014-07-14 19:03:50 UTC) #2
Xianzhu
On 2014/07/14 19:03:50, leviw wrote: > The code change makes sense. > > From your ...
6 years, 5 months ago (2014-07-14 19:14:33 UTC) #3
Xianzhu
Now part of layout test results are available on try bots. Note that because of ...
6 years, 5 months ago (2014-07-14 21:31:36 UTC) #4
leviw_travelin_and_unemployed
On 2014/07/14 at 21:31:36, wangxianzhu wrote: > Now part of layout test results are available ...
6 years, 5 months ago (2014-07-14 21:49:23 UTC) #5
Xianzhu
On 2014/07/14 21:49:23, leviw wrote: > On 2014/07/14 at 21:31:36, wangxianzhu wrote: > > Now ...
6 years, 5 months ago (2014-07-14 21:55:24 UTC) #6
Julien - ping for review
https://codereview.chromium.org/395463003/diff/1/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/395463003/diff/1/Source/core/rendering/RenderObject.cpp#newcode1537 Source/core/rendering/RenderObject.cpp:1537: invalidatePaintUsingContainer(paintInvalidationContainer, previousPaintInvalidationRect(), InvalidationPaint); I think we should only invalidate ...
6 years, 5 months ago (2014-07-15 00:58:31 UTC) #7
Xianzhu
https://codereview.chromium.org/395463003/diff/1/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/395463003/diff/1/Source/core/rendering/RenderObject.cpp#newcode1537 Source/core/rendering/RenderObject.cpp:1537: invalidatePaintUsingContainer(paintInvalidationContainer, previousPaintInvalidationRect(), InvalidationPaint); On 2014/07/15 00:58:31, Julien Chaffraix - ...
6 years, 5 months ago (2014-07-15 01:16:24 UTC) #8
Julien - ping for review
On 2014/07/15 at 01:16:24, wangxianzhu wrote: > https://codereview.chromium.org/395463003/diff/1/Source/core/rendering/RenderObject.cpp > File Source/core/rendering/RenderObject.cpp (right): > > https://codereview.chromium.org/395463003/diff/1/Source/core/rendering/RenderObject.cpp#newcode1537 ...
6 years, 5 months ago (2014-07-15 15:21:47 UTC) #9
Xianzhu
On 2014/07/15 15:21:47, Julien Chaffraix - PST wrote: > On 2014/07/15 at 01:16:24, wangxianzhu wrote: ...
6 years, 5 months ago (2014-07-15 19:17:03 UTC) #10
Xianzhu
Based on https://code.google.com/p/chromium/issues/detail?id=394050#c3 (from chrishtr@) I think I should create a unified (but not complicated) ...
6 years, 5 months ago (2014-07-15 20:54:49 UTC) #11
Xianzhu
Reopened this CL and uploaded a new patch. Updated description according to the new patch. ...
6 years, 5 months ago (2014-07-15 23:33:32 UTC) #12
leviw_travelin_and_unemployed
https://codereview.chromium.org/395463003/diff/40001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/395463003/diff/40001/Source/core/rendering/RenderObject.cpp#newcode1537 Source/core/rendering/RenderObject.cpp:1537: LayoutRect paintInvalidationRect = isBox() || isSVG() ? previousPaintInvalidationRect() : ...
6 years, 5 months ago (2014-07-15 23:41:29 UTC) #13
Xianzhu
https://codereview.chromium.org/395463003/diff/40001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/395463003/diff/40001/Source/core/rendering/RenderObject.cpp#newcode1537 Source/core/rendering/RenderObject.cpp:1537: LayoutRect paintInvalidationRect = isBox() || isSVG() ? previousPaintInvalidationRect() : ...
6 years, 5 months ago (2014-07-16 00:22:36 UTC) #14
chrishtr
https://codereview.chromium.org/395463003/diff/60001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/395463003/diff/60001/Source/core/rendering/RenderObject.cpp#newcode2075 Source/core/rendering/RenderObject.cpp:2075: if (!diff.needsRepaint()) Why the !diff.needsRepaint() conditional? Why don't we ...
6 years, 5 months ago (2014-07-16 00:49:22 UTC) #15
leviw_travelin_and_unemployed
On 2014/07/16 at 00:49:22, chrishtr wrote: > https://codereview.chromium.org/395463003/diff/60001/Source/core/rendering/RenderObject.cpp > File Source/core/rendering/RenderObject.cpp (right): > > https://codereview.chromium.org/395463003/diff/60001/Source/core/rendering/RenderObject.cpp#newcode2075 ...
6 years, 5 months ago (2014-07-16 01:04:35 UTC) #16
Xianzhu
https://codereview.chromium.org/395463003/diff/60001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/395463003/diff/60001/Source/core/rendering/RenderObject.cpp#newcode2075 Source/core/rendering/RenderObject.cpp:2075: if (!diff.needsRepaint()) On 2014/07/16 00:49:22, chrishtr wrote: > Why ...
6 years, 5 months ago (2014-07-16 01:59:49 UTC) #17
Xianzhu
Uploaded a simplified change. PTAL.
6 years, 5 months ago (2014-07-16 02:15:03 UTC) #18
chrishtr
https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (left): https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp#oldcode2058 Source/core/rendering/RenderObject.cpp:2058: if (updatedDiff.needsRepaint()) { Just discussed some more with Levi. ...
6 years, 5 months ago (2014-07-16 17:56:25 UTC) #19
Xianzhu
https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (left): https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp#oldcode2058 Source/core/rendering/RenderObject.cpp:2058: if (updatedDiff.needsRepaint()) { On 2014/07/16 17:56:25, chrishtr wrote: > ...
6 years, 5 months ago (2014-07-16 18:05:40 UTC) #20
chrishtr
On 2014/07/16 18:05:40, Xianzhu wrote: > https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp > File Source/core/rendering/RenderObject.cpp (left): > > https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp#oldcode2058 > ...
6 years, 5 months ago (2014-07-16 18:32:37 UTC) #21
leviw_travelin_and_unemployed
https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp#newcode2071 Source/core/rendering/RenderObject.cpp:2071: setPreviousPaintInvalidationRect(boundsRectForPaintInvalidation(containerForPaintInvalidation())); Isn't this redundant with the change you're making ...
6 years, 5 months ago (2014-07-16 23:06:49 UTC) #22
Xianzhu
https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp#newcode2071 Source/core/rendering/RenderObject.cpp:2071: setPreviousPaintInvalidationRect(boundsRectForPaintInvalidation(containerForPaintInvalidation())); On 2014/07/16 23:06:48, leviw wrote: > Isn't this ...
6 years, 5 months ago (2014-07-16 23:47:53 UTC) #23
leviw_travelin_and_unemployed
https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp#newcode2071 Source/core/rendering/RenderObject.cpp:2071: setPreviousPaintInvalidationRect(boundsRectForPaintInvalidation(containerForPaintInvalidation())); If we've ever put up a frame with ...
6 years, 5 months ago (2014-07-22 21:42:29 UTC) #24
Xianzhu
https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp File Source/core/rendering/RenderObject.cpp (right): https://codereview.chromium.org/395463003/diff/70001/Source/core/rendering/RenderObject.cpp#newcode2071 Source/core/rendering/RenderObject.cpp:2071: setPreviousPaintInvalidationRect(boundsRectForPaintInvalidation(containerForPaintInvalidation())); On 2014/07/22 21:42:29, leviw wrote: > If we've ...
6 years, 5 months ago (2014-07-22 21:53:53 UTC) #25
Xianzhu
Uploaded Patch Set 6 which is based on https://codereview.chromium.org/398343003/ (Unified invalidation). Reopen this CL.
6 years, 5 months ago (2014-07-23 18:01:50 UTC) #26
Xianzhu
As the unified invalidation change (https://codereview.chromium.org/398343003/) and its depended changes need more time, I uploaded ...
6 years, 5 months ago (2014-07-23 21:41:02 UTC) #27
rhogan
On 2014/07/23 at 21:41:02, wangxianzhu wrote: > As the unified invalidation change (https://codereview.chromium.org/398343003/) and its ...
6 years, 5 months ago (2014-07-23 22:19:21 UTC) #28
Xianzhu
On 2014/07/23 22:19:21, rhogan wrote: > On 2014/07/23 at 21:41:02, wangxianzhu wrote: > > As ...
6 years, 5 months ago (2014-07-23 22:25:49 UTC) #29
dsinclair
After chatting with Levi and Julien, we can up with, what we think, is a ...
6 years, 5 months ago (2014-07-24 19:43:42 UTC) #30
Xianzhu
On 2014/07/24 19:43:42, dsinclair wrote: > After chatting with Levi and Julien, we can up ...
6 years, 5 months ago (2014-07-24 20:26:37 UTC) #31
Xianzhu
PTAL. The patch doesn't contain special case for layered inline. Based on my test, it ...
6 years, 5 months ago (2014-07-24 21:48:40 UTC) #32
dsinclair
A couple of nits, but lgtm. https://codereview.chromium.org/395463003/diff/150001/LayoutTests/fast/repaint/remove-block-after-layout.html File LayoutTests/fast/repaint/remove-block-after-layout.html (right): https://codereview.chromium.org/395463003/diff/150001/LayoutTests/fast/repaint/remove-block-after-layout.html#newcode10 LayoutTests/fast/repaint/remove-block-after-layout.html:10: runRepaintTest(); onload = ...
6 years, 5 months ago (2014-07-25 14:16:31 UTC) #33
Xianzhu
https://codereview.chromium.org/395463003/diff/150001/LayoutTests/fast/repaint/remove-block-after-layout.html File LayoutTests/fast/repaint/remove-block-after-layout.html (right): https://codereview.chromium.org/395463003/diff/150001/LayoutTests/fast/repaint/remove-block-after-layout.html#newcode10 LayoutTests/fast/repaint/remove-block-after-layout.html:10: runRepaintTest(); On 2014/07/25 14:16:31, dsinclair wrote: > onload = ...
6 years, 5 months ago (2014-07-25 17:02:06 UTC) #34
Julien - ping for review
lgtm https://codereview.chromium.org/395463003/diff/170001/LayoutTests/fast/repaint/remove-block-after-layout.html File LayoutTests/fast/repaint/remove-block-after-layout.html (right): https://codereview.chromium.org/395463003/diff/170001/LayoutTests/fast/repaint/remove-block-after-layout.html#newcode11 LayoutTests/fast/repaint/remove-block-after-layout.html:11: </script> Please let's add a description of what ...
6 years, 4 months ago (2014-07-28 16:57:05 UTC) #35
Xianzhu
https://codereview.chromium.org/395463003/diff/170001/LayoutTests/fast/repaint/remove-block-after-layout.html File LayoutTests/fast/repaint/remove-block-after-layout.html (right): https://codereview.chromium.org/395463003/diff/170001/LayoutTests/fast/repaint/remove-block-after-layout.html#newcode11 LayoutTests/fast/repaint/remove-block-after-layout.html:11: </script> On 2014/07/28 16:57:05, Julien Chaffraix - PST wrote: ...
6 years, 4 months ago (2014-07-28 17:32:31 UTC) #36
Xianzhu
The CQ bit was checked by wangxianzhu@chromium.org
6 years, 4 months ago (2014-07-28 18:20:55 UTC) #37
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/wangxianzhu@chromium.org/395463003/210001
6 years, 4 months ago (2014-07-28 18:21:07 UTC) #38
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: win_blink_rel on tryserver.blink ...
6 years, 4 months ago (2014-07-28 19:29:45 UTC) #39
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-07-28 19:56:42 UTC) #40
commit-bot: I haz the power
Try jobs failed on following builders: win_gpu_triggered_tests on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/win_gpu_triggered_tests/builds/33565)
6 years, 4 months ago (2014-07-28 19:56:43 UTC) #41
Xianzhu
The CQ bit was checked by wangxianzhu@chromium.org
6 years, 4 months ago (2014-07-28 20:10:24 UTC) #42
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/wangxianzhu@chromium.org/395463003/210001
6 years, 4 months ago (2014-07-28 20:10:55 UTC) #43
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: win_blink_rel on tryserver.blink ...
6 years, 4 months ago (2014-07-28 20:57:48 UTC) #44
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-07-28 22:03:30 UTC) #45
commit-bot: I haz the power
Try jobs failed on following builders: win_gpu_triggered_tests on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/win_gpu_triggered_tests/builds/33620)
6 years, 4 months ago (2014-07-28 22:03:32 UTC) #46
Xianzhu
The CQ bit was checked by wangxianzhu@chromium.org
6 years, 4 months ago (2014-07-28 22:08:56 UTC) #47
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/wangxianzhu@chromium.org/395463003/210001
6 years, 4 months ago (2014-07-28 22:09:24 UTC) #48
Xianzhu
6 years, 4 months ago (2014-07-28 22:16:50 UTC) #49
Message was sent while issue was closed.
Committed patchset #11 manually as r179059 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698