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

Issue 482063005: Allow paint invalidation containers to cross frame boundaries. (re-land #2) (Closed)

Created:
6 years, 4 months ago by chrishtr
Modified:
6 years, 4 months ago
CC:
blink-layers+watch_chromium.org, 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. (re-land #2) The previous commit was rolled out because it did not make the required changes to PaintInvalidationState in order to teach it how 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= Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=180736

Patch Set 1 #

Patch Set 2 : Cleanup. #

Total comments: 1

Patch Set 3 : Fixed. #

Patch Set 4 : Made it work with position:fixed. #

Total comments: 8

Patch Set 5 : Two more test adjustments. #

Patch Set 6 : Added position:fixed inside iframe test. #

Total comments: 4

Patch Set 7 : Fix #

Total comments: 1

Patch Set 8 : Merged. #

Patch Set 9 : Reajust tests #

Total comments: 2

Patch Set 10 : Fixed., #

Patch Set 11 : Fixed case of iframe inside of non-render-view composited container. #

Patch Set 12 : Fix. #

Patch Set 13 : Fix. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+107 lines, -96 lines) Patch
A + LayoutTests/fast/repaint/invalidate-paint-for-fixed-pos-inside-iframe.html View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
A + LayoutTests/fast/repaint/invalidate-paint-for-fixed-pos-inside-iframe-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
A + LayoutTests/fast/repaint/invalidate-paint-in-iframe-in-composited-layer.html View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -1 line 0 comments Download
A LayoutTests/fast/repaint/invalidate-paint-in-iframe-in-composited-layer-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +22 lines, -0 lines 0 comments Download
M LayoutTests/fast/repaint/repaint-in-iframe.html View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/fast/repaint/repaint-in-iframe-expected.txt View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M Source/core/frame/FrameView.cpp View 1 2 3 4 5 2 chunks +6 lines, -6 lines 0 comments Download
M Source/core/rendering/PaintInvalidationState.h View 4 chunks +4 lines, -3 lines 0 comments Download
M Source/core/rendering/PaintInvalidationState.cpp View 1 2 3 4 5 6 3 chunks +13 lines, -21 lines 0 comments Download
M Source/core/rendering/RenderLayerRepainter.cpp View 1 chunk +1 line, -17 lines 0 comments Download
M Source/core/rendering/RenderObject.h View 1 2 3 4 5 6 7 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 10 5 chunks +20 lines, -12 lines 0 comments Download
M Source/core/rendering/RenderView.h View 1 2 3 4 5 2 chunks +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderView.cpp View 1 2 3 4 5 6 7 8 9 5 chunks +32 lines, -27 lines 0 comments Download

Messages

Total messages: 30 (0 generated)
chrishtr
https://codereview.chromium.org/482063005/diff/20001/LayoutTests/platform/linux/fast/repaint/line-flow-with-floats-2-expected.txt File LayoutTests/platform/linux/fast/repaint/line-flow-with-floats-2-expected.txt (left): https://codereview.chromium.org/482063005/diff/20001/LayoutTests/platform/linux/fast/repaint/line-flow-with-floats-2-expected.txt#oldcode18 LayoutTests/platform/linux/fast/repaint/line-flow-with-floats-2-expected.txt:18: [8, 74, 418, 526], Don't know why precisely, but ...
6 years, 4 months ago (2014-08-19 17:42:10 UTC) #1
leviw_travelin_and_unemployed
https://codereview.chromium.org/482063005/diff/60001/Source/core/rendering/PaintInvalidationState.cpp File Source/core/rendering/PaintInvalidationState.cpp (right): https://codereview.chromium.org/482063005/diff/60001/Source/core/rendering/PaintInvalidationState.cpp#newcode59 Source/core/rendering/PaintInvalidationState.cpp:59: FloatPoint fixedOffset = m_renderer.localToContainerPoint(FloatPoint(), &m_paintInvalidationContainer, TraverseDocumentBoundaries); On 2014/08/19 17:42:10, ...
6 years, 4 months ago (2014-08-19 17:52:12 UTC) #2
chrishtr
https://codereview.chromium.org/482063005/diff/60001/Source/core/rendering/PaintInvalidationState.cpp File Source/core/rendering/PaintInvalidationState.cpp (right): https://codereview.chromium.org/482063005/diff/60001/Source/core/rendering/PaintInvalidationState.cpp#newcode59 Source/core/rendering/PaintInvalidationState.cpp:59: FloatPoint fixedOffset = m_renderer.localToContainerPoint(FloatPoint(), &m_paintInvalidationContainer, TraverseDocumentBoundaries); On 2014/08/19 17:52:12, ...
6 years, 4 months ago (2014-08-19 18:19:23 UTC) #3
leviw_travelin_and_unemployed
https://codereview.chromium.org/482063005/diff/100001/LayoutTests/fast/overflow/abs-rel-pos-invalidation-ancestor-expected.txt File LayoutTests/fast/overflow/abs-rel-pos-invalidation-ancestor-expected.txt (right): https://codereview.chromium.org/482063005/diff/100001/LayoutTests/fast/overflow/abs-rel-pos-invalidation-ancestor-expected.txt#newcode10 LayoutTests/fast/overflow/abs-rel-pos-invalidation-ancestor-expected.txt:10: [16, 32, 100, 100] Is this change expected? https://codereview.chromium.org/482063005/diff/100001/Source/core/rendering/RenderObject.cpp ...
6 years, 4 months ago (2014-08-19 18:47:06 UTC) #4
leviw_travelin_and_unemployed
This is how I feel about this patch: http://i.imgur.com/ULFengu.gif
6 years, 4 months ago (2014-08-19 18:49:16 UTC) #5
chrishtr
https://codereview.chromium.org/482063005/diff/100001/LayoutTests/fast/overflow/abs-rel-pos-invalidation-ancestor-expected.txt File LayoutTests/fast/overflow/abs-rel-pos-invalidation-ancestor-expected.txt (right): https://codereview.chromium.org/482063005/diff/100001/LayoutTests/fast/overflow/abs-rel-pos-invalidation-ancestor-expected.txt#newcode10 LayoutTests/fast/overflow/abs-rel-pos-invalidation-ancestor-expected.txt:10: [16, 32, 100, 100] On 2014/08/19 at 18:47:06, leviw ...
6 years, 4 months ago (2014-08-19 21:18:03 UTC) #6
chrishtr
Now passing all tests, and with no diffs to layout tests except the ones I ...
6 years, 4 months ago (2014-08-20 17:44:56 UTC) #7
leviw_travelin_and_unemployed
LGTM. https://codereview.chromium.org/482063005/diff/160001/Source/core/rendering/RenderView.cpp File Source/core/rendering/RenderView.cpp (right): https://codereview.chromium.org/482063005/diff/160001/Source/core/rendering/RenderView.cpp#newcode435 Source/core/rendering/RenderView.cpp:435: // We specifically need to repaint the viewRect ...
6 years, 4 months ago (2014-08-20 18:30:03 UTC) #8
chrishtr
The CQ bit was checked by chrishtr@chromium.org
6 years, 4 months ago (2014-08-20 18:40:10 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/chrishtr@chromium.org/482063005/180001
6 years, 4 months ago (2014-08-20 18:40:38 UTC) #10
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-20 19:57:05 UTC) #11
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-08-20 19:59:45 UTC) #12
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/22153) linux_gpu on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/linux_gpu/builds/55019)
6 years, 4 months ago (2014-08-20 19:59:47 UTC) #13
chrishtr
The CQ bit was checked by chrishtr@chromium.org
6 years, 4 months ago (2014-08-20 20:26:14 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/chrishtr@chromium.org/482063005/180001
6 years, 4 months ago (2014-08-20 20:27:07 UTC) #15
chrishtr
The CQ bit was unchecked by chrishtr@chromium.org
6 years, 4 months ago (2014-08-20 20:36:52 UTC) #16
chrishtr
Made a fix to handle the case when the iframe is inside of an invalidation ...
6 years, 4 months ago (2014-08-20 21:39:36 UTC) #17
chrishtr
The CQ bit was checked by chrishtr@chromium.org
6 years, 4 months ago (2014-08-20 21:39:40 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/chrishtr@chromium.org/482063005/240001
6 years, 4 months ago (2014-08-20 21:43:17 UTC) #19
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-20 22:24:40 UTC) #20
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-08-20 22:27:08 UTC) #21
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/22200) linux_gpu on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/linux_gpu/builds/55178)
6 years, 4 months ago (2014-08-20 22:27:09 UTC) #22
chrishtr
The CQ bit was checked by chrishtr@chromium.org
6 years, 4 months ago (2014-08-21 01:00:50 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/chrishtr@chromium.org/482063005/240001
6 years, 4 months ago (2014-08-21 01:01:38 UTC) #24
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-21 01:05:06 UTC) #25
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-08-21 01:07:14 UTC) #26
commit-bot: I haz the power
Try jobs failed on following builders: linux_gpu on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/linux_gpu/builds/55386)
6 years, 4 months ago (2014-08-21 01:07:15 UTC) #27
chrishtr
The CQ bit was checked by chrishtr@chromium.org
6 years, 4 months ago (2014-08-21 17:09:29 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/chrishtr@chromium.org/482063005/240001
6 years, 4 months ago (2014-08-21 17:10:30 UTC) #29
commit-bot: I haz the power
6 years, 4 months ago (2014-08-21 21:27:59 UTC) #30
Message was sent while issue was closed.
Committed patchset #13 (240001) as 180736

Powered by Google App Engine
This is Rietveld 408576698