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

Side by Side Diff: Source/core/paint/ViewDisplayListTest.cpp

Issue 899163003: Move rendering/RenderObject to layout/LayoutObject. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/paint/TextPainter.cpp ('k') | Source/core/paint/ViewPainter.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "config.h" 5 #include "config.h"
6 6
7 #include "core/layout/compositing/LayerCompositor.h" 7 #include "core/layout/compositing/LayerCompositor.h"
8 #include "core/layout/line/InlineTextBox.h" 8 #include "core/layout/line/InlineTextBox.h"
9 #include "core/paint/LayerClipRecorder.h" 9 #include "core/paint/LayerClipRecorder.h"
10 #include "core/paint/LayerPainter.h" 10 #include "core/paint/LayerPainter.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 { 45 {
46 RuntimeEnabledFeatures::setSlimmingPaintEnabled(false); 46 RuntimeEnabledFeatures::setSlimmingPaintEnabled(false);
47 RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(false); 47 RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(false);
48 } 48 }
49 49
50 RenderView* m_renderView; 50 RenderView* m_renderView;
51 }; 51 };
52 52
53 class TestDisplayItem : public DisplayItem { 53 class TestDisplayItem : public DisplayItem {
54 public: 54 public:
55 TestDisplayItem(const RenderObject* renderer, Type type) : DisplayItem(rende rer->displayItemClient(), type) { } 55 TestDisplayItem(const LayoutObject* renderer, Type type) : DisplayItem(rende rer->displayItemClient(), type) { }
56 TestDisplayItem(DisplayItemClient displayItemClient, Type type) : DisplayIte m(displayItemClient, type) { } 56 TestDisplayItem(DisplayItemClient displayItemClient, Type type) : DisplayIte m(displayItemClient, type) { }
57 57
58 virtual void replay(GraphicsContext*) override final { ASSERT_NOT_REACHED(); } 58 virtual void replay(GraphicsContext*) override final { ASSERT_NOT_REACHED(); }
59 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override final { ASSERT_NOT_REACHED(); } 59 virtual void appendToWebDisplayItemList(WebDisplayItemList*) const override final { ASSERT_NOT_REACHED(); }
60 }; 60 };
61 61
62 #ifndef NDEBUG 62 #ifndef NDEBUG
63 #define TRACE_DISPLAY_ITEMS(expected, actual) \ 63 #define TRACE_DISPLAY_ITEMS(expected, actual) \
64 String trace = "Expected: " + (expected).asDebugString() + " Actual: " + (ac tual).asDebugString(); \ 64 String trace = "Expected: " + (expected).asDebugString() + " Actual: " + (ac tual).asDebugString(); \
65 SCOPED_TRACE(trace.utf8().data()); 65 SCOPED_TRACE(trace.utf8().data());
66 #else 66 #else
67 #define TRACE_DISPLAY_ITEMS(expected, actual) 67 #define TRACE_DISPLAY_ITEMS(expected, actual)
68 #endif 68 #endif
69 69
70 #define EXPECT_DISPLAY_LIST(actual, expectedSize, ...) { \ 70 #define EXPECT_DISPLAY_LIST(actual, expectedSize, ...) { \
71 EXPECT_EQ((size_t)expectedSize, actual.size()); \ 71 EXPECT_EQ((size_t)expectedSize, actual.size()); \
72 const TestDisplayItem expected[] = { __VA_ARGS__ }; \ 72 const TestDisplayItem expected[] = { __VA_ARGS__ }; \
73 for (size_t index = 0; index < std::min<size_t>(actual.size(), expectedSize) ; index++) { \ 73 for (size_t index = 0; index < std::min<size_t>(actual.size(), expectedSize) ; index++) { \
74 TRACE_DISPLAY_ITEMS(expected[index], *actual[index]); \ 74 TRACE_DISPLAY_ITEMS(expected[index], *actual[index]); \
75 EXPECT_EQ(expected[index].client(), actual[index]->client()); \ 75 EXPECT_EQ(expected[index].client(), actual[index]->client()); \
76 EXPECT_EQ(expected[index].type(), actual[index]->type()); \ 76 EXPECT_EQ(expected[index].type(), actual[index]->type()); \
77 } \ 77 } \
78 } 78 }
79 79
80 void drawRect(GraphicsContext* context, RenderObject* renderer, PaintPhase phase , const FloatRect& bound) 80 void drawRect(GraphicsContext* context, LayoutObject* renderer, PaintPhase phase , const FloatRect& bound)
81 { 81 {
82 RenderDrawingRecorder drawingRecorder(context, *renderer, phase, bound); 82 RenderDrawingRecorder drawingRecorder(context, *renderer, phase, bound);
83 if (drawingRecorder.canUseCachedDrawing()) 83 if (drawingRecorder.canUseCachedDrawing())
84 return; 84 return;
85 IntRect rect(0, 0, 10, 10); 85 IntRect rect(0, 0, 10, 10);
86 context->drawRect(rect); 86 context->drawRect(rect);
87 } 87 }
88 88
89 void drawClippedRect(GraphicsContext* context, LayoutLayerModelObject* renderer, PaintPhase phase, const FloatRect& bound) 89 void drawClippedRect(GraphicsContext* context, LayoutLayerModelObject* renderer, PaintPhase phase, const FloatRect& bound)
90 { 90 {
(...skipping 13 matching lines...) Expand all
104 104
105 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3, 105 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
106 TestDisplayItem(renderView(), DisplayItem::ClipLayerForeground), 106 TestDisplayItem(renderView(), DisplayItem::ClipLayerForeground),
107 TestDisplayItem(renderView(), DisplayItem::paintPhaseToDrawingType(Paint PhaseForeground)), 107 TestDisplayItem(renderView(), DisplayItem::paintPhaseToDrawingType(Paint PhaseForeground)),
108 TestDisplayItem(renderView(), DisplayItem::clipTypeToEndClipType(Display Item::ClipLayerForeground))); 108 TestDisplayItem(renderView(), DisplayItem::clipTypeToEndClipType(Display Item::ClipLayerForeground)));
109 } 109 }
110 110
111 TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateBasic) 111 TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateBasic)
112 { 112 {
113 setBodyInnerHTML("<div id='first'><div id='second'></div></div>"); 113 setBodyInnerHTML("<div id='first'><div id='second'></div></div>");
114 RenderObject* first = document().body()->firstChild()->renderer(); 114 LayoutObject* first = document().body()->firstChild()->renderer();
115 RenderObject* second = document().body()->firstChild()->firstChild()->render er(); 115 LayoutObject* second = document().body()->firstChild()->firstChild()->render er();
116 GraphicsContext context(nullptr, &rootDisplayItemList()); 116 GraphicsContext context(nullptr, &rootDisplayItemList());
117 117
118 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 300 , 300)); 118 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 300 , 300));
119 drawRect(&context, second, PaintPhaseChildBlockBackground, FloatRect(100, 10 0, 200, 200)); 119 drawRect(&context, second, PaintPhaseChildBlockBackground, FloatRect(100, 10 0, 200, 200));
120 drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 300, 300)); 120 drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 300, 300));
121 rootDisplayItemList().endNewPaints(); 121 rootDisplayItemList().endNewPaints();
122 122
123 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3, 123 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
124 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)), 124 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)),
125 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseC hildBlockBackground)), 125 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseC hildBlockBackground)),
126 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline))); 126 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline)));
127 127
128 rootDisplayItemList().invalidate(second->displayItemClient()); 128 rootDisplayItemList().invalidate(second->displayItemClient());
129 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 300 , 300)); 129 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 300 , 300));
130 drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 300, 300)); 130 drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 300, 300));
131 rootDisplayItemList().endNewPaints(); 131 rootDisplayItemList().endNewPaints();
132 132
133 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, 133 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
134 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)), 134 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)),
135 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline))); 135 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline)));
136 } 136 }
137 137
138 TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateSwapOrder) 138 TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateSwapOrder)
139 { 139 {
140 setBodyInnerHTML("<div id='first'><div id='second'></div></div><div id='unaf fected'></div>"); 140 setBodyInnerHTML("<div id='first'><div id='second'></div></div><div id='unaf fected'></div>");
141 RenderObject* first = document().body()->firstChild()->renderer(); 141 LayoutObject* first = document().body()->firstChild()->renderer();
142 RenderObject* second = document().body()->firstChild()->firstChild()->render er(); 142 LayoutObject* second = document().body()->firstChild()->firstChild()->render er();
143 RenderObject* unaffected = document().body()->firstChild()->nextSibling()->r enderer(); 143 LayoutObject* unaffected = document().body()->firstChild()->nextSibling()->r enderer();
144 GraphicsContext context(nullptr, &rootDisplayItemList()); 144 GraphicsContext context(nullptr, &rootDisplayItemList());
145 145
146 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100 , 100)); 146 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100 , 100));
147 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50 , 200)); 147 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50 , 200));
148 drawRect(&context, unaffected, PaintPhaseBlockBackground, FloatRect(300, 300 , 10, 10)); 148 drawRect(&context, unaffected, PaintPhaseBlockBackground, FloatRect(300, 300 , 10, 10));
149 rootDisplayItemList().endNewPaints(); 149 rootDisplayItemList().endNewPaints();
150 150
151 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3, 151 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
152 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)), 152 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)),
153 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)), 153 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)),
154 TestDisplayItem(unaffected, DisplayItem::paintPhaseToDrawingType(PaintPh aseBlockBackground))); 154 TestDisplayItem(unaffected, DisplayItem::paintPhaseToDrawingType(PaintPh aseBlockBackground)));
155 155
156 rootDisplayItemList().invalidate(second->displayItemClient()); 156 rootDisplayItemList().invalidate(second->displayItemClient());
157 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50 , 200)); 157 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50 , 200));
158 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100 , 100)); 158 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100 , 100));
159 drawRect(&context, unaffected, PaintPhaseBlockBackground, FloatRect(300, 300 , 10, 10)); 159 drawRect(&context, unaffected, PaintPhaseBlockBackground, FloatRect(300, 300 , 10, 10));
160 rootDisplayItemList().endNewPaints(); 160 rootDisplayItemList().endNewPaints();
161 161
162 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3, 162 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
163 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)), 163 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)),
164 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)), 164 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)),
165 TestDisplayItem(unaffected, DisplayItem::paintPhaseToDrawingType(PaintPh aseBlockBackground))); 165 TestDisplayItem(unaffected, DisplayItem::paintPhaseToDrawingType(PaintPh aseBlockBackground)));
166 } 166 }
167 167
168 TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateNewItemInMiddle) 168 TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateNewItemInMiddle)
169 { 169 {
170 setBodyInnerHTML("<div id='first'><div id='second'><div id='third'></div></d iv></div>"); 170 setBodyInnerHTML("<div id='first'><div id='second'><div id='third'></div></d iv></div>");
171 RenderObject* first = document().body()->firstChild()->renderer(); 171 LayoutObject* first = document().body()->firstChild()->renderer();
172 RenderObject* second = document().body()->firstChild()->firstChild()->render er(); 172 LayoutObject* second = document().body()->firstChild()->firstChild()->render er();
173 RenderObject* third = document().body()->firstChild()->firstChild()->firstCh ild()->renderer(); 173 LayoutObject* third = document().body()->firstChild()->firstChild()->firstCh ild()->renderer();
174 GraphicsContext context(nullptr, &rootDisplayItemList()); 174 GraphicsContext context(nullptr, &rootDisplayItemList());
175 175
176 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100 , 100)); 176 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100 , 100));
177 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50 , 200)); 177 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50 , 200));
178 rootDisplayItemList().endNewPaints(); 178 rootDisplayItemList().endNewPaints();
179 179
180 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, 180 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
181 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)), 181 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)),
182 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground))); 182 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)));
183 183
184 rootDisplayItemList().invalidate(third->displayItemClient()); 184 rootDisplayItemList().invalidate(third->displayItemClient());
185 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100 , 100)); 185 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100 , 100));
186 drawRect(&context, third, PaintPhaseBlockBackground, FloatRect(125, 100, 200 , 50)); 186 drawRect(&context, third, PaintPhaseBlockBackground, FloatRect(125, 100, 200 , 50));
187 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50 , 200)); 187 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50 , 200));
188 rootDisplayItemList().endNewPaints(); 188 rootDisplayItemList().endNewPaints();
189 189
190 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3, 190 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
191 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)), 191 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)),
192 TestDisplayItem(third, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)), 192 TestDisplayItem(third, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)),
193 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground))); 193 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)));
194 } 194 }
195 195
196 TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateInvalidationWithPhases) 196 TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateInvalidationWithPhases)
197 { 197 {
198 setBodyInnerHTML("<div id='first'><div id='second'></div></div><div id='thir d'></div>"); 198 setBodyInnerHTML("<div id='first'><div id='second'></div></div><div id='thir d'></div>");
199 RenderObject* first = document().body()->firstChild()->renderer(); 199 LayoutObject* first = document().body()->firstChild()->renderer();
200 RenderObject* second = document().body()->firstChild()->firstChild()->render er(); 200 LayoutObject* second = document().body()->firstChild()->firstChild()->render er();
201 RenderObject* third = document().body()->firstChild()->nextSibling()->render er(); 201 LayoutObject* third = document().body()->firstChild()->nextSibling()->render er();
202 GraphicsContext context(nullptr, &rootDisplayItemList()); 202 GraphicsContext context(nullptr, &rootDisplayItemList());
203 203
204 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100 , 100)); 204 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100 , 100));
205 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50 , 200)); 205 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50 , 200));
206 drawRect(&context, third, PaintPhaseBlockBackground, FloatRect(300, 100, 50, 50)); 206 drawRect(&context, third, PaintPhaseBlockBackground, FloatRect(300, 100, 50, 50));
207 drawRect(&context, first, PaintPhaseForeground, FloatRect(100, 100, 100, 100 )); 207 drawRect(&context, first, PaintPhaseForeground, FloatRect(100, 100, 100, 100 ));
208 drawRect(&context, second, PaintPhaseForeground, FloatRect(100, 100, 50, 200 )); 208 drawRect(&context, second, PaintPhaseForeground, FloatRect(100, 100, 50, 200 ));
209 drawRect(&context, third, PaintPhaseForeground, FloatRect(300, 100, 50, 50)) ; 209 drawRect(&context, third, PaintPhaseForeground, FloatRect(300, 100, 50, 50)) ;
210 drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 100, 100)); 210 drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 100, 100));
211 drawRect(&context, second, PaintPhaseOutline, FloatRect(100, 100, 50, 200)); 211 drawRect(&context, second, PaintPhaseOutline, FloatRect(100, 100, 50, 200));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 TestDisplayItem(third, DisplayItem::paintPhaseToDrawingType(PaintPhaseFo reground)), 257 TestDisplayItem(third, DisplayItem::paintPhaseToDrawingType(PaintPhaseFo reground)),
258 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline)), 258 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline)),
259 TestDisplayItem(third, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline))); 259 TestDisplayItem(third, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline)));
260 #endif 260 #endif
261 } 261 }
262 262
263 // This test is only applicable when we support incremental paint. 263 // This test is only applicable when we support incremental paint.
264 TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddFirstNoOverlap ) 264 TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddFirstNoOverlap )
265 { 265 {
266 setBodyInnerHTML("<div id='first'></div><div id='second'></div>"); 266 setBodyInnerHTML("<div id='first'></div><div id='second'></div>");
267 RenderObject* first = document().body()->firstChild()->renderer(); 267 LayoutObject* first = document().body()->firstChild()->renderer();
268 RenderObject* second = document().body()->firstChild()->nextSibling()->rende rer(); 268 LayoutObject* second = document().body()->firstChild()->nextSibling()->rende rer();
269 GraphicsContext context(nullptr, &rootDisplayItemList()); 269 GraphicsContext context(nullptr, &rootDisplayItemList());
270 270
271 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(200, 200, 50 , 50)); 271 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(200, 200, 50 , 50));
272 drawRect(&context, second, PaintPhaseOutline, FloatRect(200, 200, 50, 50)); 272 drawRect(&context, second, PaintPhaseOutline, FloatRect(200, 200, 50, 50));
273 273
274 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, 274 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
275 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)), 275 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)),
276 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseO utline))); 276 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseO utline)));
277 277
278 rootDisplayItemList().invalidate(first->displayItemClient()); 278 rootDisplayItemList().invalidate(first->displayItemClient());
(...skipping 10 matching lines...) Expand all
289 289
290 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, 290 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
291 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)), 291 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)),
292 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseO utline))); 292 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseO utline)));
293 } 293 }
294 294
295 // This test is only applicable when we support incremental paint. 295 // This test is only applicable when we support incremental paint.
296 TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddFirstOverlap) 296 TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddFirstOverlap)
297 { 297 {
298 setBodyInnerHTML("<div id='first'></div><div id='second'></div>"); 298 setBodyInnerHTML("<div id='first'></div><div id='second'></div>");
299 RenderObject* first = document().body()->firstChild()->renderer(); 299 LayoutObject* first = document().body()->firstChild()->renderer();
300 RenderObject* second = document().body()->firstChild()->nextSibling()->rende rer(); 300 LayoutObject* second = document().body()->firstChild()->nextSibling()->rende rer();
301 GraphicsContext context(nullptr, &rootDisplayItemList()); 301 GraphicsContext context(nullptr, &rootDisplayItemList());
302 302
303 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(200, 200, 50 , 50)); 303 drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(200, 200, 50 , 50));
304 drawRect(&context, second, PaintPhaseOutline, FloatRect(200, 200, 50, 50)); 304 drawRect(&context, second, PaintPhaseOutline, FloatRect(200, 200, 50, 50));
305 305
306 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, 306 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
307 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)), 307 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)),
308 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseO utline))); 308 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseO utline)));
309 309
310 rootDisplayItemList().invalidate(first->displayItemClient()); 310 rootDisplayItemList().invalidate(first->displayItemClient());
(...skipping 15 matching lines...) Expand all
326 326
327 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, 327 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
328 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)), 328 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseB lockBackground)),
329 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseO utline))); 329 TestDisplayItem(second, DisplayItem::paintPhaseToDrawingType(PaintPhaseO utline)));
330 } 330 }
331 331
332 // This test is only applicable when we support incremental paint. 332 // This test is only applicable when we support incremental paint.
333 TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddLastNoOverlap) 333 TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddLastNoOverlap)
334 { 334 {
335 setBodyInnerHTML("<div id='first'></div><div id='second'></div>"); 335 setBodyInnerHTML("<div id='first'></div><div id='second'></div>");
336 RenderObject* first = document().body()->firstChild()->renderer(); 336 LayoutObject* first = document().body()->firstChild()->renderer();
337 RenderObject* second = document().body()->firstChild()->nextSibling()->rende rer(); 337 LayoutObject* second = document().body()->firstChild()->nextSibling()->rende rer();
338 GraphicsContext context(nullptr, &rootDisplayItemList()); 338 GraphicsContext context(nullptr, &rootDisplayItemList());
339 339
340 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 50, 50)); 340 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 50, 50));
341 drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 50, 50)); 341 drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 50, 50));
342 342
343 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, 343 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
344 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)), 344 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)),
345 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline))); 345 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline)));
346 346
347 rootDisplayItemList().invalidate(second->displayItemClient()); 347 rootDisplayItemList().invalidate(second->displayItemClient());
(...skipping 10 matching lines...) Expand all
358 358
359 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, 359 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
360 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)), 360 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)),
361 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline))); 361 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline)));
362 } 362 }
363 363
364 // This test is only applicable when we support incremental paint. 364 // This test is only applicable when we support incremental paint.
365 TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddLastOverlap) 365 TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddLastOverlap)
366 { 366 {
367 setBodyInnerHTML("<div id='first'></div><div id='second'></div>"); 367 setBodyInnerHTML("<div id='first'></div><div id='second'></div>");
368 RenderObject* first = document().body()->firstChild()->renderer(); 368 LayoutObject* first = document().body()->firstChild()->renderer();
369 RenderObject* second = document().body()->firstChild()->nextSibling()->rende rer(); 369 LayoutObject* second = document().body()->firstChild()->nextSibling()->rende rer();
370 GraphicsContext context(nullptr, &rootDisplayItemList()); 370 GraphicsContext context(nullptr, &rootDisplayItemList());
371 371
372 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 150 , 150)); 372 drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 150 , 150));
373 drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 150, 150)); 373 drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 150, 150));
374 374
375 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, 375 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
376 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)), 376 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseBl ockBackground)),
377 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline))); 377 TestDisplayItem(first, DisplayItem::paintPhaseToDrawingType(PaintPhaseOu tline)));
378 378
379 rootDisplayItemList().invalidate(first->displayItemClient()); 379 rootDisplayItemList().invalidate(first->displayItemClient());
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 rootDisplayItemList().invalidateAll(); 487 rootDisplayItemList().invalidateAll();
488 EXPECT_FALSE(rootDisplayItemList().clientCacheIsValid(firstRenderer->display ItemClient())); 488 EXPECT_FALSE(rootDisplayItemList().clientCacheIsValid(firstRenderer->display ItemClient()));
489 EXPECT_FALSE(rootDisplayItemList().clientCacheIsValid(secondRenderer->displa yItemClient())); 489 EXPECT_FALSE(rootDisplayItemList().clientCacheIsValid(secondRenderer->displa yItemClient()));
490 } 490 }
491 491
492 TEST_F(ViewDisplayListTest, FullDocumentPaintingWithCaret) 492 TEST_F(ViewDisplayListTest, FullDocumentPaintingWithCaret)
493 { 493 {
494 setBodyInnerHTML("<div id='div' contentEditable='true'>XYZ</div>"); 494 setBodyInnerHTML("<div id='div' contentEditable='true'>XYZ</div>");
495 RenderView* renderView = document().renderView(); 495 RenderView* renderView = document().renderView();
496 Layer* rootLayer = renderView->layer(); 496 Layer* rootLayer = renderView->layer();
497 RenderObject* htmlRenderer = document().documentElement()->renderer(); 497 LayoutObject* htmlRenderer = document().documentElement()->renderer();
498 Element* div = toElement(document().body()->firstChild()); 498 Element* div = toElement(document().body()->firstChild());
499 RenderObject* divRenderer = document().body()->firstChild()->renderer(); 499 LayoutObject* divRenderer = document().body()->firstChild()->renderer();
500 InlineTextBox* textInlineBox = toRenderText(div->firstChild()->renderer())-> firstTextBox(); 500 InlineTextBox* textInlineBox = toRenderText(div->firstChild()->renderer())-> firstTextBox();
501 501
502 SkCanvas canvas(800, 600); 502 SkCanvas canvas(800, 600);
503 GraphicsContext context(&canvas, &rootDisplayItemList()); 503 GraphicsContext context(&canvas, &rootDisplayItemList());
504 LayerPaintingInfo paintingInfo(rootLayer, LayoutRect(0, 0, 800, 600), PaintB ehaviorNormal, LayoutSize()); 504 LayerPaintingInfo paintingInfo(rootLayer, LayoutRect(0, 0, 800, 600), PaintB ehaviorNormal, LayoutSize());
505 LayerPainter(*rootLayer).paintLayerContents(&context, paintingInfo, PaintLay erPaintingCompositingAllPhases); 505 LayerPainter(*rootLayer).paintLayerContents(&context, paintingInfo, PaintLay erPaintingCompositingAllPhases);
506 rootDisplayItemList().endNewPaints(); 506 rootDisplayItemList().endNewPaints();
507 507
508 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2, 508 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
509 TestDisplayItem(htmlRenderer, DisplayItem::BoxDecorationBackground), 509 TestDisplayItem(htmlRenderer, DisplayItem::BoxDecorationBackground),
510 TestDisplayItem(textInlineBox->displayItemClient(), DisplayItem::paintPh aseToDrawingType(PaintPhaseForeground))); 510 TestDisplayItem(textInlineBox->displayItemClient(), DisplayItem::paintPh aseToDrawingType(PaintPhaseForeground)));
511 511
512 div->focus(); 512 div->focus();
513 document().view()->updateLayoutAndStyleForPainting(); 513 document().view()->updateLayoutAndStyleForPainting();
514 LayerPainter(*rootLayer).paintLayerContents(&context, paintingInfo, PaintLay erPaintingCompositingAllPhases); 514 LayerPainter(*rootLayer).paintLayerContents(&context, paintingInfo, PaintLay erPaintingCompositingAllPhases);
515 rootDisplayItemList().endNewPaints(); 515 rootDisplayItemList().endNewPaints();
516 516
517 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3, 517 EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
518 TestDisplayItem(htmlRenderer, DisplayItem::BoxDecorationBackground), 518 TestDisplayItem(htmlRenderer, DisplayItem::BoxDecorationBackground),
519 TestDisplayItem(textInlineBox->displayItemClient(), DisplayItem::paintPh aseToDrawingType(PaintPhaseForeground)), 519 TestDisplayItem(textInlineBox->displayItemClient(), DisplayItem::paintPh aseToDrawingType(PaintPhaseForeground)),
520 TestDisplayItem(divRenderer, DisplayItem::Caret)); 520 TestDisplayItem(divRenderer, DisplayItem::Caret));
521 } 521 }
522 522
523 } // anonymous namespace 523 } // anonymous namespace
524 } // namespace blink 524 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/paint/TextPainter.cpp ('k') | Source/core/paint/ViewPainter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698