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

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

Issue 1686483002: Oilpan: Remove most WillBe types from the code base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 "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/ImageBitmap.h" 9 #include "core/frame/ImageBitmap.h"
10 #include "core/html/HTMLCanvasElement.h" 10 #include "core/html/HTMLCanvasElement.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 HTMLCanvasElement& canvasElement() const { return *m_canvasElement; } 80 HTMLCanvasElement& canvasElement() const { return *m_canvasElement; }
81 CanvasRenderingContext2D* context2d() const { return static_cast<CanvasRende ringContext2D*>(canvasElement().renderingContext()); } 81 CanvasRenderingContext2D* context2d() const { return static_cast<CanvasRende ringContext2D*>(canvasElement().renderingContext()); }
82 intptr_t getGlobalGPUMemoryUsage() const { return ImageBuffer::getGlobalGPUM emoryUsage(); } 82 intptr_t getGlobalGPUMemoryUsage() const { return ImageBuffer::getGlobalGPUM emoryUsage(); }
83 intptr_t getCurrentGPUMemoryUsage() const { return canvasElement().buffer()- >getGPUMemoryUsage(); } 83 intptr_t getCurrentGPUMemoryUsage() const { return canvasElement().buffer()- >getGPUMemoryUsage(); }
84 84
85 void createContext(OpacityMode); 85 void createContext(OpacityMode);
86 void TearDown(); 86 void TearDown();
87 87
88 private: 88 private:
89 OwnPtr<DummyPageHolder> m_dummyPageHolder; 89 OwnPtr<DummyPageHolder> m_dummyPageHolder;
90 RefPtrWillBePersistent<HTMLDocument> m_document; 90 Persistent<HTMLDocument> m_document;
91 RefPtrWillBePersistent<HTMLCanvasElement> m_canvasElement; 91 Persistent<HTMLCanvasElement> m_canvasElement;
92 Persistent<MemoryCache> m_globalMemoryCache; 92 Persistent<MemoryCache> m_globalMemoryCache;
93 93
94 class WrapGradients final : public NoBaseWillBeGarbageCollectedFinalized<Wra pGradients> { 94 class WrapGradients final : public GarbageCollectedFinalized<WrapGradients> {
95 public: 95 public:
96 static PassOwnPtrWillBeRawPtr<WrapGradients> create() 96 static RawPtr<WrapGradients> create()
97 { 97 {
98 return adoptPtrWillBeNoop(new WrapGradients); 98 return adoptPtrWillBeNoop(new WrapGradients);
99 } 99 }
100 100
101 DEFINE_INLINE_TRACE() 101 DEFINE_INLINE_TRACE()
102 { 102 {
103 visitor->trace(m_opaqueGradient); 103 visitor->trace(m_opaqueGradient);
104 visitor->trace(m_alphaGradient); 104 visitor->trace(m_alphaGradient);
105 } 105 }
106 106
107 StringOrCanvasGradientOrCanvasPattern m_opaqueGradient; 107 StringOrCanvasGradientOrCanvasPattern m_opaqueGradient;
108 StringOrCanvasGradientOrCanvasPattern m_alphaGradient; 108 StringOrCanvasGradientOrCanvasPattern m_alphaGradient;
109 }; 109 };
110 110
111 // TODO(Oilpan): avoid tedious part-object wrapper by supporting on-heap ::t esting::Tests. 111 // TODO(Oilpan): avoid tedious part-object wrapper by supporting on-heap ::t esting::Tests.
112 OwnPtrWillBePersistent<WrapGradients> m_wrapGradients; 112 Persistent<WrapGradients> m_wrapGradients;
113 113
114 protected: 114 protected:
115 // Pre-canned objects for testing 115 // Pre-canned objects for testing
116 Persistent<ImageData> m_fullImageData; 116 Persistent<ImageData> m_fullImageData;
117 Persistent<ImageData> m_partialImageData; 117 Persistent<ImageData> m_partialImageData;
118 FakeImageSource m_opaqueBitmap; 118 FakeImageSource m_opaqueBitmap;
119 FakeImageSource m_alphaBitmap; 119 FakeImageSource m_alphaBitmap;
120 120
121 StringOrCanvasGradientOrCanvasPattern& opaqueGradient() { return m_wrapGradi ents->m_opaqueGradient; } 121 StringOrCanvasGradientOrCanvasPattern& opaqueGradient() { return m_wrapGradi ents->m_opaqueGradient; }
122 StringOrCanvasGradientOrCanvasPattern& alphaGradient() { return m_wrapGradie nts->m_alphaGradient; } 122 StringOrCanvasGradientOrCanvasPattern& alphaGradient() { return m_wrapGradie nts->m_alphaGradient; }
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 EXPECT_TRUE(canvasElement().shouldBeDirectComposited()); 439 EXPECT_TRUE(canvasElement().shouldBeDirectComposited());
440 } 440 }
441 441
442 TEST_F(CanvasRenderingContext2DTest, NoLayerPromotionUnderImageSizeRatioLimit) 442 TEST_F(CanvasRenderingContext2DTest, NoLayerPromotionUnderImageSizeRatioLimit)
443 { 443 {
444 createContext(NonOpaque); 444 createContext(NonOpaque);
445 OwnPtr<RecordingImageBufferSurface> surface = adoptPtr(new RecordingImageBuf ferSurface(IntSize(10, 10), MockSurfaceFactory::create(MockSurfaceFactory::Expec tNoFallback), NonOpaque)); 445 OwnPtr<RecordingImageBufferSurface> surface = adoptPtr(new RecordingImageBuf ferSurface(IntSize(10, 10), MockSurfaceFactory::create(MockSurfaceFactory::Expec tNoFallback), NonOpaque));
446 canvasElement().createImageBufferUsingSurfaceForTesting(surface.release()); 446 canvasElement().createImageBufferUsingSurfaceForTesting(surface.release());
447 447
448 NonThrowableExceptionState exceptionState; 448 NonThrowableExceptionState exceptionState;
449 RefPtrWillBeRawPtr<Element> sourceCanvasElement = document().createElement(" canvas", exceptionState); 449 RawPtr<Element> sourceCanvasElement = document().createElement("canvas", exc eptionState);
450 EXPECT_FALSE(exceptionState.hadException()); 450 EXPECT_FALSE(exceptionState.hadException());
451 HTMLCanvasElement* sourceCanvas = static_cast<HTMLCanvasElement*>(sourceCanv asElement.get()); 451 HTMLCanvasElement* sourceCanvas = static_cast<HTMLCanvasElement*>(sourceCanv asElement.get());
452 IntSize sourceSize(10, 10 * ExpensiveCanvasHeuristicParameters::ExpensiveIma geSizeRatio); 452 IntSize sourceSize(10, 10 * ExpensiveCanvasHeuristicParameters::ExpensiveIma geSizeRatio);
453 OwnPtr<UnacceleratedImageBufferSurface> sourceSurface = adoptPtr(new Unaccel eratedImageBufferSurface(sourceSize, NonOpaque)); 453 OwnPtr<UnacceleratedImageBufferSurface> sourceSurface = adoptPtr(new Unaccel eratedImageBufferSurface(sourceSize, NonOpaque));
454 sourceCanvas->createImageBufferUsingSurfaceForTesting(sourceSurface.release( )); 454 sourceCanvas->createImageBufferUsingSurfaceForTesting(sourceSurface.release( ));
455 455
456 const ImageBitmapOptions defaultOptions; 456 const ImageBitmapOptions defaultOptions;
457 // Go through an ImageBitmap to avoid triggering a display list fallback 457 // Go through an ImageBitmap to avoid triggering a display list fallback
458 RefPtrWillBeRawPtr<ImageBitmap> sourceImageBitmap = ImageBitmap::create(sour ceCanvas, IntRect(IntPoint(0, 0), sourceSize), defaultOptions); 458 RawPtr<ImageBitmap> sourceImageBitmap = ImageBitmap::create(sourceCanvas, In tRect(IntPoint(0, 0), sourceSize), defaultOptions);
459 459
460 context2d()->drawImage(sourceImageBitmap.get(), 0, 0, 1, 1, 0, 0, 1, 1, exce ptionState); 460 context2d()->drawImage(sourceImageBitmap.get(), 0, 0, 1, 1, 0, 0, 1, 1, exce ptionState);
461 EXPECT_FALSE(exceptionState.hadException()); 461 EXPECT_FALSE(exceptionState.hadException());
462 462
463 EXPECT_FALSE(canvasElement().shouldBeDirectComposited()); 463 EXPECT_FALSE(canvasElement().shouldBeDirectComposited());
464 } 464 }
465 465
466 TEST_F(CanvasRenderingContext2DTest, LayerPromotionOverImageSizeRatioLimit) 466 TEST_F(CanvasRenderingContext2DTest, LayerPromotionOverImageSizeRatioLimit)
467 { 467 {
468 createContext(NonOpaque); 468 createContext(NonOpaque);
469 OwnPtr<RecordingImageBufferSurface> surface = adoptPtr(new RecordingImageBuf ferSurface(IntSize(10, 10), MockSurfaceFactory::create(MockSurfaceFactory::Expec tNoFallback), NonOpaque)); 469 OwnPtr<RecordingImageBufferSurface> surface = adoptPtr(new RecordingImageBuf ferSurface(IntSize(10, 10), MockSurfaceFactory::create(MockSurfaceFactory::Expec tNoFallback), NonOpaque));
470 canvasElement().createImageBufferUsingSurfaceForTesting(surface.release()); 470 canvasElement().createImageBufferUsingSurfaceForTesting(surface.release());
471 471
472 NonThrowableExceptionState exceptionState; 472 NonThrowableExceptionState exceptionState;
473 RefPtrWillBeRawPtr<Element> sourceCanvasElement = document().createElement(" canvas", exceptionState); 473 RawPtr<Element> sourceCanvasElement = document().createElement("canvas", exc eptionState);
474 EXPECT_FALSE(exceptionState.hadException()); 474 EXPECT_FALSE(exceptionState.hadException());
475 HTMLCanvasElement* sourceCanvas = static_cast<HTMLCanvasElement*>(sourceCanv asElement.get()); 475 HTMLCanvasElement* sourceCanvas = static_cast<HTMLCanvasElement*>(sourceCanv asElement.get());
476 IntSize sourceSize(10, 10 * ExpensiveCanvasHeuristicParameters::ExpensiveIma geSizeRatio + 1); 476 IntSize sourceSize(10, 10 * ExpensiveCanvasHeuristicParameters::ExpensiveIma geSizeRatio + 1);
477 OwnPtr<UnacceleratedImageBufferSurface> sourceSurface = adoptPtr(new Unaccel eratedImageBufferSurface(sourceSize, NonOpaque)); 477 OwnPtr<UnacceleratedImageBufferSurface> sourceSurface = adoptPtr(new Unaccel eratedImageBufferSurface(sourceSize, NonOpaque));
478 sourceCanvas->createImageBufferUsingSurfaceForTesting(sourceSurface.release( )); 478 sourceCanvas->createImageBufferUsingSurfaceForTesting(sourceSurface.release( ));
479 479
480 const ImageBitmapOptions defaultOptions; 480 const ImageBitmapOptions defaultOptions;
481 // Go through an ImageBitmap to avoid triggering a display list fallback 481 // Go through an ImageBitmap to avoid triggering a display list fallback
482 RefPtrWillBeRawPtr<ImageBitmap> sourceImageBitmap = ImageBitmap::create(sour ceCanvas, IntRect(IntPoint(0, 0), sourceSize), defaultOptions); 482 RawPtr<ImageBitmap> sourceImageBitmap = ImageBitmap::create(sourceCanvas, In tRect(IntPoint(0, 0), sourceSize), defaultOptions);
483 483
484 context2d()->drawImage(sourceImageBitmap.get(), 0, 0, 1, 1, 0, 0, 1, 1, exce ptionState); 484 context2d()->drawImage(sourceImageBitmap.get(), 0, 0, 1, 1, 0, 0, 1, 1, exce ptionState);
485 EXPECT_FALSE(exceptionState.hadException()); 485 EXPECT_FALSE(exceptionState.hadException());
486 486
487 EXPECT_TRUE(canvasElement().shouldBeDirectComposited()); 487 EXPECT_TRUE(canvasElement().shouldBeDirectComposited());
488 } 488 }
489 489
490 TEST_F(CanvasRenderingContext2DTest, NoLayerPromotionUnderExpensivePathPointCoun t) 490 TEST_F(CanvasRenderingContext2DTest, NoLayerPromotionUnderExpensivePathPointCoun t)
491 { 491 {
492 createContext(NonOpaque); 492 createContext(NonOpaque);
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 createContext(NonOpaque); 653 createContext(NonOpaque);
654 OwnPtr<RecordingImageBufferSurface> surface = adoptPtr(new RecordingImageBuf ferSurface(IntSize(10, 10), MockSurfaceFactory::create(MockSurfaceFactory::Expec tNoFallback), NonOpaque)); 654 OwnPtr<RecordingImageBufferSurface> surface = adoptPtr(new RecordingImageBuf ferSurface(IntSize(10, 10), MockSurfaceFactory::create(MockSurfaceFactory::Expec tNoFallback), NonOpaque));
655 canvasElement().createImageBufferUsingSurfaceForTesting(surface.release()); 655 canvasElement().createImageBufferUsingSurfaceForTesting(surface.release());
656 656
657 context2d()->fillText("Text", 0, 5); 657 context2d()->fillText("Text", 0, 5);
658 } 658 }
659 659
660 TEST_F(CanvasRenderingContext2DTest, ImageResourceLifetime) 660 TEST_F(CanvasRenderingContext2DTest, ImageResourceLifetime)
661 { 661 {
662 NonThrowableExceptionState nonThrowableExceptionState; 662 NonThrowableExceptionState nonThrowableExceptionState;
663 RefPtrWillBeRawPtr<Element> canvasElement = document().createElement("canvas ", nonThrowableExceptionState); 663 RawPtr<Element> canvasElement = document().createElement("canvas", nonThrowa bleExceptionState);
664 EXPECT_FALSE(nonThrowableExceptionState.hadException()); 664 EXPECT_FALSE(nonThrowableExceptionState.hadException());
665 HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(canvasElement.ge t()); 665 HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(canvasElement.ge t());
666 canvas->setHeight(40); 666 canvas->setHeight(40);
667 canvas->setWidth(40); 667 canvas->setWidth(40);
668 RefPtrWillBeRawPtr<ImageBitmap> imageBitmapDerived = nullptr; 668 RawPtr<ImageBitmap> imageBitmapDerived = nullptr;
669 { 669 {
670 const ImageBitmapOptions defaultOptions; 670 const ImageBitmapOptions defaultOptions;
671 RefPtrWillBeRawPtr<ImageBitmap> imageBitmapFromCanvas = ImageBitmap::cre ate(canvas, IntRect(0, 0, canvas->width(), canvas->height()), defaultOptions); 671 RawPtr<ImageBitmap> imageBitmapFromCanvas = ImageBitmap::create(canvas, IntRect(0, 0, canvas->width(), canvas->height()), defaultOptions);
672 imageBitmapDerived = ImageBitmap::create(imageBitmapFromCanvas.get(), In tRect(0, 0, 20, 20), defaultOptions); 672 imageBitmapDerived = ImageBitmap::create(imageBitmapFromCanvas.get(), In tRect(0, 0, 20, 20), defaultOptions);
673 } 673 }
674 CanvasContextCreationAttributes attributes; 674 CanvasContextCreationAttributes attributes;
675 CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(c anvas->getCanvasRenderingContext("2d", attributes)); 675 CanvasRenderingContext2D* context = static_cast<CanvasRenderingContext2D*>(c anvas->getCanvasRenderingContext("2d", attributes));
676 TrackExceptionState exceptionState; 676 TrackExceptionState exceptionState;
677 CanvasImageSourceUnion imageSource; 677 CanvasImageSourceUnion imageSource;
678 imageSource.setImageBitmap(imageBitmapDerived); 678 imageSource.setImageBitmap(imageBitmapDerived);
679 context->drawImage(imageSource, 0, 0, exceptionState); 679 context->drawImage(imageSource, 0, 0, exceptionState);
680 } 680 }
681 681
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 canvasElement().setSize(IntSize(20, 20)); 713 canvasElement().setSize(IntSize(20, 20));
714 Mock::VerifyAndClearExpectations(fakeAccelerateSurfacePtr); 714 Mock::VerifyAndClearExpectations(fakeAccelerateSurfacePtr);
715 EXPECT_EQ(400, getGlobalGPUMemoryUsage()); 715 EXPECT_EQ(400, getGlobalGPUMemoryUsage());
716 716
717 // Tear down the second image buffer 717 // Tear down the second image buffer
718 imageBuffer2.clear(); 718 imageBuffer2.clear();
719 EXPECT_EQ(0, getGlobalGPUMemoryUsage()); 719 EXPECT_EQ(0, getGlobalGPUMemoryUsage());
720 } 720 }
721 721
722 } // namespace blink 722 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698