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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp

Issue 1774943003: blink: Rename platform/ methods to prefix with get when they collide. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clash-platform: rebase-yayyyyyyyy Created 4 years, 9 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "platform/graphics/paint/PaintController.h" 5 #include "platform/graphics/paint/PaintController.h"
6 6
7 #include "platform/RuntimeEnabledFeatures.h" 7 #include "platform/RuntimeEnabledFeatures.h"
8 #include "platform/graphics/GraphicsContext.h" 8 #include "platform/graphics/GraphicsContext.h"
9 #include "platform/graphics/paint/CachedDisplayItem.h" 9 #include "platform/graphics/paint/CachedDisplayItem.h"
10 #include "platform/graphics/paint/ClipPathRecorder.h" 10 #include "platform/graphics/paint/ClipPathRecorder.h"
11 #include "platform/graphics/paint/ClipRecorder.h" 11 #include "platform/graphics/paint/ClipRecorder.h"
12 #include "platform/graphics/paint/DrawingDisplayItem.h" 12 #include "platform/graphics/paint/DrawingDisplayItem.h"
13 #include "platform/graphics/paint/DrawingRecorder.h" 13 #include "platform/graphics/paint/DrawingRecorder.h"
14 #include "platform/graphics/paint/SubsequenceRecorder.h" 14 #include "platform/graphics/paint/SubsequenceRecorder.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 namespace blink { 17 namespace blink {
18 18
19 class PaintControllerTest : public ::testing::Test { 19 class PaintControllerTest : public ::testing::Test {
20 public: 20 public:
21 PaintControllerTest() 21 PaintControllerTest()
22 : m_paintController(PaintController::create()) 22 : m_paintController(PaintController::create())
23 , m_originalSlimmingPaintV2Enabled(RuntimeEnabledFeatures::slimmingPaint V2Enabled()) { } 23 , m_originalSlimmingPaintV2Enabled(RuntimeEnabledFeatures::slimmingPaint V2Enabled()) { }
24 24
25 IntRect visualRect(const PaintArtifact& paintArtifact, unsigned index) 25 IntRect visualRect(const PaintArtifact& paintArtifact, unsigned index)
26 { 26 {
27 return paintArtifact.displayItemList().visualRect(index); 27 return paintArtifact.getDisplayItemList().visualRect(index);
28 } 28 }
29 29
30 protected: 30 protected:
31 PaintController& paintController() { return *m_paintController; } 31 PaintController& getPaintController() { return *m_paintController; }
32 32
33 private: 33 private:
34 void TearDown() override 34 void TearDown() override
35 { 35 {
36 RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(m_originalSlimmingPain tV2Enabled); 36 RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(m_originalSlimmingPain tV2Enabled);
37 } 37 }
38 38
39 OwnPtr<PaintController> m_paintController; 39 OwnPtr<PaintController> m_paintController;
40 bool m_originalSlimmingPaintV2Enabled; 40 bool m_originalSlimmingPaintV2Enabled;
41 }; 41 };
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 } 97 }
98 98
99 void drawClippedRect(GraphicsContext& context, const TestDisplayItemClient& clie nt, DisplayItem::Type clipType, DisplayItem::Type drawingType, const FloatRect& bound) 99 void drawClippedRect(GraphicsContext& context, const TestDisplayItemClient& clie nt, DisplayItem::Type clipType, DisplayItem::Type drawingType, const FloatRect& bound)
100 { 100 {
101 ClipRecorder clipRecorder(context, client, clipType, LayoutRect(1, 1, 9, 9)) ; 101 ClipRecorder clipRecorder(context, client, clipType, LayoutRect(1, 1, 9, 9)) ;
102 drawRect(context, client, drawingType, bound); 102 drawRect(context, client, drawingType, bound);
103 } 103 }
104 104
105 TEST_F(PaintControllerTest, NestedRecorders) 105 TEST_F(PaintControllerTest, NestedRecorders)
106 { 106 {
107 GraphicsContext context(paintController()); 107 GraphicsContext context(getPaintController());
108 108
109 TestDisplayItemClient client("client"); 109 TestDisplayItemClient client("client");
110 110
111 drawClippedRect(context, client, clipType, backgroundDrawingType, FloatRect( 100, 100, 200, 200)); 111 drawClippedRect(context, client, clipType, backgroundDrawingType, FloatRect( 100, 100, 200, 200));
112 paintController().commitNewDisplayItems(); 112 getPaintController().commitNewDisplayItems();
113 113
114 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 3, 114 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
115 TestDisplayItem(client, clipType), 115 TestDisplayItem(client, clipType),
116 TestDisplayItem(client, backgroundDrawingType), 116 TestDisplayItem(client, backgroundDrawingType),
117 TestDisplayItem(client, DisplayItem::clipTypeToEndClipType(clipType))); 117 TestDisplayItem(client, DisplayItem::clipTypeToEndClipType(clipType)));
118 } 118 }
119 119
120 TEST_F(PaintControllerTest, UpdateBasic) 120 TEST_F(PaintControllerTest, UpdateBasic)
121 { 121 {
122 TestDisplayItemClient first("first"); 122 TestDisplayItemClient first("first");
123 TestDisplayItemClient second("second"); 123 TestDisplayItemClient second("second");
124 GraphicsContext context(paintController()); 124 GraphicsContext context(getPaintController());
125 125
126 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300, 300 )); 126 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300, 300 ));
127 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 200, 20 0)); 127 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 200, 20 0));
128 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300, 300 )); 128 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300, 300 ));
129 paintController().commitNewDisplayItems(); 129 getPaintController().commitNewDisplayItems();
130 130
131 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 3, 131 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
132 TestDisplayItem(first, backgroundDrawingType), 132 TestDisplayItem(first, backgroundDrawingType),
133 TestDisplayItem(second, backgroundDrawingType), 133 TestDisplayItem(second, backgroundDrawingType),
134 TestDisplayItem(first, foregroundDrawingType)); 134 TestDisplayItem(first, foregroundDrawingType));
135 135
136 paintController().invalidate(second); 136 getPaintController().invalidate(second);
137 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300, 300 )); 137 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300, 300 ));
138 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300, 300 )); 138 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300, 300 ));
139 paintController().commitNewDisplayItems(); 139 getPaintController().commitNewDisplayItems();
140 140
141 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 141 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
142 TestDisplayItem(first, backgroundDrawingType), 142 TestDisplayItem(first, backgroundDrawingType),
143 TestDisplayItem(first, foregroundDrawingType)); 143 TestDisplayItem(first, foregroundDrawingType));
144 } 144 }
145 145
146 TEST_F(PaintControllerTest, UpdateSwapOrder) 146 TEST_F(PaintControllerTest, UpdateSwapOrder)
147 { 147 {
148 TestDisplayItemClient first("first"); 148 TestDisplayItemClient first("first");
149 TestDisplayItemClient second("second"); 149 TestDisplayItemClient second("second");
150 TestDisplayItemClient unaffected("unaffected"); 150 TestDisplayItemClient unaffected("unaffected");
151 GraphicsContext context(paintController()); 151 GraphicsContext context(getPaintController());
152 152
153 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 )); 153 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 ));
154 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 )); 154 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 ));
155 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10, 10)); 155 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10, 10));
156 paintController().commitNewDisplayItems(); 156 getPaintController().commitNewDisplayItems();
157 157
158 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 3, 158 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
159 TestDisplayItem(first, backgroundDrawingType), 159 TestDisplayItem(first, backgroundDrawingType),
160 TestDisplayItem(second, backgroundDrawingType), 160 TestDisplayItem(second, backgroundDrawingType),
161 TestDisplayItem(unaffected, backgroundDrawingType)); 161 TestDisplayItem(unaffected, backgroundDrawingType));
162 162
163 paintController().invalidate(second); 163 getPaintController().invalidate(second);
164 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 )); 164 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 ));
165 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 )); 165 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 ));
166 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10, 10)); 166 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10, 10));
167 paintController().commitNewDisplayItems(); 167 getPaintController().commitNewDisplayItems();
168 168
169 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 3, 169 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
170 TestDisplayItem(second, backgroundDrawingType), 170 TestDisplayItem(second, backgroundDrawingType),
171 TestDisplayItem(first, backgroundDrawingType), 171 TestDisplayItem(first, backgroundDrawingType),
172 TestDisplayItem(unaffected, backgroundDrawingType)); 172 TestDisplayItem(unaffected, backgroundDrawingType));
173 } 173 }
174 174
175 TEST_F(PaintControllerTest, UpdateNewItemInMiddle) 175 TEST_F(PaintControllerTest, UpdateNewItemInMiddle)
176 { 176 {
177 TestDisplayItemClient first("first"); 177 TestDisplayItemClient first("first");
178 TestDisplayItemClient second("second"); 178 TestDisplayItemClient second("second");
179 TestDisplayItemClient third("third"); 179 TestDisplayItemClient third("third");
180 GraphicsContext context(paintController()); 180 GraphicsContext context(getPaintController());
181 181
182 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 )); 182 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 ));
183 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 )); 183 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 ));
184 paintController().commitNewDisplayItems(); 184 getPaintController().commitNewDisplayItems();
185 185
186 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 186 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
187 TestDisplayItem(first, backgroundDrawingType), 187 TestDisplayItem(first, backgroundDrawingType),
188 TestDisplayItem(second, backgroundDrawingType)); 188 TestDisplayItem(second, backgroundDrawingType));
189 189
190 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 )); 190 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 ));
191 drawRect(context, third, backgroundDrawingType, FloatRect(125, 100, 200, 50) ); 191 drawRect(context, third, backgroundDrawingType, FloatRect(125, 100, 200, 50) );
192 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 )); 192 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 ));
193 paintController().commitNewDisplayItems(); 193 getPaintController().commitNewDisplayItems();
194 194
195 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 3, 195 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
196 TestDisplayItem(first, backgroundDrawingType), 196 TestDisplayItem(first, backgroundDrawingType),
197 TestDisplayItem(third, backgroundDrawingType), 197 TestDisplayItem(third, backgroundDrawingType),
198 TestDisplayItem(second, backgroundDrawingType)); 198 TestDisplayItem(second, backgroundDrawingType));
199 } 199 }
200 200
201 TEST_F(PaintControllerTest, UpdateInvalidationWithPhases) 201 TEST_F(PaintControllerTest, UpdateInvalidationWithPhases)
202 { 202 {
203 TestDisplayItemClient first("first"); 203 TestDisplayItemClient first("first");
204 TestDisplayItemClient second("second"); 204 TestDisplayItemClient second("second");
205 TestDisplayItemClient third("third"); 205 TestDisplayItemClient third("third");
206 GraphicsContext context(paintController()); 206 GraphicsContext context(getPaintController());
207 207
208 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 )); 208 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 ));
209 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 )); 209 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 ));
210 drawRect(context, third, backgroundDrawingType, FloatRect(300, 100, 50, 50)) ; 210 drawRect(context, third, backgroundDrawingType, FloatRect(300, 100, 50, 50)) ;
211 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100 )); 211 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100 ));
212 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200 )); 212 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200 ));
213 drawRect(context, third, foregroundDrawingType, FloatRect(300, 100, 50, 50)) ; 213 drawRect(context, third, foregroundDrawingType, FloatRect(300, 100, 50, 50)) ;
214 paintController().commitNewDisplayItems(); 214 getPaintController().commitNewDisplayItems();
215 215
216 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 6, 216 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 6,
217 TestDisplayItem(first, backgroundDrawingType), 217 TestDisplayItem(first, backgroundDrawingType),
218 TestDisplayItem(second, backgroundDrawingType), 218 TestDisplayItem(second, backgroundDrawingType),
219 TestDisplayItem(third, backgroundDrawingType), 219 TestDisplayItem(third, backgroundDrawingType),
220 TestDisplayItem(first, foregroundDrawingType), 220 TestDisplayItem(first, foregroundDrawingType),
221 TestDisplayItem(second, foregroundDrawingType), 221 TestDisplayItem(second, foregroundDrawingType),
222 TestDisplayItem(third, foregroundDrawingType)); 222 TestDisplayItem(third, foregroundDrawingType));
223 223
224 paintController().invalidate(second); 224 getPaintController().invalidate(second);
225 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 )); 225 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 ));
226 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 )); 226 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 ));
227 drawRect(context, third, backgroundDrawingType, FloatRect(300, 100, 50, 50)) ; 227 drawRect(context, third, backgroundDrawingType, FloatRect(300, 100, 50, 50)) ;
228 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100 )); 228 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100 ));
229 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200 )); 229 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200 ));
230 drawRect(context, third, foregroundDrawingType, FloatRect(300, 100, 50, 50)) ; 230 drawRect(context, third, foregroundDrawingType, FloatRect(300, 100, 50, 50)) ;
231 paintController().commitNewDisplayItems(); 231 getPaintController().commitNewDisplayItems();
232 232
233 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 6, 233 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 6,
234 TestDisplayItem(first, backgroundDrawingType), 234 TestDisplayItem(first, backgroundDrawingType),
235 TestDisplayItem(second, backgroundDrawingType), 235 TestDisplayItem(second, backgroundDrawingType),
236 TestDisplayItem(third, backgroundDrawingType), 236 TestDisplayItem(third, backgroundDrawingType),
237 TestDisplayItem(first, foregroundDrawingType), 237 TestDisplayItem(first, foregroundDrawingType),
238 TestDisplayItem(second, foregroundDrawingType), 238 TestDisplayItem(second, foregroundDrawingType),
239 TestDisplayItem(third, foregroundDrawingType)); 239 TestDisplayItem(third, foregroundDrawingType));
240 } 240 }
241 241
242 TEST_F(PaintControllerTest, UpdateAddFirstOverlap) 242 TEST_F(PaintControllerTest, UpdateAddFirstOverlap)
243 { 243 {
244 TestDisplayItemClient first("first"); 244 TestDisplayItemClient first("first");
245 TestDisplayItemClient second("second"); 245 TestDisplayItemClient second("second");
246 GraphicsContext context(paintController()); 246 GraphicsContext context(getPaintController());
247 247
248 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) ); 248 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) );
249 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) ); 249 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) );
250 paintController().commitNewDisplayItems(); 250 getPaintController().commitNewDisplayItems();
251 251
252 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 252 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
253 TestDisplayItem(second, backgroundDrawingType), 253 TestDisplayItem(second, backgroundDrawingType),
254 TestDisplayItem(second, foregroundDrawingType)); 254 TestDisplayItem(second, foregroundDrawingType));
255 255
256 paintController().invalidate(first); 256 getPaintController().invalidate(first);
257 paintController().invalidate(second); 257 getPaintController().invalidate(second);
258 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 258 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
259 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 )); 259 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 ));
260 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) ); 260 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) );
261 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) ); 261 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) );
262 paintController().commitNewDisplayItems(); 262 getPaintController().commitNewDisplayItems();
263 263
264 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 4, 264 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 4,
265 TestDisplayItem(first, backgroundDrawingType), 265 TestDisplayItem(first, backgroundDrawingType),
266 TestDisplayItem(first, foregroundDrawingType), 266 TestDisplayItem(first, foregroundDrawingType),
267 TestDisplayItem(second, backgroundDrawingType), 267 TestDisplayItem(second, backgroundDrawingType),
268 TestDisplayItem(second, foregroundDrawingType)); 268 TestDisplayItem(second, foregroundDrawingType));
269 269
270 paintController().invalidate(first); 270 getPaintController().invalidate(first);
271 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) ); 271 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) );
272 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) ); 272 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) );
273 paintController().commitNewDisplayItems(); 273 getPaintController().commitNewDisplayItems();
274 274
275 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 275 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
276 TestDisplayItem(second, backgroundDrawingType), 276 TestDisplayItem(second, backgroundDrawingType),
277 TestDisplayItem(second, foregroundDrawingType)); 277 TestDisplayItem(second, foregroundDrawingType));
278 } 278 }
279 279
280 TEST_F(PaintControllerTest, UpdateAddLastOverlap) 280 TEST_F(PaintControllerTest, UpdateAddLastOverlap)
281 { 281 {
282 TestDisplayItemClient first("first"); 282 TestDisplayItemClient first("first");
283 TestDisplayItemClient second("second"); 283 TestDisplayItemClient second("second");
284 GraphicsContext context(paintController()); 284 GraphicsContext context(getPaintController());
285 285
286 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 286 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
287 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 )); 287 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 ));
288 paintController().commitNewDisplayItems(); 288 getPaintController().commitNewDisplayItems();
289 289
290 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 290 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
291 TestDisplayItem(first, backgroundDrawingType), 291 TestDisplayItem(first, backgroundDrawingType),
292 TestDisplayItem(first, foregroundDrawingType)); 292 TestDisplayItem(first, foregroundDrawingType));
293 293
294 paintController().invalidate(first); 294 getPaintController().invalidate(first);
295 paintController().invalidate(second); 295 getPaintController().invalidate(second);
296 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 296 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
297 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 )); 297 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 ));
298 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) ); 298 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) );
299 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) ); 299 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) );
300 paintController().commitNewDisplayItems(); 300 getPaintController().commitNewDisplayItems();
301 301
302 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 4, 302 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 4,
303 TestDisplayItem(first, backgroundDrawingType), 303 TestDisplayItem(first, backgroundDrawingType),
304 TestDisplayItem(first, foregroundDrawingType), 304 TestDisplayItem(first, foregroundDrawingType),
305 TestDisplayItem(second, backgroundDrawingType), 305 TestDisplayItem(second, backgroundDrawingType),
306 TestDisplayItem(second, foregroundDrawingType)); 306 TestDisplayItem(second, foregroundDrawingType));
307 307
308 paintController().invalidate(first); 308 getPaintController().invalidate(first);
309 paintController().invalidate(second); 309 getPaintController().invalidate(second);
310 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 310 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
311 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 )); 311 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 ));
312 paintController().commitNewDisplayItems(); 312 getPaintController().commitNewDisplayItems();
313 313
314 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 314 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
315 TestDisplayItem(first, backgroundDrawingType), 315 TestDisplayItem(first, backgroundDrawingType),
316 TestDisplayItem(first, foregroundDrawingType)); 316 TestDisplayItem(first, foregroundDrawingType));
317 } 317 }
318 318
319 TEST_F(PaintControllerTest, UpdateClip) 319 TEST_F(PaintControllerTest, UpdateClip)
320 { 320 {
321 TestDisplayItemClient first("first"); 321 TestDisplayItemClient first("first");
322 TestDisplayItemClient second("second"); 322 TestDisplayItemClient second("second");
323 GraphicsContext context(paintController()); 323 GraphicsContext context(getPaintController());
324 324
325 { 325 {
326 ClipRecorder clipRecorder(context, first, clipType, LayoutRect(1, 1, 2, 2)); 326 ClipRecorder clipRecorder(context, first, clipType, LayoutRect(1, 1, 2, 2));
327 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150)); 327 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150));
328 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150 , 150)); 328 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150 , 150));
329 } 329 }
330 paintController().commitNewDisplayItems(); 330 getPaintController().commitNewDisplayItems();
331 331
332 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 4, 332 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 4,
333 TestDisplayItem(first, clipType), 333 TestDisplayItem(first, clipType),
334 TestDisplayItem(first, backgroundDrawingType), 334 TestDisplayItem(first, backgroundDrawingType),
335 TestDisplayItem(second, backgroundDrawingType), 335 TestDisplayItem(second, backgroundDrawingType),
336 TestDisplayItem(first, DisplayItem::clipTypeToEndClipType(clipType))); 336 TestDisplayItem(first, DisplayItem::clipTypeToEndClipType(clipType)));
337 337
338 paintController().invalidate(first); 338 getPaintController().invalidate(first);
339 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 339 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
340 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15 0)); 340 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15 0));
341 paintController().commitNewDisplayItems(); 341 getPaintController().commitNewDisplayItems();
342 342
343 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 343 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
344 TestDisplayItem(first, backgroundDrawingType), 344 TestDisplayItem(first, backgroundDrawingType),
345 TestDisplayItem(second, backgroundDrawingType)); 345 TestDisplayItem(second, backgroundDrawingType));
346 346
347 paintController().invalidate(second); 347 getPaintController().invalidate(second);
348 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 348 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
349 { 349 {
350 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2)); 350 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2));
351 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150 , 150)); 351 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150 , 150));
352 } 352 }
353 paintController().commitNewDisplayItems(); 353 getPaintController().commitNewDisplayItems();
354 354
355 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 4, 355 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 4,
356 TestDisplayItem(first, backgroundDrawingType), 356 TestDisplayItem(first, backgroundDrawingType),
357 TestDisplayItem(second, clipType), 357 TestDisplayItem(second, clipType),
358 TestDisplayItem(second, backgroundDrawingType), 358 TestDisplayItem(second, backgroundDrawingType),
359 TestDisplayItem(second, DisplayItem::clipTypeToEndClipType(clipType))); 359 TestDisplayItem(second, DisplayItem::clipTypeToEndClipType(clipType)));
360 } 360 }
361 361
362 TEST_F(PaintControllerTest, CachedDisplayItems) 362 TEST_F(PaintControllerTest, CachedDisplayItems)
363 { 363 {
364 TestDisplayItemClient first("first"); 364 TestDisplayItemClient first("first");
365 TestDisplayItemClient second("second"); 365 TestDisplayItemClient second("second");
366 GraphicsContext context(paintController()); 366 GraphicsContext context(getPaintController());
367 367
368 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 368 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
369 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15 0)); 369 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15 0));
370 paintController().commitNewDisplayItems(); 370 getPaintController().commitNewDisplayItems();
371 371
372 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 372 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
373 TestDisplayItem(first, backgroundDrawingType), 373 TestDisplayItem(first, backgroundDrawingType),
374 TestDisplayItem(second, backgroundDrawingType)); 374 TestDisplayItem(second, backgroundDrawingType));
375 EXPECT_TRUE(paintController().clientCacheIsValid(first)); 375 EXPECT_TRUE(getPaintController().clientCacheIsValid(first));
376 EXPECT_TRUE(paintController().clientCacheIsValid(second)); 376 EXPECT_TRUE(getPaintController().clientCacheIsValid(second));
377 const SkPicture* firstPicture = static_cast<const DrawingDisplayItem&>(paint Controller().displayItemList()[0]).picture(); 377 const SkPicture* firstPicture = static_cast<const DrawingDisplayItem&>(getPa intController().getDisplayItemList()[0]).picture();
378 const SkPicture* secondPicture = static_cast<const DrawingDisplayItem&>(pain tController().displayItemList()[1]).picture(); 378 const SkPicture* secondPicture = static_cast<const DrawingDisplayItem&>(getP aintController().getDisplayItemList()[1]).picture();
379 379
380 paintController().invalidate(first); 380 getPaintController().invalidate(first);
381 EXPECT_FALSE(paintController().clientCacheIsValid(first)); 381 EXPECT_FALSE(getPaintController().clientCacheIsValid(first));
382 EXPECT_TRUE(paintController().clientCacheIsValid(second)); 382 EXPECT_TRUE(getPaintController().clientCacheIsValid(second));
383 383
384 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 384 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
385 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15 0)); 385 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15 0));
386 paintController().commitNewDisplayItems(); 386 getPaintController().commitNewDisplayItems();
387 387
388 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 388 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
389 TestDisplayItem(first, backgroundDrawingType), 389 TestDisplayItem(first, backgroundDrawingType),
390 TestDisplayItem(second, backgroundDrawingType)); 390 TestDisplayItem(second, backgroundDrawingType));
391 // The first display item should be updated. 391 // The first display item should be updated.
392 EXPECT_NE(firstPicture, static_cast<const DrawingDisplayItem&>(paintControll er().displayItemList()[0]).picture()); 392 EXPECT_NE(firstPicture, static_cast<const DrawingDisplayItem&>(getPaintContr oller().getDisplayItemList()[0]).picture());
393 // The second display item should be cached. 393 // The second display item should be cached.
394 EXPECT_EQ(secondPicture, static_cast<const DrawingDisplayItem&>(paintControl ler().displayItemList()[1]).picture()); 394 EXPECT_EQ(secondPicture, static_cast<const DrawingDisplayItem&>(getPaintCont roller().getDisplayItemList()[1]).picture());
395 EXPECT_TRUE(paintController().clientCacheIsValid(first)); 395 EXPECT_TRUE(getPaintController().clientCacheIsValid(first));
396 EXPECT_TRUE(paintController().clientCacheIsValid(second)); 396 EXPECT_TRUE(getPaintController().clientCacheIsValid(second));
397 397
398 paintController().invalidateAll(); 398 getPaintController().invalidateAll();
399 EXPECT_FALSE(paintController().clientCacheIsValid(first)); 399 EXPECT_FALSE(getPaintController().clientCacheIsValid(first));
400 EXPECT_FALSE(paintController().clientCacheIsValid(second)); 400 EXPECT_FALSE(getPaintController().clientCacheIsValid(second));
401 } 401 }
402 402
403 TEST_F(PaintControllerTest, ComplexUpdateSwapOrder) 403 TEST_F(PaintControllerTest, ComplexUpdateSwapOrder)
404 { 404 {
405 TestDisplayItemClient container1("container1"); 405 TestDisplayItemClient container1("container1");
406 TestDisplayItemClient content1("content1"); 406 TestDisplayItemClient content1("content1");
407 TestDisplayItemClient container2("container2"); 407 TestDisplayItemClient container2("container2");
408 TestDisplayItemClient content2("content2"); 408 TestDisplayItemClient content2("content2");
409 GraphicsContext context(paintController()); 409 GraphicsContext context(getPaintController());
410 410
411 drawRect(context, container1, backgroundDrawingType, FloatRect(100, 100, 100 , 100)); 411 drawRect(context, container1, backgroundDrawingType, FloatRect(100, 100, 100 , 100));
412 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 100, 50, 2 00)); 412 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 100, 50, 2 00));
413 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 100, 50, 2 00)); 413 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 100, 50, 2 00));
414 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100 , 100)); 414 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100 , 100));
415 drawRect(context, container2, backgroundDrawingType, FloatRect(100, 200, 100 , 100)); 415 drawRect(context, container2, backgroundDrawingType, FloatRect(100, 200, 100 , 100));
416 drawRect(context, content2, backgroundDrawingType, FloatRect(100, 200, 50, 2 00)); 416 drawRect(context, content2, backgroundDrawingType, FloatRect(100, 200, 50, 2 00));
417 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 50, 2 00)); 417 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 50, 2 00));
418 drawRect(context, container2, foregroundDrawingType, FloatRect(100, 200, 100 , 100)); 418 drawRect(context, container2, foregroundDrawingType, FloatRect(100, 200, 100 , 100));
419 paintController().commitNewDisplayItems(); 419 getPaintController().commitNewDisplayItems();
420 420
421 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 8, 421 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 8,
422 TestDisplayItem(container1, backgroundDrawingType), 422 TestDisplayItem(container1, backgroundDrawingType),
423 TestDisplayItem(content1, backgroundDrawingType), 423 TestDisplayItem(content1, backgroundDrawingType),
424 TestDisplayItem(content1, foregroundDrawingType), 424 TestDisplayItem(content1, foregroundDrawingType),
425 TestDisplayItem(container1, foregroundDrawingType), 425 TestDisplayItem(container1, foregroundDrawingType),
426 TestDisplayItem(container2, backgroundDrawingType), 426 TestDisplayItem(container2, backgroundDrawingType),
427 TestDisplayItem(content2, backgroundDrawingType), 427 TestDisplayItem(content2, backgroundDrawingType),
428 TestDisplayItem(content2, foregroundDrawingType), 428 TestDisplayItem(content2, foregroundDrawingType),
429 TestDisplayItem(container2, foregroundDrawingType)); 429 TestDisplayItem(container2, foregroundDrawingType));
430 430
431 // Simulate the situation when container1 e.g. gets a z-index that is now gr eater than container2. 431 // Simulate the situation when container1 e.g. gets a z-index that is now gr eater than container2.
432 paintController().invalidate(container1); 432 getPaintController().invalidate(container1);
433 drawRect(context, container2, backgroundDrawingType, FloatRect(100, 200, 100 , 100)); 433 drawRect(context, container2, backgroundDrawingType, FloatRect(100, 200, 100 , 100));
434 drawRect(context, content2, backgroundDrawingType, FloatRect(100, 200, 50, 2 00)); 434 drawRect(context, content2, backgroundDrawingType, FloatRect(100, 200, 50, 2 00));
435 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 50, 2 00)); 435 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 50, 2 00));
436 drawRect(context, container2, foregroundDrawingType, FloatRect(100, 200, 100 , 100)); 436 drawRect(context, container2, foregroundDrawingType, FloatRect(100, 200, 100 , 100));
437 drawRect(context, container1, backgroundDrawingType, FloatRect(100, 100, 100 , 100)); 437 drawRect(context, container1, backgroundDrawingType, FloatRect(100, 100, 100 , 100));
438 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 100, 50, 2 00)); 438 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 100, 50, 2 00));
439 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 100, 50, 2 00)); 439 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 100, 50, 2 00));
440 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100 , 100)); 440 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100 , 100));
441 paintController().commitNewDisplayItems(); 441 getPaintController().commitNewDisplayItems();
442 442
443 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 8, 443 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 8,
444 TestDisplayItem(container2, backgroundDrawingType), 444 TestDisplayItem(container2, backgroundDrawingType),
445 TestDisplayItem(content2, backgroundDrawingType), 445 TestDisplayItem(content2, backgroundDrawingType),
446 TestDisplayItem(content2, foregroundDrawingType), 446 TestDisplayItem(content2, foregroundDrawingType),
447 TestDisplayItem(container2, foregroundDrawingType), 447 TestDisplayItem(container2, foregroundDrawingType),
448 TestDisplayItem(container1, backgroundDrawingType), 448 TestDisplayItem(container1, backgroundDrawingType),
449 TestDisplayItem(content1, backgroundDrawingType), 449 TestDisplayItem(content1, backgroundDrawingType),
450 TestDisplayItem(content1, foregroundDrawingType), 450 TestDisplayItem(content1, foregroundDrawingType),
451 TestDisplayItem(container1, foregroundDrawingType)); 451 TestDisplayItem(container1, foregroundDrawingType));
452 } 452 }
453 453
454 TEST_F(PaintControllerTest, CachedSubsequenceSwapOrder) 454 TEST_F(PaintControllerTest, CachedSubsequenceSwapOrder)
455 { 455 {
456 TestDisplayItemClient container1("container1"); 456 TestDisplayItemClient container1("container1");
457 TestDisplayItemClient content1("content1"); 457 TestDisplayItemClient content1("content1");
458 TestDisplayItemClient container2("container2"); 458 TestDisplayItemClient container2("container2");
459 TestDisplayItemClient content2("content2"); 459 TestDisplayItemClient content2("content2");
460 GraphicsContext context(paintController()); 460 GraphicsContext context(getPaintController());
461 461
462 { 462 {
463 SubsequenceRecorder r(context, container1); 463 SubsequenceRecorder r(context, container1);
464 drawRect(context, container1, backgroundDrawingType, FloatRect(100, 100, 100, 100)); 464 drawRect(context, container1, backgroundDrawingType, FloatRect(100, 100, 100, 100));
465 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 100, 5 0, 200)); 465 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 100, 5 0, 200));
466 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 100, 5 0, 200)); 466 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 100, 5 0, 200));
467 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100, 100)); 467 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100, 100));
468 } 468 }
469 { 469 {
470 SubsequenceRecorder r(context, container2); 470 SubsequenceRecorder r(context, container2);
471 drawRect(context, container2, backgroundDrawingType, FloatRect(100, 200, 100, 100)); 471 drawRect(context, container2, backgroundDrawingType, FloatRect(100, 200, 100, 100));
472 drawRect(context, content2, backgroundDrawingType, FloatRect(100, 200, 5 0, 200)); 472 drawRect(context, content2, backgroundDrawingType, FloatRect(100, 200, 5 0, 200));
473 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 5 0, 200)); 473 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 5 0, 200));
474 drawRect(context, container2, foregroundDrawingType, FloatRect(100, 200, 100, 100)); 474 drawRect(context, container2, foregroundDrawingType, FloatRect(100, 200, 100, 100));
475 } 475 }
476 paintController().commitNewDisplayItems(); 476 getPaintController().commitNewDisplayItems();
477 477
478 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 12, 478 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 12,
479 TestDisplayItem(container1, DisplayItem::Subsequence), 479 TestDisplayItem(container1, DisplayItem::Subsequence),
480 TestDisplayItem(container1, backgroundDrawingType), 480 TestDisplayItem(container1, backgroundDrawingType),
481 TestDisplayItem(content1, backgroundDrawingType), 481 TestDisplayItem(content1, backgroundDrawingType),
482 TestDisplayItem(content1, foregroundDrawingType), 482 TestDisplayItem(content1, foregroundDrawingType),
483 TestDisplayItem(container1, foregroundDrawingType), 483 TestDisplayItem(container1, foregroundDrawingType),
484 TestDisplayItem(container1, DisplayItem::EndSubsequence), 484 TestDisplayItem(container1, DisplayItem::EndSubsequence),
485 485
486 TestDisplayItem(container2, DisplayItem::Subsequence), 486 TestDisplayItem(container2, DisplayItem::Subsequence),
487 TestDisplayItem(container2, backgroundDrawingType), 487 TestDisplayItem(container2, backgroundDrawingType),
488 TestDisplayItem(content2, backgroundDrawingType), 488 TestDisplayItem(content2, backgroundDrawingType),
489 TestDisplayItem(content2, foregroundDrawingType), 489 TestDisplayItem(content2, foregroundDrawingType),
490 TestDisplayItem(container2, foregroundDrawingType), 490 TestDisplayItem(container2, foregroundDrawingType),
491 TestDisplayItem(container2, DisplayItem::EndSubsequence)); 491 TestDisplayItem(container2, DisplayItem::EndSubsequence));
492 492
493 // Simulate the situation when container1 e.g. gets a z-index that is now gr eater than container2. 493 // Simulate the situation when container1 e.g. gets a z-index that is now gr eater than container2.
494 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, con tainer2)); 494 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, con tainer2));
495 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, con tainer1)); 495 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, con tainer1));
496 496
497 EXPECT_DISPLAY_LIST(paintController().newDisplayItemList(), 2, 497 EXPECT_DISPLAY_LIST(getPaintController().newDisplayItemList(), 2,
498 TestDisplayItem(container2, DisplayItem::CachedSubsequence), 498 TestDisplayItem(container2, DisplayItem::CachedSubsequence),
499 TestDisplayItem(container1, DisplayItem::CachedSubsequence)); 499 TestDisplayItem(container1, DisplayItem::CachedSubsequence));
500 500
501 paintController().commitNewDisplayItems(); 501 getPaintController().commitNewDisplayItems();
502 502
503 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 12, 503 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 12,
504 TestDisplayItem(container2, DisplayItem::Subsequence), 504 TestDisplayItem(container2, DisplayItem::Subsequence),
505 TestDisplayItem(container2, backgroundDrawingType), 505 TestDisplayItem(container2, backgroundDrawingType),
506 TestDisplayItem(content2, backgroundDrawingType), 506 TestDisplayItem(content2, backgroundDrawingType),
507 TestDisplayItem(content2, foregroundDrawingType), 507 TestDisplayItem(content2, foregroundDrawingType),
508 TestDisplayItem(container2, foregroundDrawingType), 508 TestDisplayItem(container2, foregroundDrawingType),
509 TestDisplayItem(container2, DisplayItem::EndSubsequence), 509 TestDisplayItem(container2, DisplayItem::EndSubsequence),
510 510
511 TestDisplayItem(container1, DisplayItem::Subsequence), 511 TestDisplayItem(container1, DisplayItem::Subsequence),
512 TestDisplayItem(container1, backgroundDrawingType), 512 TestDisplayItem(container1, backgroundDrawingType),
513 TestDisplayItem(content1, backgroundDrawingType), 513 TestDisplayItem(content1, backgroundDrawingType),
514 TestDisplayItem(content1, foregroundDrawingType), 514 TestDisplayItem(content1, foregroundDrawingType),
515 TestDisplayItem(container1, foregroundDrawingType), 515 TestDisplayItem(container1, foregroundDrawingType),
516 TestDisplayItem(container1, DisplayItem::EndSubsequence)); 516 TestDisplayItem(container1, DisplayItem::EndSubsequence));
517 } 517 }
518 518
519 TEST_F(PaintControllerTest, OutOfOrderNoCrash) 519 TEST_F(PaintControllerTest, OutOfOrderNoCrash)
520 { 520 {
521 TestDisplayItemClient client("client"); 521 TestDisplayItemClient client("client");
522 GraphicsContext context(paintController()); 522 GraphicsContext context(getPaintController());
523 523
524 const DisplayItem::Type type1 = DisplayItem::DrawingFirst; 524 const DisplayItem::Type type1 = DisplayItem::DrawingFirst;
525 const DisplayItem::Type type2 = static_cast<DisplayItem::Type>(DisplayItem:: DrawingFirst + 1); 525 const DisplayItem::Type type2 = static_cast<DisplayItem::Type>(DisplayItem:: DrawingFirst + 1);
526 const DisplayItem::Type type3 = static_cast<DisplayItem::Type>(DisplayItem:: DrawingFirst + 2); 526 const DisplayItem::Type type3 = static_cast<DisplayItem::Type>(DisplayItem:: DrawingFirst + 2);
527 const DisplayItem::Type type4 = static_cast<DisplayItem::Type>(DisplayItem:: DrawingFirst + 3); 527 const DisplayItem::Type type4 = static_cast<DisplayItem::Type>(DisplayItem:: DrawingFirst + 3);
528 528
529 drawRect(context, client, type1, FloatRect(100, 100, 100, 100)); 529 drawRect(context, client, type1, FloatRect(100, 100, 100, 100));
530 drawRect(context, client, type2, FloatRect(100, 100, 50, 200)); 530 drawRect(context, client, type2, FloatRect(100, 100, 50, 200));
531 drawRect(context, client, type3, FloatRect(100, 100, 50, 200)); 531 drawRect(context, client, type3, FloatRect(100, 100, 50, 200));
532 drawRect(context, client, type4, FloatRect(100, 100, 100, 100)); 532 drawRect(context, client, type4, FloatRect(100, 100, 100, 100));
533 533
534 paintController().commitNewDisplayItems(); 534 getPaintController().commitNewDisplayItems();
535 535
536 drawRect(context, client, type2, FloatRect(100, 100, 50, 200)); 536 drawRect(context, client, type2, FloatRect(100, 100, 50, 200));
537 drawRect(context, client, type3, FloatRect(100, 100, 50, 200)); 537 drawRect(context, client, type3, FloatRect(100, 100, 50, 200));
538 drawRect(context, client, type1, FloatRect(100, 100, 100, 100)); 538 drawRect(context, client, type1, FloatRect(100, 100, 100, 100));
539 drawRect(context, client, type4, FloatRect(100, 100, 100, 100)); 539 drawRect(context, client, type4, FloatRect(100, 100, 100, 100));
540 540
541 paintController().commitNewDisplayItems(); 541 getPaintController().commitNewDisplayItems();
542 } 542 }
543 543
544 TEST_F(PaintControllerTest, CachedNestedSubsequenceUpdate) 544 TEST_F(PaintControllerTest, CachedNestedSubsequenceUpdate)
545 { 545 {
546 TestDisplayItemClient container1("container1"); 546 TestDisplayItemClient container1("container1");
547 TestDisplayItemClient content1("content1"); 547 TestDisplayItemClient content1("content1");
548 TestDisplayItemClient container2("container2"); 548 TestDisplayItemClient container2("container2");
549 TestDisplayItemClient content2("content2"); 549 TestDisplayItemClient content2("content2");
550 GraphicsContext context(paintController()); 550 GraphicsContext context(getPaintController());
551 551
552 { 552 {
553 SubsequenceRecorder r(context, container1); 553 SubsequenceRecorder r(context, container1);
554 drawRect(context, container1, backgroundDrawingType, FloatRect(100, 100, 100, 100)); 554 drawRect(context, container1, backgroundDrawingType, FloatRect(100, 100, 100, 100));
555 { 555 {
556 SubsequenceRecorder r(context, content1); 556 SubsequenceRecorder r(context, content1);
557 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 10 0, 50, 200)); 557 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 10 0, 50, 200));
558 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 10 0, 50, 200)); 558 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 10 0, 50, 200));
559 } 559 }
560 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100, 100)); 560 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100, 100));
561 } 561 }
562 { 562 {
563 SubsequenceRecorder r(context, container2); 563 SubsequenceRecorder r(context, container2);
564 drawRect(context, container2, backgroundDrawingType, FloatRect(100, 200, 100, 100)); 564 drawRect(context, container2, backgroundDrawingType, FloatRect(100, 200, 100, 100));
565 { 565 {
566 SubsequenceRecorder r(context, content2); 566 SubsequenceRecorder r(context, content2);
567 drawRect(context, content2, backgroundDrawingType, FloatRect(100, 20 0, 50, 200)); 567 drawRect(context, content2, backgroundDrawingType, FloatRect(100, 20 0, 50, 200));
568 } 568 }
569 } 569 }
570 paintController().commitNewDisplayItems(); 570 getPaintController().commitNewDisplayItems();
571 571
572 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 14, 572 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 14,
573 TestDisplayItem(container1, DisplayItem::Subsequence), 573 TestDisplayItem(container1, DisplayItem::Subsequence),
574 TestDisplayItem(container1, backgroundDrawingType), 574 TestDisplayItem(container1, backgroundDrawingType),
575 TestDisplayItem(content1, DisplayItem::Subsequence), 575 TestDisplayItem(content1, DisplayItem::Subsequence),
576 TestDisplayItem(content1, backgroundDrawingType), 576 TestDisplayItem(content1, backgroundDrawingType),
577 TestDisplayItem(content1, foregroundDrawingType), 577 TestDisplayItem(content1, foregroundDrawingType),
578 TestDisplayItem(content1, DisplayItem::EndSubsequence), 578 TestDisplayItem(content1, DisplayItem::EndSubsequence),
579 TestDisplayItem(container1, foregroundDrawingType), 579 TestDisplayItem(container1, foregroundDrawingType),
580 TestDisplayItem(container1, DisplayItem::EndSubsequence), 580 TestDisplayItem(container1, DisplayItem::EndSubsequence),
581 581
582 TestDisplayItem(container2, DisplayItem::Subsequence), 582 TestDisplayItem(container2, DisplayItem::Subsequence),
583 TestDisplayItem(container2, backgroundDrawingType), 583 TestDisplayItem(container2, backgroundDrawingType),
584 TestDisplayItem(content2, DisplayItem::Subsequence), 584 TestDisplayItem(content2, DisplayItem::Subsequence),
585 TestDisplayItem(content2, backgroundDrawingType), 585 TestDisplayItem(content2, backgroundDrawingType),
586 TestDisplayItem(content2, DisplayItem::EndSubsequence), 586 TestDisplayItem(content2, DisplayItem::EndSubsequence),
587 TestDisplayItem(container2, DisplayItem::EndSubsequence)); 587 TestDisplayItem(container2, DisplayItem::EndSubsequence));
588 588
589 // Invalidate container1 but not content1. 589 // Invalidate container1 but not content1.
590 paintController().invalidate(container1); 590 getPaintController().invalidate(container1);
591 591
592 // Container2 itself now becomes empty (but still has the 'content2' child), 592 // Container2 itself now becomes empty (but still has the 'content2' child),
593 // and chooses not to output subsequence info. 593 // and chooses not to output subsequence info.
594 594
595 paintController().invalidate(container2); 595 getPaintController().invalidate(container2);
596 paintController().invalidate(content2); 596 getPaintController().invalidate(content2);
597 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, co ntainer2)); 597 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, co ntainer2));
598 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, co ntent2)); 598 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, co ntent2));
599 // Content2 now outputs foreground only. 599 // Content2 now outputs foreground only.
600 { 600 {
601 SubsequenceRecorder r(context, content2); 601 SubsequenceRecorder r(context, content2);
602 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 5 0, 200)); 602 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 5 0, 200));
603 } 603 }
604 // Repaint container1 with foreground only. 604 // Repaint container1 with foreground only.
605 { 605 {
606 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context , container1)); 606 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context , container1));
607 SubsequenceRecorder r(context, container1); 607 SubsequenceRecorder r(context, container1);
608 // Use cached subsequence of content1. 608 // Use cached subsequence of content1.
609 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, content1)); 609 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, content1));
610 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100, 100)); 610 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100, 100));
611 } 611 }
612 EXPECT_DISPLAY_LIST(paintController().newDisplayItemList(), 7, 612 EXPECT_DISPLAY_LIST(getPaintController().newDisplayItemList(), 7,
613 TestDisplayItem(content2, DisplayItem::Subsequence), 613 TestDisplayItem(content2, DisplayItem::Subsequence),
614 TestDisplayItem(content2, foregroundDrawingType), 614 TestDisplayItem(content2, foregroundDrawingType),
615 TestDisplayItem(content2, DisplayItem::EndSubsequence), 615 TestDisplayItem(content2, DisplayItem::EndSubsequence),
616 TestDisplayItem(container1, DisplayItem::Subsequence), 616 TestDisplayItem(container1, DisplayItem::Subsequence),
617 TestDisplayItem(content1, DisplayItem::CachedSubsequence), 617 TestDisplayItem(content1, DisplayItem::CachedSubsequence),
618 TestDisplayItem(container1, foregroundDrawingType), 618 TestDisplayItem(container1, foregroundDrawingType),
619 TestDisplayItem(container1, DisplayItem::EndSubsequence)); 619 TestDisplayItem(container1, DisplayItem::EndSubsequence));
620 620
621 paintController().commitNewDisplayItems(); 621 getPaintController().commitNewDisplayItems();
622 622
623 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 10, 623 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 10,
624 TestDisplayItem(content2, DisplayItem::Subsequence), 624 TestDisplayItem(content2, DisplayItem::Subsequence),
625 TestDisplayItem(content2, foregroundDrawingType), 625 TestDisplayItem(content2, foregroundDrawingType),
626 TestDisplayItem(content2, DisplayItem::EndSubsequence), 626 TestDisplayItem(content2, DisplayItem::EndSubsequence),
627 627
628 TestDisplayItem(container1, DisplayItem::Subsequence), 628 TestDisplayItem(container1, DisplayItem::Subsequence),
629 TestDisplayItem(content1, DisplayItem::Subsequence), 629 TestDisplayItem(content1, DisplayItem::Subsequence),
630 TestDisplayItem(content1, backgroundDrawingType), 630 TestDisplayItem(content1, backgroundDrawingType),
631 TestDisplayItem(content1, foregroundDrawingType), 631 TestDisplayItem(content1, foregroundDrawingType),
632 TestDisplayItem(content1, DisplayItem::EndSubsequence), 632 TestDisplayItem(content1, DisplayItem::EndSubsequence),
633 TestDisplayItem(container1, foregroundDrawingType), 633 TestDisplayItem(container1, foregroundDrawingType),
634 TestDisplayItem(container1, DisplayItem::EndSubsequence)); 634 TestDisplayItem(container1, DisplayItem::EndSubsequence));
635 } 635 }
636 636
637 TEST_F(PaintControllerTest, Scope) 637 TEST_F(PaintControllerTest, Scope)
638 { 638 {
639 TestDisplayItemClient multicol("multicol"); 639 TestDisplayItemClient multicol("multicol");
640 TestDisplayItemClient content("content"); 640 TestDisplayItemClient content("content");
641 GraphicsContext context(paintController()); 641 GraphicsContext context(getPaintController());
642 642
643 FloatRect rect1(100, 100, 50, 50); 643 FloatRect rect1(100, 100, 50, 50);
644 FloatRect rect2(150, 100, 50, 50); 644 FloatRect rect2(150, 100, 50, 50);
645 FloatRect rect3(200, 100, 50, 50); 645 FloatRect rect3(200, 100, 50, 50);
646 646
647 drawRect(context, multicol, backgroundDrawingType, FloatRect(100, 200, 100, 100)); 647 drawRect(context, multicol, backgroundDrawingType, FloatRect(100, 200, 100, 100));
648 648
649 paintController().beginScope(); 649 getPaintController().beginScope();
650 drawRect(context, content, foregroundDrawingType, rect1); 650 drawRect(context, content, foregroundDrawingType, rect1);
651 paintController().endScope(); 651 getPaintController().endScope();
652 652
653 paintController().beginScope(); 653 getPaintController().beginScope();
654 drawRect(context, content, foregroundDrawingType, rect2); 654 drawRect(context, content, foregroundDrawingType, rect2);
655 paintController().endScope(); 655 getPaintController().endScope();
656 paintController().commitNewDisplayItems(); 656 getPaintController().commitNewDisplayItems();
657 657
658 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 3, 658 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
659 TestDisplayItem(multicol, backgroundDrawingType), 659 TestDisplayItem(multicol, backgroundDrawingType),
660 TestDisplayItem(content, foregroundDrawingType), 660 TestDisplayItem(content, foregroundDrawingType),
661 TestDisplayItem(content, foregroundDrawingType)); 661 TestDisplayItem(content, foregroundDrawingType));
662 RefPtr<const SkPicture> picture1 = static_cast<const DrawingDisplayItem&>(pa intController().displayItemList()[1]).picture(); 662 RefPtr<const SkPicture> picture1 = static_cast<const DrawingDisplayItem&>(ge tPaintController().getDisplayItemList()[1]).picture();
663 RefPtr<const SkPicture> picture2 = static_cast<const DrawingDisplayItem&>(pa intController().displayItemList()[2]).picture(); 663 RefPtr<const SkPicture> picture2 = static_cast<const DrawingDisplayItem&>(ge tPaintController().getDisplayItemList()[2]).picture();
664 EXPECT_NE(picture1, picture2); 664 EXPECT_NE(picture1, picture2);
665 665
666 // Draw again with nothing invalidated. 666 // Draw again with nothing invalidated.
667 EXPECT_TRUE(paintController().clientCacheIsValid(multicol)); 667 EXPECT_TRUE(getPaintController().clientCacheIsValid(multicol));
668 drawRect(context, multicol, backgroundDrawingType, FloatRect(100, 200, 100, 100)); 668 drawRect(context, multicol, backgroundDrawingType, FloatRect(100, 200, 100, 100));
669 paintController().beginScope(); 669 getPaintController().beginScope();
670 drawRect(context, content, foregroundDrawingType, rect1); 670 drawRect(context, content, foregroundDrawingType, rect1);
671 paintController().endScope(); 671 getPaintController().endScope();
672 672
673 paintController().beginScope(); 673 getPaintController().beginScope();
674 drawRect(context, content, foregroundDrawingType, rect2); 674 drawRect(context, content, foregroundDrawingType, rect2);
675 paintController().endScope(); 675 getPaintController().endScope();
676 676
677 EXPECT_DISPLAY_LIST(paintController().newDisplayItemList(), 3, 677 EXPECT_DISPLAY_LIST(getPaintController().newDisplayItemList(), 3,
678 TestDisplayItem(multicol, DisplayItem::drawingTypeToCachedDrawingType(ba ckgroundDrawingType)), 678 TestDisplayItem(multicol, DisplayItem::drawingTypeToCachedDrawingType(ba ckgroundDrawingType)),
679 TestDisplayItem(content, foregroundDrawingType), 679 TestDisplayItem(content, foregroundDrawingType),
680 TestDisplayItem(content, foregroundDrawingType)); 680 TestDisplayItem(content, foregroundDrawingType));
681 681
682 paintController().commitNewDisplayItems(); 682 getPaintController().commitNewDisplayItems();
683 683
684 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 3, 684 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3,
685 TestDisplayItem(multicol, backgroundDrawingType), 685 TestDisplayItem(multicol, backgroundDrawingType),
686 TestDisplayItem(content, foregroundDrawingType), 686 TestDisplayItem(content, foregroundDrawingType),
687 TestDisplayItem(content, foregroundDrawingType)); 687 TestDisplayItem(content, foregroundDrawingType));
688 EXPECT_NE(picture1, static_cast<const DrawingDisplayItem&>(paintController() .displayItemList()[1]).picture()); 688 EXPECT_NE(picture1, static_cast<const DrawingDisplayItem&>(getPaintControlle r().getDisplayItemList()[1]).picture());
689 EXPECT_NE(picture2, static_cast<const DrawingDisplayItem&>(paintController() .displayItemList()[2]).picture()); 689 EXPECT_NE(picture2, static_cast<const DrawingDisplayItem&>(getPaintControlle r().getDisplayItemList()[2]).picture());
690 690
691 // Now the multicol becomes 3 columns and repaints. 691 // Now the multicol becomes 3 columns and repaints.
692 paintController().invalidate(multicol); 692 getPaintController().invalidate(multicol);
693 drawRect(context, multicol, backgroundDrawingType, FloatRect(100, 100, 100, 100)); 693 drawRect(context, multicol, backgroundDrawingType, FloatRect(100, 100, 100, 100));
694 694
695 paintController().beginScope(); 695 getPaintController().beginScope();
696 drawRect(context, content, foregroundDrawingType, rect1); 696 drawRect(context, content, foregroundDrawingType, rect1);
697 paintController().endScope(); 697 getPaintController().endScope();
698 698
699 paintController().beginScope(); 699 getPaintController().beginScope();
700 drawRect(context, content, foregroundDrawingType, rect2); 700 drawRect(context, content, foregroundDrawingType, rect2);
701 paintController().endScope(); 701 getPaintController().endScope();
702 702
703 paintController().beginScope(); 703 getPaintController().beginScope();
704 drawRect(context, content, foregroundDrawingType, rect3); 704 drawRect(context, content, foregroundDrawingType, rect3);
705 paintController().endScope(); 705 getPaintController().endScope();
706 706
707 // We should repaint everything on invalidation of the scope container. 707 // We should repaint everything on invalidation of the scope container.
708 EXPECT_DISPLAY_LIST(paintController().newDisplayItemList(), 4, 708 EXPECT_DISPLAY_LIST(getPaintController().newDisplayItemList(), 4,
709 TestDisplayItem(multicol, backgroundDrawingType), 709 TestDisplayItem(multicol, backgroundDrawingType),
710 TestDisplayItem(content, foregroundDrawingType), 710 TestDisplayItem(content, foregroundDrawingType),
711 TestDisplayItem(content, foregroundDrawingType), 711 TestDisplayItem(content, foregroundDrawingType),
712 TestDisplayItem(content, foregroundDrawingType)); 712 TestDisplayItem(content, foregroundDrawingType));
713 EXPECT_NE(picture1, static_cast<const DrawingDisplayItem&>(paintController() .newDisplayItemList()[1]).picture()); 713 EXPECT_NE(picture1, static_cast<const DrawingDisplayItem&>(getPaintControlle r().newDisplayItemList()[1]).picture());
714 EXPECT_NE(picture2, static_cast<const DrawingDisplayItem&>(paintController() .newDisplayItemList()[2]).picture()); 714 EXPECT_NE(picture2, static_cast<const DrawingDisplayItem&>(getPaintControlle r().newDisplayItemList()[2]).picture());
715 715
716 paintController().commitNewDisplayItems(); 716 getPaintController().commitNewDisplayItems();
717 } 717 }
718 718
719 TEST_F(PaintControllerTest, OptimizeNoopPairs) 719 TEST_F(PaintControllerTest, OptimizeNoopPairs)
720 { 720 {
721 TestDisplayItemClient first("first"); 721 TestDisplayItemClient first("first");
722 TestDisplayItemClient second("second"); 722 TestDisplayItemClient second("second");
723 TestDisplayItemClient third("third"); 723 TestDisplayItemClient third("third");
724 724
725 GraphicsContext context(paintController()); 725 GraphicsContext context(getPaintController());
726 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 726 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100));
727 { 727 {
728 ClipPathRecorder clipRecorder(context, second, Path()); 728 ClipPathRecorder clipRecorder(context, second, Path());
729 drawRect(context, second, backgroundDrawingType, FloatRect(0, 0, 100, 10 0)); 729 drawRect(context, second, backgroundDrawingType, FloatRect(0, 0, 100, 10 0));
730 } 730 }
731 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 731 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100));
732 732
733 paintController().commitNewDisplayItems(); 733 getPaintController().commitNewDisplayItems();
734 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 5, 734 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 5,
735 TestDisplayItem(first, backgroundDrawingType), 735 TestDisplayItem(first, backgroundDrawingType),
736 TestDisplayItem(second, DisplayItem::BeginClipPath), 736 TestDisplayItem(second, DisplayItem::BeginClipPath),
737 TestDisplayItem(second, backgroundDrawingType), 737 TestDisplayItem(second, backgroundDrawingType),
738 TestDisplayItem(second, DisplayItem::EndClipPath), 738 TestDisplayItem(second, DisplayItem::EndClipPath),
739 TestDisplayItem(third, backgroundDrawingType)); 739 TestDisplayItem(third, backgroundDrawingType));
740 740
741 paintController().invalidate(second); 741 getPaintController().invalidate(second);
742 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 742 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100));
743 { 743 {
744 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2)); 744 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2));
745 // Do not draw anything for second. 745 // Do not draw anything for second.
746 } 746 }
747 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 747 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100));
748 paintController().commitNewDisplayItems(); 748 getPaintController().commitNewDisplayItems();
749 749
750 // Empty clips should have been optimized out. 750 // Empty clips should have been optimized out.
751 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 751 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
752 TestDisplayItem(first, backgroundDrawingType), 752 TestDisplayItem(first, backgroundDrawingType),
753 TestDisplayItem(third, backgroundDrawingType)); 753 TestDisplayItem(third, backgroundDrawingType));
754 754
755 paintController().invalidate(second); 755 getPaintController().invalidate(second);
756 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 756 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100));
757 { 757 {
758 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2)); 758 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2));
759 { 759 {
760 ClipPathRecorder clipPathRecorder(context, second, Path()); 760 ClipPathRecorder clipPathRecorder(context, second, Path());
761 // Do not draw anything for second. 761 // Do not draw anything for second.
762 } 762 }
763 } 763 }
764 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 764 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100));
765 paintController().commitNewDisplayItems(); 765 getPaintController().commitNewDisplayItems();
766 766
767 // Empty clips should have been optimized out. 767 // Empty clips should have been optimized out.
768 EXPECT_DISPLAY_LIST(paintController().displayItemList(), 2, 768 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2,
769 TestDisplayItem(first, backgroundDrawingType), 769 TestDisplayItem(first, backgroundDrawingType),
770 TestDisplayItem(third, backgroundDrawingType)); 770 TestDisplayItem(third, backgroundDrawingType));
771 } 771 }
772 772
773 TEST_F(PaintControllerTest, SmallPaintControllerHasOnePaintChunk) 773 TEST_F(PaintControllerTest, SmallPaintControllerHasOnePaintChunk)
774 { 774 {
775 RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(true); 775 RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(true);
776 TestDisplayItemClient client("test client"); 776 TestDisplayItemClient client("test client");
777 777
778 GraphicsContext context(paintController()); 778 GraphicsContext context(getPaintController());
779 drawRect(context, client, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 779 drawRect(context, client, backgroundDrawingType, FloatRect(0, 0, 100, 100));
780 780
781 paintController().commitNewDisplayItems(); 781 getPaintController().commitNewDisplayItems();
782 const auto& paintChunks = paintController().paintChunks(); 782 const auto& paintChunks = getPaintController().paintChunks();
783 ASSERT_EQ(1u, paintChunks.size()); 783 ASSERT_EQ(1u, paintChunks.size());
784 EXPECT_EQ(0u, paintChunks[0].beginIndex); 784 EXPECT_EQ(0u, paintChunks[0].beginIndex);
785 EXPECT_EQ(1u, paintChunks[0].endIndex); 785 EXPECT_EQ(1u, paintChunks[0].endIndex);
786 } 786 }
787 787
788 #define EXPECT_RECT_EQ(expected, actual) \ 788 #define EXPECT_RECT_EQ(expected, actual) \
789 do { \ 789 do { \
790 const IntRect& actualRect = actual; \ 790 const IntRect& actualRect = actual; \
791 EXPECT_EQ(expected.x(), actualRect.x()); \ 791 EXPECT_EQ(expected.x(), actualRect.x()); \
792 EXPECT_EQ(expected.y(), actualRect.y()); \ 792 EXPECT_EQ(expected.y(), actualRect.y()); \
793 EXPECT_EQ(expected.width(), actualRect.width()); \ 793 EXPECT_EQ(expected.width(), actualRect.width()); \
794 EXPECT_EQ(expected.height(), actualRect.height()); \ 794 EXPECT_EQ(expected.height(), actualRect.height()); \
795 } while (false) 795 } while (false)
796 796
797 TEST_F(PaintControllerTest, PaintArtifactWithVisualRects) 797 TEST_F(PaintControllerTest, PaintArtifactWithVisualRects)
798 { 798 {
799 TestDisplayItemClient client("test client", LayoutRect(0, 0, 200, 100)); 799 TestDisplayItemClient client("test client", LayoutRect(0, 0, 200, 100));
800 800
801 GraphicsContext context(paintController()); 801 GraphicsContext context(getPaintController());
802 drawRect(context, client, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 802 drawRect(context, client, backgroundDrawingType, FloatRect(0, 0, 100, 100));
803 803
804 paintController().commitNewDisplayItems(LayoutSize(20, 30)); 804 getPaintController().commitNewDisplayItems(LayoutSize(20, 30));
805 const auto& paintArtifact = paintController().paintArtifact(); 805 const auto& paintArtifact = getPaintController().paintArtifact();
806 ASSERT_EQ(1u, paintArtifact.displayItemList().size()); 806 ASSERT_EQ(1u, paintArtifact.getDisplayItemList().size());
807 EXPECT_RECT_EQ(IntRect(-20, -30, 200, 100), visualRect(paintArtifact, 0)); 807 EXPECT_RECT_EQ(IntRect(-20, -30, 200, 100), visualRect(paintArtifact, 0));
808 } 808 }
809 809
810 } // namespace blink 810 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698