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

Issue 1407543003: Preliminary paint property walk implementation for SPv2 (Closed)

Created:
5 years, 2 months ago by trchen
Modified:
5 years, 2 months ago
Reviewers:
chrishtr, pdr., jbroman
CC:
blink-reviews, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj, dshwang, drott+blinkwatch_chromium.org, krit, eae+blinkwatch, f(malita), jchaffraix+rendering, Justin Novosad, leviw+renderwatch, pdr+graphicswatchlist_chromium.org, pdr+renderingwatchlist_chromium.org, rwlbuis, Stephen Chennney, slimming-paint-reviews_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Preliminary paint property walk implementation for SPv2 BUG=537409 Committed: https://crrev.com/6e5dafd02a193d3f180923a1255b487de127879f Cr-Commit-Position: refs/heads/master@{#355488}

Patch Set 1 #

Total comments: 34

Patch Set 2 : address some of the comments. #

Total comments: 3

Patch Set 3 : remove ObjectPaintProperties::Owner, revert to more concrete naming for transform nodes, added comm… #

Total comments: 2

Patch Set 4 : add test fixture #

Total comments: 11

Patch Set 5 : minor bug fix (perspective does not clear paint offset). switch test to unit test style. add a few … #

Total comments: 62

Patch Set 6 : address the feedback #

Total comments: 10

Patch Set 7 : break down walk function #

