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

Side by Side Diff: third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DUsageTrackingTest.cpp

Issue 2210123002: Improved heuristic for disable acceleration. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Disable trackDrawCall when Canvas 2D Dynamic Rendering Mode Switching is disabled Created 4 years, 4 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "modules/canvas2d/CanvasRenderingContext2D.h" 5 #include "modules/canvas2d/CanvasRenderingContext2D.h"
6 6
7 #include "core/fetch/MemoryCache.h" 7 #include "core/fetch/MemoryCache.h"
8 #include "core/frame/FrameView.h" 8 #include "core/frame/FrameView.h"
9 #include "core/frame/Settings.h" 9 #include "core/frame/Settings.h"
10 #include "core/html/HTMLCanvasElement.h" 10 #include "core/html/HTMLCanvasElement.h"
11 #include "core/html/HTMLDocument.h" 11 #include "core/html/HTMLDocument.h"
12 #include "core/html/ImageData.h" 12 #include "core/html/ImageData.h"
13 #include "core/loader/EmptyClients.h" 13 #include "core/loader/EmptyClients.h"
14 #include "core/testing/DummyPageHolder.h" 14 #include "core/testing/DummyPageHolder.h"
15 #include "modules/accessibility/AXObject.h" 15 #include "modules/accessibility/AXObject.h"
16 #include "modules/accessibility/AXObjectCacheImpl.h" 16 #include "modules/accessibility/AXObjectCacheImpl.h"
17 #include "modules/canvas2d/CanvasGradient.h" 17 #include "modules/canvas2d/CanvasGradient.h"
18 #include "modules/canvas2d/CanvasPattern.h" 18 #include "modules/canvas2d/CanvasPattern.h"
19 #include "modules/canvas2d/HitRegionOptions.h" 19 #include "modules/canvas2d/HitRegionOptions.h"
20 #include "modules/webgl/WebGLRenderingContext.h" 20 #include "modules/webgl/WebGLRenderingContext.h"
21 #include "platform/RuntimeEnabledFeatures.h"
21 #include "platform/graphics/StaticBitmapImage.h" 22 #include "platform/graphics/StaticBitmapImage.h"
22 #include "platform/graphics/UnacceleratedImageBufferSurface.h" 23 #include "platform/graphics/UnacceleratedImageBufferSurface.h"
23 #include "testing/gmock/include/gmock/gmock.h" 24 #include "testing/gmock/include/gmock/gmock.h"
24 #include "testing/gtest/include/gtest/gtest.h" 25 #include "testing/gtest/include/gtest/gtest.h"
25 26
26 using ::testing::Mock; 27 using ::testing::Mock;
27 28
28 namespace blink { 29 namespace blink {
29 namespace UsageTrackingTests { 30 namespace UsageTrackingTests {
30 31
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 Page::PageClients pageClients; 128 Page::PageClients pageClients;
128 fillWithEmptyClients(pageClients); 129 fillWithEmptyClients(pageClients);
129 m_dummyPageHolder = DummyPageHolder::create(IntSize(800, 600), &pageClients) ; 130 m_dummyPageHolder = DummyPageHolder::create(IntSize(800, 600), &pageClients) ;
130 m_document = toHTMLDocument(&m_dummyPageHolder->document()); 131 m_document = toHTMLDocument(&m_dummyPageHolder->document());
131 m_document->documentElement()->setInnerHTML("<body><canvas id='c'></canvas>< /body>", ASSERT_NO_EXCEPTION); 132 m_document->documentElement()->setInnerHTML("<body><canvas id='c'></canvas>< /body>", ASSERT_NO_EXCEPTION);
132 m_document->view()->updateAllLifecyclePhases(); 133 m_document->view()->updateAllLifecyclePhases();
133 m_canvasElement = toHTMLCanvasElement(m_document->getElementById("c")); 134 m_canvasElement = toHTMLCanvasElement(m_document->getElementById("c"));
134 m_fullImageData = ImageData::create(IntSize(10, 10)); 135 m_fullImageData = ImageData::create(IntSize(10, 10));
135 136
136 m_globalMemoryCache = replaceMemoryCacheForTesting(MemoryCache::create()); 137 m_globalMemoryCache = replaceMemoryCacheForTesting(MemoryCache::create());
138
139 RuntimeEnabledFeatures::setEnableCanvas2dDynamicRenderingModeSwitchingEnable d(true);
137 } 140 }
138 141
139 TEST_F(CanvasRenderingContextUsageTrackingTest, FillTracking) 142 TEST_F(CanvasRenderingContextUsageTrackingTest, FillTracking)
140 { 143 {
141 createContext(NonOpaque); 144 createContext(NonOpaque);
142 145
143 int numReps = 100; 146 int numReps = 100;
144 for (int i = 0; i < numReps; i++) { 147 for (int i = 0; i < numReps; i++) {
145 context2d()->beginPath(); 148 context2d()->beginPath();
146 context2d()->moveTo(1, 1); 149 context2d()->moveTo(1, 1);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 EXPECT_TRUE(context2d()->getUsage().boundingBoxPerimeterDrawCalls[BaseRender ingContext2D::FillText] > 0.0); 186 EXPECT_TRUE(context2d()->getUsage().boundingBoxPerimeterDrawCalls[BaseRender ingContext2D::FillText] > 0.0);
184 EXPECT_TRUE(context2d()->getUsage().boundingBoxPerimeterDrawCalls[BaseRender ingContext2D::StrokeText] == 0.0); 187 EXPECT_TRUE(context2d()->getUsage().boundingBoxPerimeterDrawCalls[BaseRender ingContext2D::StrokeText] == 0.0);
185 188
186 189
187 190
188 // create gradient 191 // create gradient
189 CanvasGradient* gradient; 192 CanvasGradient* gradient;
190 gradient = context2d()->createLinearGradient(0, 0, 100, 100); 193 gradient = context2d()->createLinearGradient(0, 0, 100, 100);
191 context2d()->setFillStyle(StringOrCanvasGradientOrCanvasPattern::fromCanvasG radient(gradient)); 194 context2d()->setFillStyle(StringOrCanvasGradientOrCanvasPattern::fromCanvasG radient(gradient));
192 context2d()->fillRect(10, 10, 100, 20); 195 context2d()->fillRect(10, 10, 100, 20);
193 EXPECT_EQ(1, context2d()->getUsage().numGradients); 196 EXPECT_EQ(1, context2d()->getUsage().numLinearGradients);
194 EXPECT_NEAR(100 * 20, context2d()->getUsage().boundingBoxAreaFillType[BaseRe nderingContext2D::LinearGradientFillType], 1.0); 197 EXPECT_NEAR(100 * 20, context2d()->getUsage().boundingBoxAreaFillType[BaseRe nderingContext2D::LinearGradientFillType], 1.0);
195 198
196 NonThrowableExceptionState exceptionState; 199 NonThrowableExceptionState exceptionState;
197 gradient = context2d()->createRadialGradient(0, 0, 100, 100, 200, 200, excep tionState); 200 gradient = context2d()->createRadialGradient(0, 0, 100, 100, 200, 200, excep tionState);
198 context2d()->setFillStyle(StringOrCanvasGradientOrCanvasPattern::fromCanvasG radient(gradient)); 201 context2d()->setFillStyle(StringOrCanvasGradientOrCanvasPattern::fromCanvasG radient(gradient));
199 context2d()->fillRect(10, 10, 100, 20); 202 context2d()->fillRect(10, 10, 100, 20);
200 EXPECT_EQ(2, context2d()->getUsage().numGradients); 203 EXPECT_EQ(1, context2d()->getUsage().numLinearGradients);
204 EXPECT_EQ(1, context2d()->getUsage().numRadialGradients);
201 EXPECT_NEAR(100 * 20, context2d()->getUsage().boundingBoxAreaFillType[BaseRe nderingContext2D::RadialGradientFillType], 1.0); 205 EXPECT_NEAR(100 * 20, context2d()->getUsage().boundingBoxAreaFillType[BaseRe nderingContext2D::RadialGradientFillType], 1.0);
202 206
203 // create pattern 207 // create pattern
204 NonThrowableExceptionState exceptionState2; 208 NonThrowableExceptionState exceptionState2;
205 ExecutionContext* execCtx = canvasElement().getExecutionContext(); 209 ExecutionContext* execCtx = canvasElement().getExecutionContext();
206 CanvasPattern* canvasPattern = context2d()->createPattern(execCtx, &m_opaque Bitmap, "repeat-x", exceptionState2); 210 CanvasPattern* canvasPattern = context2d()->createPattern(execCtx, &m_opaque Bitmap, "repeat-x", exceptionState2);
207 StringOrCanvasGradientOrCanvasPattern pattern = StringOrCanvasGradientOrCanv asPattern::fromCanvasPattern(canvasPattern); 211 StringOrCanvasGradientOrCanvasPattern pattern = StringOrCanvasGradientOrCanv asPattern::fromCanvasPattern(canvasPattern);
208 context2d()->setFillStyle(pattern); 212 context2d()->setFillStyle(pattern);
209 context2d()->fillRect(10, 10, 200, 100); 213 context2d()->fillRect(10, 10, 200, 100);
210 EXPECT_EQ(1, context2d()->getUsage().numPatterns); 214 EXPECT_EQ(1, context2d()->getUsage().numPatterns);
211 EXPECT_NEAR(200 * 100, context2d()->getUsage().boundingBoxAreaFillType[BaseR enderingContext2D::PatternFillType], 1.0); 215 EXPECT_NEAR(200 * 100, context2d()->getUsage().boundingBoxAreaFillType[BaseR enderingContext2D::PatternFillType], 1.0);
212 216
213 // Other fill method 217 // Other fill method
214 context2d()->fill(Path2D::create("Hello World!!!")); 218 context2d()->fill(Path2D::create("Hello World!!!"));
215 EXPECT_EQ(numReps * 2 + 1, context2d()->getUsage().numDrawCalls[BaseRenderin gContext2D::FillPath]); 219 EXPECT_EQ(numReps * 2 + 1, context2d()->getUsage().numDrawCalls[BaseRenderin gContext2D::FillPath]);
216 220
217 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::St rokePath]); 221 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::St rokePath]);
218 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::St rokeText]); 222 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::St rokeText]);
219 EXPECT_EQ(0, context2d()->getUsage().numPutImageDataCalls); 223 EXPECT_EQ(0, context2d()->getUsage().numPutImageDataCalls);
220 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Dr awImage]); 224 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Dr awVectorImage]);
225 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Dr awBitmapImage]);
221 EXPECT_EQ(0, context2d()->getUsage().numGetImageDataCalls); 226 EXPECT_EQ(0, context2d()->getUsage().numGetImageDataCalls);
222 } 227 }
223 228
224 TEST_F(CanvasRenderingContextUsageTrackingTest, StrokeTracking) 229 TEST_F(CanvasRenderingContextUsageTrackingTest, StrokeTracking)
225 { 230 {
226 createContext(NonOpaque); 231 createContext(NonOpaque);
227 232
228 int numReps = 100; 233 int numReps = 100;
229 for (int i = 0; i < numReps; i++) { 234 for (int i = 0; i < numReps; i++) {
230 context2d()->strokeRect(10, 10, 100, 100); 235 context2d()->strokeRect(10, 10, 100, 100);
(...skipping 19 matching lines...) Expand all
250 EXPECT_NEAR(static_cast<double>(numReps * (100 * 100) * 2), context2d()- >getUsage().boundingBoxAreaDrawCalls[BaseRenderingContext2D::StrokeRect], 1.0); 255 EXPECT_NEAR(static_cast<double>(numReps * (100 * 100) * 2), context2d()- >getUsage().boundingBoxAreaDrawCalls[BaseRenderingContext2D::StrokeRect], 1.0);
251 EXPECT_NEAR(static_cast<double>(numReps * (2*100 + 2*100) * 2), context2d()- >getUsage().boundingBoxPerimeterDrawCalls[BaseRenderingContext2D::StrokeRect], 1 .0); 256 EXPECT_NEAR(static_cast<double>(numReps * (2*100 + 2*100) * 2), context2d()- >getUsage().boundingBoxPerimeterDrawCalls[BaseRenderingContext2D::StrokeRect], 1 .0);
252 EXPECT_NEAR(static_cast<double>(numReps * (3 * 3)), context2d()->getUsage(). boundingBoxAreaDrawCalls[BaseRenderingContext2D::StrokePath], 1.0); 257 EXPECT_NEAR(static_cast<double>(numReps * (3 * 3)), context2d()->getUsage(). boundingBoxAreaDrawCalls[BaseRenderingContext2D::StrokePath], 1.0);
253 EXPECT_NEAR(static_cast<double>(numReps * (2*3 + 2*3)), context2d()->getUsag e().boundingBoxPerimeterDrawCalls[BaseRenderingContext2D::StrokePath], 1.0); 258 EXPECT_NEAR(static_cast<double>(numReps * (2*3 + 2*3)), context2d()->getUsag e().boundingBoxPerimeterDrawCalls[BaseRenderingContext2D::StrokePath], 1.0);
254 259
255 // create gradient 260 // create gradient
256 CanvasGradient* gradient; 261 CanvasGradient* gradient;
257 gradient = context2d()->createLinearGradient(0, 0, 100, 100); 262 gradient = context2d()->createLinearGradient(0, 0, 100, 100);
258 context2d()->setStrokeStyle(StringOrCanvasGradientOrCanvasPattern::fromCanva sGradient(gradient)); 263 context2d()->setStrokeStyle(StringOrCanvasGradientOrCanvasPattern::fromCanva sGradient(gradient));
259 context2d()->strokeRect(10, 10, 100, 100); 264 context2d()->strokeRect(10, 10, 100, 100);
260 EXPECT_EQ(1, context2d()->getUsage().numGradients); 265 EXPECT_EQ(1, context2d()->getUsage().numLinearGradients);
261 EXPECT_NEAR(100 * 100, context2d()->getUsage().boundingBoxAreaFillType[BaseR enderingContext2D::LinearGradientFillType], 1.0); 266 EXPECT_NEAR(100 * 100, context2d()->getUsage().boundingBoxAreaFillType[BaseR enderingContext2D::LinearGradientFillType], 1.0);
262 267
263 // create pattern 268 // create pattern
264 NonThrowableExceptionState exceptionState; 269 NonThrowableExceptionState exceptionState;
265 ExecutionContext* execCtx = canvasElement().getExecutionContext(); 270 ExecutionContext* execCtx = canvasElement().getExecutionContext();
266 CanvasPattern* canvasPattern = context2d()->createPattern(execCtx, &m_opaque Bitmap, "repeat-x", exceptionState); 271 CanvasPattern* canvasPattern = context2d()->createPattern(execCtx, &m_opaque Bitmap, "repeat-x", exceptionState);
267 StringOrCanvasGradientOrCanvasPattern pattern = StringOrCanvasGradientOrCanv asPattern::fromCanvasPattern(canvasPattern); 272 StringOrCanvasGradientOrCanvasPattern pattern = StringOrCanvasGradientOrCanv asPattern::fromCanvasPattern(canvasPattern);
268 context2d()->setStrokeStyle(pattern); 273 context2d()->setStrokeStyle(pattern);
269 context2d()->strokeRect(10, 10, 100, 100); 274 context2d()->strokeRect(10, 10, 100, 100);
270 EXPECT_EQ(1, context2d()->getUsage().numPatterns); 275 EXPECT_EQ(1, context2d()->getUsage().numPatterns);
271 EXPECT_NEAR(100 * 100, context2d()->getUsage().boundingBoxAreaFillType[BaseR enderingContext2D::PatternFillType], 1.0); 276 EXPECT_NEAR(100 * 100, context2d()->getUsage().boundingBoxAreaFillType[BaseR enderingContext2D::PatternFillType], 1.0);
272 277
273 // Other stroke method 278 // Other stroke method
274 context2d()->stroke(Path2D::create("Hello World!!!")); 279 context2d()->stroke(Path2D::create("Hello World!!!"));
275 EXPECT_EQ(numReps + 1, context2d()->getUsage().numDrawCalls[BaseRenderingCon text2D::StrokePath]); 280 EXPECT_EQ(numReps + 1, context2d()->getUsage().numDrawCalls[BaseRenderingCon text2D::StrokePath]);
276 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Fi llPath]); 281 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Fi llPath]);
277 EXPECT_EQ(0, context2d()->getUsage().numNonConvexFillPathCalls); 282 EXPECT_EQ(0, context2d()->getUsage().numNonConvexFillPathCalls);
278 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Fi llText]); 283 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Fi llText]);
279 EXPECT_EQ(0, context2d()->getUsage().numPutImageDataCalls); 284 EXPECT_EQ(0, context2d()->getUsage().numPutImageDataCalls);
280 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Dr awImage]); 285 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Dr awVectorImage]);
286 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Dr awBitmapImage]);
281 EXPECT_EQ(0, context2d()->getUsage().numGetImageDataCalls); 287 EXPECT_EQ(0, context2d()->getUsage().numGetImageDataCalls);
282 } 288 }
283 289
284 TEST_F(CanvasRenderingContextUsageTrackingTest, ImageTracking) 290 TEST_F(CanvasRenderingContextUsageTrackingTest, ImageTracking)
285 { 291 {
286 // Testing draw, put, get and filters 292 // Testing draw, put, get and filters
287 createContext(NonOpaque); 293 createContext(NonOpaque);
288 NonThrowableExceptionState exceptionState; 294 NonThrowableExceptionState exceptionState;
289 295
290 int numReps = 5; 296 int numReps = 5;
291 int imgWidth = 100; 297 int imgWidth = 100;
292 int imgHeight = 200; 298 int imgHeight = 200;
293 for (int i = 0; i < numReps; i++) { 299 for (int i = 0; i < numReps; i++) {
294 context2d()->putImageData(m_fullImageData.get(), 0, 0, exceptionState); 300 context2d()->putImageData(m_fullImageData.get(), 0, 0, exceptionState);
295 context2d()->drawImage(canvasElement().getExecutionContext(), &m_opaqueB itmap, 0, 0, 1, 1, 0, 0, imgWidth, imgHeight, exceptionState); 301 context2d()->drawImage(canvasElement().getExecutionContext(), &m_opaqueB itmap, 0, 0, 1, 1, 0, 0, imgWidth, imgHeight, exceptionState);
296 context2d()->getImageData(0, 0, 10, 100, exceptionState); 302 context2d()->getImageData(0, 0, 10, 100, exceptionState);
297 } 303 }
298 304
299 EXPECT_NEAR(numReps * imgWidth * imgHeight, context2d()->getUsage().bounding BoxAreaDrawCalls[BaseRenderingContext2D::DrawImage], 0.1); 305 EXPECT_NEAR(numReps * imgWidth * imgHeight, context2d()->getUsage().bounding BoxAreaDrawCalls[BaseRenderingContext2D::DrawBitmapImage], 0.1);
300 EXPECT_NEAR(numReps * (2*imgWidth + 2*imgHeight), context2d()->getUsage().bo undingBoxPerimeterDrawCalls[BaseRenderingContext2D::DrawImage], 0.1); 306 EXPECT_NEAR(numReps * (2*imgWidth + 2*imgHeight), context2d()->getUsage().bo undingBoxPerimeterDrawCalls[BaseRenderingContext2D::DrawBitmapImage], 0.1);
307
308 EXPECT_NEAR(0.0, context2d()->getUsage().boundingBoxAreaDrawCalls[BaseRender ingContext2D::DrawVectorImage], 0.1);
309 EXPECT_NEAR(0.0, context2d()->getUsage().boundingBoxPerimeterDrawCalls[BaseR enderingContext2D::DrawVectorImage], 0.1);
301 310
302 context2d()->setFilter("blur(5px)"); 311 context2d()->setFilter("blur(5px)");
303 context2d()->drawImage(canvasElement().getExecutionContext(), &m_opaqueBitma p, 0, 0, 1, 1, 0, 0, 10, 10, exceptionState); 312 context2d()->drawImage(canvasElement().getExecutionContext(), &m_opaqueBitma p, 0, 0, 1, 1, 0, 0, 10, 10, exceptionState);
304 313
305 EXPECT_EQ(numReps, context2d()->getUsage().numPutImageDataCalls); 314 EXPECT_EQ(numReps, context2d()->getUsage().numPutImageDataCalls);
306 EXPECT_NE(0, context2d()->getUsage().areaPutImageDataCalls); 315 EXPECT_NE(0, context2d()->getUsage().areaPutImageDataCalls);
307 EXPECT_NEAR(numReps * m_fullImageData.get()->width() * m_fullImageData.get() ->height(), context2d()->getUsage().areaPutImageDataCalls, 0.1); 316 EXPECT_NEAR(numReps * m_fullImageData.get()->width() * m_fullImageData.get() ->height(), context2d()->getUsage().areaPutImageDataCalls, 0.1);
308 317
309 EXPECT_EQ(numReps + 1, context2d()->getUsage().numDrawCalls[BaseRenderingCon text2D::DrawImage]); 318 EXPECT_EQ(numReps + 1, context2d()->getUsage().numDrawCalls[BaseRenderingCon text2D::DrawBitmapImage]);
310 EXPECT_EQ(numReps, context2d()->getUsage().numGetImageDataCalls); 319 EXPECT_EQ(numReps, context2d()->getUsage().numGetImageDataCalls);
311 320
312 EXPECT_EQ(1, context2d()->getUsage().numFilters); 321 EXPECT_EQ(1, context2d()->getUsage().numFilters);
313 EXPECT_NEAR(numReps * 10 * 100, context2d()->getUsage().areaGetImageDataCall s, 0.1); 322 EXPECT_NEAR(numReps * 10 * 100, context2d()->getUsage().areaGetImageDataCall s, 0.1);
314 323
315 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Fi llPath]); 324 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Fi llPath]);
316 EXPECT_EQ(0, context2d()->getUsage().numNonConvexFillPathCalls); 325 EXPECT_EQ(0, context2d()->getUsage().numNonConvexFillPathCalls);
317 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Fi llText]); 326 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Fi llText]);
318 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::St rokePath]); 327 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::St rokePath]);
319 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::St rokeText]); 328 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::St rokeText]);
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Fi llRect]); 494 EXPECT_EQ(0, context2d()->getUsage().numDrawCalls[BaseRenderingContext2D::Fi llRect]);
486 495
487 for (int i = 0; i < numReps; i++) { 496 for (int i = 0; i < numReps; i++) {
488 context2d()->fillRect(10, 10, 100, 100); 497 context2d()->fillRect(10, 10, 100, 100);
489 } 498 }
490 EXPECT_EQ(numReps, context2d()->getUsage().numDrawCalls[BaseRenderingContext 2D::FillRect]); 499 EXPECT_EQ(numReps, context2d()->getUsage().numDrawCalls[BaseRenderingContext 2D::FillRect]);
491 } 500 }
492 501
493 } // namespace UsageTrackingTests 502 } // namespace UsageTrackingTests
494 } // namespace blink 503 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698