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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayerPainterTest.cpp

Issue 2107103002: Find cached display items directly during painting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/layout/LayoutBlock.h" 5 #include "core/layout/LayoutBlock.h"
6 #include "core/layout/LayoutInline.h" 6 #include "core/layout/LayoutInline.h"
7 #include "core/layout/compositing/CompositedLayerMapping.h" 7 #include "core/layout/compositing/CompositedLayerMapping.h"
8 #include "core/paint/PaintControllerPaintTest.h" 8 #include "core/paint/PaintControllerPaintTest.h"
9 #include "platform/graphics/GraphicsContext.h" 9 #include "platform/graphics/GraphicsContext.h"
10 10
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 TestDisplayItem(content1, backgroundType), 49 TestDisplayItem(content1, backgroundType),
50 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence), 50 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence),
51 TestDisplayItem(container2Layer, DisplayItem::Subsequence), 51 TestDisplayItem(container2Layer, DisplayItem::Subsequence),
52 TestDisplayItem(container2, backgroundType), 52 TestDisplayItem(container2, backgroundType),
53 TestDisplayItem(content2, backgroundType), 53 TestDisplayItem(content2, backgroundType),
54 TestDisplayItem(container2Layer, DisplayItem::EndSubsequence), 54 TestDisplayItem(container2Layer, DisplayItem::EndSubsequence),
55 TestDisplayItem(htmlLayer, DisplayItem::EndSubsequence)); 55 TestDisplayItem(htmlLayer, DisplayItem::EndSubsequence));
56 56
57 toHTMLElement(content1.node())->setAttribute(HTMLNames::styleAttr, "position : absolute; width: 100px; height: 100px; background-color: green"); 57 toHTMLElement(content1.node())->setAttribute(HTMLNames::styleAttr, "position : absolute; width: 100px; height: 100px; background-color: green");
58 document().view()->updateAllLifecyclePhasesExceptPaint(); 58 document().view()->updateAllLifecyclePhasesExceptPaint();
59 bool needsCommit = paintWithoutCommit(); 59 EXPECT_TRUE(paintWithoutCommit());
60 60
61 EXPECT_DISPLAY_LIST(rootPaintController().newDisplayItemList(), 8, 61 EXPECT_EQ(6, numCachedNewItems());
62 TestDisplayItem(layoutView(), cachedDocumentBackgroundType),
63 TestDisplayItem(htmlLayer, DisplayItem::Subsequence),
64 TestDisplayItem(container1Layer, DisplayItem::Subsequence),
65 TestDisplayItem(container1, cachedBackgroundType),
66 TestDisplayItem(content1, backgroundType),
67 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence),
68 TestDisplayItem(container2Layer, DisplayItem::CachedSubsequence),
69 TestDisplayItem(htmlLayer, DisplayItem::EndSubsequence));
70 62
71 if (needsCommit) 63 commit();
72 commit();
73 64
74 EXPECT_DISPLAY_LIST(rootPaintController().getDisplayItemList(), 11, 65 EXPECT_DISPLAY_LIST(rootPaintController().getDisplayItemList(), 11,
75 TestDisplayItem(layoutView(), documentBackgroundType), 66 TestDisplayItem(layoutView(), documentBackgroundType),
76 TestDisplayItem(htmlLayer, DisplayItem::Subsequence), 67 TestDisplayItem(htmlLayer, DisplayItem::Subsequence),
77 TestDisplayItem(container1Layer, DisplayItem::Subsequence), 68 TestDisplayItem(container1Layer, DisplayItem::Subsequence),
78 TestDisplayItem(container1, backgroundType), 69 TestDisplayItem(container1, backgroundType),
79 TestDisplayItem(content1, backgroundType), 70 TestDisplayItem(content1, backgroundType),
80 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence), 71 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence),
81 TestDisplayItem(container2Layer, DisplayItem::Subsequence), 72 TestDisplayItem(container2Layer, DisplayItem::Subsequence),
82 TestDisplayItem(container2, backgroundType), 73 TestDisplayItem(container2, backgroundType),
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 TestDisplayItem(content2a, backgroundType), 123 TestDisplayItem(content2a, backgroundType),
133 TestDisplayItem(container2Layer, DisplayItem::EndSubsequence), 124 TestDisplayItem(container2Layer, DisplayItem::EndSubsequence),
134 TestDisplayItem(container3Layer, DisplayItem::Subsequence), 125 TestDisplayItem(container3Layer, DisplayItem::Subsequence),
135 TestDisplayItem(container3, backgroundType), 126 TestDisplayItem(container3, backgroundType),
136 TestDisplayItem(content3, backgroundType), 127 TestDisplayItem(content3, backgroundType),
137 TestDisplayItem(container3Layer, DisplayItem::EndSubsequence), 128 TestDisplayItem(container3Layer, DisplayItem::EndSubsequence),
138 TestDisplayItem(htmlLayer, DisplayItem::EndSubsequence)); 129 TestDisplayItem(htmlLayer, DisplayItem::EndSubsequence));
139 130
140 document().view()->updateAllLifecyclePhasesExceptPaint(); 131 document().view()->updateAllLifecyclePhasesExceptPaint();
141 IntRect newInterestRect(0, 100, 300, 1000); 132 IntRect newInterestRect(0, 100, 300, 1000);
142 bool needsCommit = paintWithoutCommit(&newInterestRect); 133 EXPECT_TRUE(paintWithoutCommit(&newInterestRect));
143 134
144 // Container1 becomes partly in the interest rect, but uses cached subsequen ce 135 // Container1 becomes partly in the interest rect, but uses cached subsequen ce
145 // because it was fully painted before; 136 // because it was fully painted before;
146 // Container2's intersection with the interest rect changes; 137 // Container2's intersection with the interest rect changes;
147 // Content2b is out of the interest rect and outputs nothing; 138 // Content2b is out of the interest rect and outputs nothing;
148 // Container3 becomes out of the interest rect and outputs empty subsequence pair.. 139 // Container3 becomes out of the interest rect and outputs empty subsequence pair..
149 EXPECT_DISPLAY_LIST(rootPaintController().newDisplayItemList(), 11, 140 EXPECT_EQ(7, numCachedNewItems());
150 TestDisplayItem(layoutView(), cachedDocumentBackgroundType),
151 TestDisplayItem(htmlLayer, DisplayItem::Subsequence),
152 TestDisplayItem(container1Layer, DisplayItem::CachedSubsequence),
153 TestDisplayItem(container2Layer, DisplayItem::Subsequence),
154 TestDisplayItem(container2, cachedBackgroundType),
155 TestDisplayItem(content2a, cachedBackgroundType),
156 TestDisplayItem(content2b, backgroundType),
157 TestDisplayItem(container2Layer, DisplayItem::EndSubsequence),
158 TestDisplayItem(container3Layer, DisplayItem::Subsequence),
159 TestDisplayItem(container3Layer, DisplayItem::EndSubsequence),
160 TestDisplayItem(htmlLayer, DisplayItem::EndSubsequence));
161 141
162 if (needsCommit) 142 commit();
163 commit();
164 143
165 EXPECT_DISPLAY_LIST(rootPaintController().getDisplayItemList(), 14, 144 EXPECT_DISPLAY_LIST(rootPaintController().getDisplayItemList(), 14,
166 TestDisplayItem(layoutView(), documentBackgroundType), 145 TestDisplayItem(layoutView(), documentBackgroundType),
167 TestDisplayItem(htmlLayer, DisplayItem::Subsequence), 146 TestDisplayItem(htmlLayer, DisplayItem::Subsequence),
168 TestDisplayItem(container1Layer, DisplayItem::Subsequence), 147 TestDisplayItem(container1Layer, DisplayItem::Subsequence),
169 TestDisplayItem(container1, backgroundType), 148 TestDisplayItem(container1, backgroundType),
170 TestDisplayItem(content1, backgroundType), 149 TestDisplayItem(content1, backgroundType),
171 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence), 150 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence),
172 TestDisplayItem(container2Layer, DisplayItem::Subsequence), 151 TestDisplayItem(container2Layer, DisplayItem::Subsequence),
173 TestDisplayItem(container2, backgroundType), 152 TestDisplayItem(container2, backgroundType),
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 TestDisplayItem(content1, backgroundType), 187 TestDisplayItem(content1, backgroundType),
209 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence), 188 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence),
210 TestDisplayItem(container2Layer, DisplayItem::Subsequence), 189 TestDisplayItem(container2Layer, DisplayItem::Subsequence),
211 TestDisplayItem(container2, backgroundType), 190 TestDisplayItem(container2, backgroundType),
212 TestDisplayItem(content2, backgroundType), 191 TestDisplayItem(content2, backgroundType),
213 TestDisplayItem(container2Layer, DisplayItem::EndSubsequence), 192 TestDisplayItem(container2Layer, DisplayItem::EndSubsequence),
214 TestDisplayItem(htmlLayer, DisplayItem::EndSubsequence)); 193 TestDisplayItem(htmlLayer, DisplayItem::EndSubsequence));
215 194
216 toHTMLElement(content1.node())->setAttribute(HTMLNames::styleAttr, "position : absolute; width: 100px; height: 100px; background-color: green"); 195 toHTMLElement(content1.node())->setAttribute(HTMLNames::styleAttr, "position : absolute; width: 100px; height: 100px; background-color: green");
217 document().view()->updateAllLifecyclePhasesExceptPaint(); 196 document().view()->updateAllLifecyclePhasesExceptPaint();
218 bool needsCommit = paintWithoutCommit(&interestRect); 197 EXPECT_TRUE(paintWithoutCommit(&interestRect));
219 198
220 EXPECT_DISPLAY_LIST(rootPaintController().newDisplayItemList(), 8, 199 EXPECT_EQ(6, numCachedNewItems());
221 TestDisplayItem(layoutView(), cachedDocumentBackgroundType),
222 TestDisplayItem(htmlLayer, DisplayItem::Subsequence),
223 TestDisplayItem(container1Layer, DisplayItem::Subsequence),
224 TestDisplayItem(container1, cachedBackgroundType),
225 TestDisplayItem(content1, backgroundType),
226 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence),
227 TestDisplayItem(container2Layer, DisplayItem::CachedSubsequence),
228 TestDisplayItem(htmlLayer, DisplayItem::EndSubsequence));
229 200
230 if (needsCommit) 201 commit();
231 commit();
232 202
233 EXPECT_DISPLAY_LIST(rootPaintController().getDisplayItemList(), 11, 203 EXPECT_DISPLAY_LIST(rootPaintController().getDisplayItemList(), 11,
234 TestDisplayItem(layoutView(), documentBackgroundType), 204 TestDisplayItem(layoutView(), documentBackgroundType),
235 TestDisplayItem(htmlLayer, DisplayItem::Subsequence), 205 TestDisplayItem(htmlLayer, DisplayItem::Subsequence),
236 TestDisplayItem(container1Layer, DisplayItem::Subsequence), 206 TestDisplayItem(container1Layer, DisplayItem::Subsequence),
237 TestDisplayItem(container1, backgroundType), 207 TestDisplayItem(container1, backgroundType),
238 TestDisplayItem(content1, backgroundType), 208 TestDisplayItem(content1, backgroundType),
239 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence), 209 TestDisplayItem(container1Layer, DisplayItem::EndSubsequence),
240 TestDisplayItem(container2Layer, DisplayItem::Subsequence), 210 TestDisplayItem(container2Layer, DisplayItem::Subsequence),
241 TestDisplayItem(container2, backgroundType), 211 TestDisplayItem(container2, backgroundType),
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 PaintLayer& layer = *table.layer(); 502 PaintLayer& layer = *table.layer();
533 EXPECT_TRUE(layer.isSelfPaintingLayer()); 503 EXPECT_TRUE(layer.isSelfPaintingLayer());
534 EXPECT_FALSE(layer.needsPaintPhaseDescendantBlockBackgrounds()); 504 EXPECT_FALSE(layer.needsPaintPhaseDescendantBlockBackgrounds());
535 505
536 toHTMLElement(table.node())->setAttribute(HTMLNames::styleAttr, "position: r elative; border-collapse: collapse"); 506 toHTMLElement(table.node())->setAttribute(HTMLNames::styleAttr, "position: r elative; border-collapse: collapse");
537 document().view()->updateAllLifecyclePhases(); 507 document().view()->updateAllLifecyclePhases();
538 EXPECT_TRUE(layer.needsPaintPhaseDescendantBlockBackgrounds()); 508 EXPECT_TRUE(layer.needsPaintPhaseDescendantBlockBackgrounds());
539 } 509 }
540 510
541 } // namespace blink 511 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/paint/PaintControllerPaintTest.h ('k') | third_party/WebKit/Source/core/paint/README.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698