Patch Set 8 : revert forAllFrameViews change in FrameView.cpp. I don't know what I was thinking. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+690 lines, -43 lines) Patch
M third_party/WebKit/Source/core/core.gypi View 1 2 3 4 5 2 chunks +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.h View 1 2 3 4 5 3 chunks +15 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 7 2 chunks +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 3 4 5 2 chunks +11 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.cpp View 1 2 3 4 5 6 4 chunks +33 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTestHelper.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp View 1 2 3 4 5 1 chunk +7 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/ObjectPaintProperties.h View 1 2 3 4 5 1 chunk +14 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.h View 1 2 3 4 3 chunks +0 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.cpp View 1 2 3 4 2 chunks +0 lines, -17 lines 0 comments Download
A third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h View 1 2 3 4 5 6 1 chunk +31 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp View 1 2 3 4 5 6 1 chunk +240 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp View 1 2 3 4 5 6 1 chunk +187 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/test_data/fixed-position.html View 1 2 3 4 1 chunk +38 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/test_data/perspective.html View 1 2 3 4 1 chunk +17 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/test_data/position-and-scroll.html View 1 2 3 4 1 chunk +39 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/test_data/relative-position-inline.html View 1 2 3 4 5 1 chunk +21 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/paint/test_data/transform.html View 1 2 3 4 1 chunk +17 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintArtifactToSkCanvasTest.cpp View 1 2 3 4 5 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintChunkerTest.cpp View 1 2 3 4 5 3 chunks +5 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h View 1 2 3 2 chunks +5 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/web/WebKitUnitTests.isolate View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/web/webkit_unit_tests.isolate View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 46 (9 generated)
trchen
Just a starting point... Still lots of missing pieces.
5 years, 2 months ago (2015-10-14 05:32:39 UTC) #2
jbroman
https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/core.gypi File third_party/WebKit/Source/core/core.gypi (right): https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/core.gypi#newcode1971 third_party/WebKit/Source/core/core.gypi:1971: 'paint/ObjectPaintProperties.cpp', this file is missing from this CL
5 years, 2 months ago (2015-10-14 14:41:47 UTC) #3
jbroman
some initial thoughts; I haven't reviewed the details of the positioning rules yet (aside: those ...
5 years, 2 months ago (2015-10-14 15:11:59 UTC) #4
chrishtr
https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.h File third_party/WebKit/Source/core/layout/LayoutObject.h (right): https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/layout/LayoutObject.h#newcode183 third_party/WebKit/Source/core/layout/LayoutObject.h:183: class CORE_EXPORT LayoutObject : public ImageResourceClient, public ObjectPaintProperties::Owner { ...
5 years, 2 months ago (2015-10-14 17:30:29 UTC) #6
pdr.
I like the direction this is going, but we really need to add tests :) ...
5 years, 2 months ago (2015-10-14 17:52:07 UTC) #8
pdr.
https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp#newcode115 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:115: bool hasTransform = object.isBox() && style.hasTransform(); I think it's ...
5 years, 2 months ago (2015-10-14 18:44:15 UTC) #9
trchen
https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/core.gypi File third_party/WebKit/Source/core/core.gypi (right): https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/core.gypi#newcode1971 third_party/WebKit/Source/core/core.gypi:1971: 'paint/ObjectPaintProperties.cpp', On 2015/10/14 14:41:47, jbroman wrote: > this file ...
5 years, 2 months ago (2015-10-14 22:51:13 UTC) #10
pdr.
https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h File third_party/WebKit/Source/core/paint/ObjectPaintProperties.h (right): https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h#newcode51 third_party/WebKit/Source/core/paint/ObjectPaintProperties.h:51: void setTransformNodeForSelf(PassRefPtr<TransformPaintPropertyNode> node) { m_transformNodeForSelf = node; } On ...
5 years, 2 months ago (2015-10-15 04:53:52 UTC) #11
jbroman
https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h File third_party/WebKit/Source/core/paint/ObjectPaintProperties.h (right): https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h#newcode51 third_party/WebKit/Source/core/paint/ObjectPaintProperties.h:51: void setTransformNodeForSelf(PassRefPtr<TransformPaintPropertyNode> node) { m_transformNodeForSelf = node; } This ...
5 years, 2 months ago (2015-10-15 14:29:10 UTC) #12
pdr.
https://codereview.chromium.org/1407543003/diff/20001/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h File third_party/WebKit/Source/core/paint/ObjectPaintProperties.h (right): https://codereview.chromium.org/1407543003/diff/20001/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h#newcode30 third_party/WebKit/Source/core/paint/ObjectPaintProperties.h:30: // This is intended to be inherited by FrameView ...
5 years, 2 months ago (2015-10-15 22:05:59 UTC) #13
trchen
https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h File third_party/WebKit/Source/core/paint/ObjectPaintProperties.h (right): https://codereview.chromium.org/1407543003/diff/1/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h#newcode51 third_party/WebKit/Source/core/paint/ObjectPaintProperties.h:51: void setTransformNodeForSelf(PassRefPtr<TransformPaintPropertyNode> node) { m_transformNodeForSelf = node; } On ...
5 years, 2 months ago (2015-10-15 23:24:31 UTC) #14
pdr.
https://codereview.chromium.org/1407543003/diff/40001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1407543003/diff/40001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode152 third_party/WebKit/Source/core/layout/LayoutObject.cpp:152: typedef HashMap<const LayoutObject*, OwnPtr<ObjectPaintProperties>> ObjectPaintPropertiesMap; Please doc what this ...
5 years, 2 months ago (2015-10-15 23:50:50 UTC) #15
trchen
Hey I added a test fixture that is similar to layout test. Will add more ...
5 years, 2 months ago (2015-10-16 03:37:51 UTC) #16
jbroman
https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp File third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp (right): https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp#newcode62 third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp:62: m_pageHolder = nullptr; Why is this necessary? Doesn't this ...
5 years, 2 months ago (2015-10-16 14:46:51 UTC) #17
pdr.
https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/paint/paint_property_tree_builder_tests/fixed-position.html-expected.txt File third_party/WebKit/Source/core/paint/paint_property_tree_builder_tests/fixed-position.html-expected.txt (right): https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/paint/paint_property_tree_builder_tests/fixed-position.html-expected.txt#newcode1 third_party/WebKit/Source/core/paint/paint_property_tree_builder_tests/fixed-position.html-expected.txt:1: === Layout Tree === I think this approach will ...
5 years, 2 months ago (2015-10-16 16:38:46 UTC) #18
jbroman
https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp (right): https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp#newcode21 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp:21: class DumpContext { nit: This should be in an ...
5 years, 2 months ago (2015-10-16 17:31:55 UTC) #19
jbroman
On 2015/10/16 at 17:31:55, jbroman wrote: > https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp > File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp (right): > > https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp#newcode21 ...
5 years, 2 months ago (2015-10-19 15:11:58 UTC) #20
jbroman
https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp (right): https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp#newcode81 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp:81: for (auto child: transformTreeIndexToChildrenList[index]) On 2015/10/16 at 17:31:55, jbroman ...
5 years, 2 months ago (2015-10-19 15:12:45 UTC) #21
trchen
https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp File third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp (right): https://codereview.chromium.org/1407543003/diff/60001/third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp#newcode62 third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp:62: m_pageHolder = nullptr; On 2015/10/16 14:46:51, jbroman wrote: > ...
5 years, 2 months ago (2015-10-20 05:11:47 UTC) #22
pdr.
https://codereview.chromium.org/1407543003/diff/80001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1407543003/diff/80001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode154 third_party/WebKit/Source/core/layout/LayoutObject.cpp:154: To avoid having to create this map in ensureObjectPaintProperties, ...
5 years, 2 months ago (2015-10-20 22:02:31 UTC) #23
jbroman
A few comments, but assuming the tests pass and pdr has had a closer look ...
5 years, 2 months ago (2015-10-20 23:50:14 UTC) #24
trchen
https://codereview.chromium.org/1407543003/diff/80001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1407543003/diff/80001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode154 third_party/WebKit/Source/core/layout/LayoutObject.cpp:154: On 2015/10/20 22:02:30, pdr wrote: > To avoid having ...
5 years, 2 months ago (2015-10-21 06:16:20 UTC) #25
jbroman
Please also fix the test failures (we probably should be running *_chromium_rel rather than *_blink_rel ...
5 years, 2 months ago (2015-10-21 15:33:36 UTC) #26
jbroman
https://codereview.chromium.org/1407543003/diff/100001/third_party/WebKit/Source/core/paint/test_data/fixed-position.html File third_party/WebKit/Source/core/paint/test_data/fixed-position.html (right): https://codereview.chromium.org/1407543003/diff/100001/third_party/WebKit/Source/core/paint/test_data/fixed-position.html#newcode1 third_party/WebKit/Source/core/paint/test_data/fixed-position.html:1: <style> On 2015/10/21 at 15:33:35, jbroman wrote: > The ...
5 years, 2 months ago (2015-10-21 16:18:20 UTC) #27
chrishtr
https://codereview.chromium.org/1407543003/diff/100001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/1407543003/diff/100001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp#newcode105 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:105: void PaintPropertyTreeBuilder::walk(LayoutBoxModelObject& object, const Context& context) This function is ...
5 years, 2 months ago (2015-10-21 17:15:19 UTC) #29
pdr.
https://codereview.chromium.org/1407543003/diff/100001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/1407543003/diff/100001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp#newcode105 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:105: void PaintPropertyTreeBuilder::walk(LayoutBoxModelObject& object, const Context& context) On 2015/10/21 at ...
5 years, 2 months ago (2015-10-21 17:18:02 UTC) #30
pdr.
With a fix for Chris's comment and two small nits, I think we can land ...
5 years, 2 months ago (2015-10-21 21:02:45 UTC) #31
trchen
https://codereview.chromium.org/1407543003/diff/100001/third_party/WebKit/Source/core/layout/LayoutObject.cpp File third_party/WebKit/Source/core/layout/LayoutObject.cpp (right): https://codereview.chromium.org/1407543003/diff/100001/third_party/WebKit/Source/core/layout/LayoutObject.cpp#newcode158 third_party/WebKit/Source/core/layout/LayoutObject.cpp:158: staticObjectPaintPropertiesMap, ()); On 2015/10/21 21:02:45, pdr wrote: > Oops, ...
5 years, 2 months ago (2015-10-21 22:21:14 UTC) #32
pdr.
LGTM Please wait for one additional LGTM from jbroman or chrishtr.
5 years, 2 months ago (2015-10-21 22:43:54 UTC) #33
chrishtr
No need to block on me. I see my comment was addressed, thanks!
5 years, 2 months ago (2015-10-21 22:45:53 UTC) #34
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1407543003/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1407543003/120001
5 years, 2 months ago (2015-10-21 22:48:15 UTC) #36
jbroman
lgtm
5 years, 2 months ago (2015-10-21 22:59:22 UTC) #37
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1407543003/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1407543003/140001
5 years, 2 months ago (2015-10-22 00:01:04 UTC) #39
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 2 months ago (2015-10-22 01:34:19 UTC) #41
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1407543003/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1407543003/140001
5 years, 2 months ago (2015-10-22 03:40:19 UTC) #44
commit-bot: I haz the power
Committed patchset #8 (id:140001)
5 years, 2 months ago (2015-10-22 03:45:12 UTC) #45
commit-bot: I haz the power
5 years, 2 months ago (2015-10-22 03:46:03 UTC) #46
Message was sent while issue was closed.
Patchset 8 (id:??) landed as
https://crrev.com/6e5dafd02a193d3f180923a1255b487de127879f
Cr-Commit-Position: refs/heads/master@{#355488}

Powered by Google App Engine
This is Rietveld 408576698