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

Side by Side Diff: third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreatorTest.cpp

Issue 2878333004: Use SkJpegEncoder in WebKit platform (Closed)
Patch Set: Create instead of Make Created 3 years, 7 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 "core/html/canvas/CanvasAsyncBlobCreator.h" 5 #include "core/html/canvas/CanvasAsyncBlobCreator.h"
6 6
7 #include "core/html/ImageData.h" 7 #include "core/html/ImageData.h"
8 #include "core/testing/DummyPageHolder.h" 8 #include "core/testing/DummyPageHolder.h"
9 #include "platform/testing/UnitTestHelpers.h" 9 #include "platform/testing/UnitTestHelpers.h"
10 #include "platform/wtf/Functional.h" 10 #include "platform/wtf/Functional.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 65
66 class MockCanvasAsyncBlobCreatorWithoutStartPng 66 class MockCanvasAsyncBlobCreatorWithoutStartPng
67 : public MockCanvasAsyncBlobCreator { 67 : public MockCanvasAsyncBlobCreator {
68 public: 68 public:
69 MockCanvasAsyncBlobCreatorWithoutStartPng(DOMUint8ClampedArray* data, 69 MockCanvasAsyncBlobCreatorWithoutStartPng(DOMUint8ClampedArray* data,
70 const IntSize& size, 70 const IntSize& size,
71 Document* document) 71 Document* document)
72 : MockCanvasAsyncBlobCreator(data, size, kMimeTypePng, document) {} 72 : MockCanvasAsyncBlobCreator(data, size, kMimeTypePng, document) {}
73 73
74 protected: 74 protected:
75 void ScheduleInitiatePngEncoding() override { 75 void ScheduleInitiateEncoding(double) override {
76 // Deliberately make scheduleInitiatePngEncoding do nothing so that idle 76 // Deliberately make scheduleInitiateEncoding do nothing so that idle
77 // task never starts 77 // task never starts
78 } 78 }
79 }; 79 };
80 80
81 //============================================================================== 81 //==============================================================================
82 82
83 class MockCanvasAsyncBlobCreatorWithoutCompletePng 83 class MockCanvasAsyncBlobCreatorWithoutCompletePng
84 : public MockCanvasAsyncBlobCreator { 84 : public MockCanvasAsyncBlobCreator {
85 public: 85 public:
86 MockCanvasAsyncBlobCreatorWithoutCompletePng(DOMUint8ClampedArray* data, 86 MockCanvasAsyncBlobCreatorWithoutCompletePng(DOMUint8ClampedArray* data,
87 const IntSize& size, 87 const IntSize& size,
88 Document* document) 88 Document* document)
89 : MockCanvasAsyncBlobCreator(data, size, kMimeTypePng, document) {} 89 : MockCanvasAsyncBlobCreator(data, size, kMimeTypePng, document) {}
90 90
91 protected: 91 protected:
92 void ScheduleInitiatePngEncoding() override { 92 void ScheduleInitiateEncoding(double quality) override {
93 Platform::Current()->MainThread()->GetWebTaskRunner()->PostTask( 93 Platform::Current()->MainThread()->GetWebTaskRunner()->PostTask(
94 BLINK_FROM_HERE, 94 BLINK_FROM_HERE,
95 WTF::Bind( 95 WTF::Bind(
96 &MockCanvasAsyncBlobCreatorWithoutCompletePng::InitiatePngEncoding, 96 &MockCanvasAsyncBlobCreatorWithoutCompletePng::InitiateEncoding,
97 WrapPersistent(this), std::numeric_limits<double>::max())); 97 WrapPersistent(this), quality, std::numeric_limits<double>::max()));
98 } 98 }
99 99
100 void IdleEncodeRowsPng(double deadline_seconds) override { 100 void IdleEncodeRows(double deadline_seconds) override {
101 // Deliberately make idleEncodeRowsPng do nothing so that idle task never 101 // Deliberately make idleEncodeRows do nothing so that idle task never
102 // completes 102 // completes
103 } 103 }
104 }; 104 };
105 105
106 //============================================================================== 106 //==============================================================================
107 //=================================JPEG========================================= 107 //=================================JPEG=========================================
108 //============================================================================== 108 //==============================================================================
109 109
110 class MockCanvasAsyncBlobCreatorWithoutStartJpeg 110 class MockCanvasAsyncBlobCreatorWithoutStartJpeg
111 : public MockCanvasAsyncBlobCreator { 111 : public MockCanvasAsyncBlobCreator {
112 public: 112 public:
113 MockCanvasAsyncBlobCreatorWithoutStartJpeg(DOMUint8ClampedArray* data, 113 MockCanvasAsyncBlobCreatorWithoutStartJpeg(DOMUint8ClampedArray* data,
114 const IntSize& size, 114 const IntSize& size,
115 Document* document) 115 Document* document)
116 : MockCanvasAsyncBlobCreator(data, size, kMimeTypeJpeg, document) {} 116 : MockCanvasAsyncBlobCreator(data, size, kMimeTypeJpeg, document) {}
117 117
118 protected: 118 protected:
119 void ScheduleInitiateJpegEncoding(const double&) override { 119 void ScheduleInitiateEncoding(double) override {
120 // Deliberately make scheduleInitiateJpegEncoding do nothing so that idle 120 // Deliberately make scheduleInitiateEncoding do nothing so that idle
121 // task never starts 121 // task never starts
122 } 122 }
123 }; 123 };
124 124
125 //============================================================================== 125 //==============================================================================
126 126
127 class MockCanvasAsyncBlobCreatorWithoutCompleteJpeg 127 class MockCanvasAsyncBlobCreatorWithoutCompleteJpeg
128 : public MockCanvasAsyncBlobCreator { 128 : public MockCanvasAsyncBlobCreator {
129 public: 129 public:
130 MockCanvasAsyncBlobCreatorWithoutCompleteJpeg(DOMUint8ClampedArray* data, 130 MockCanvasAsyncBlobCreatorWithoutCompleteJpeg(DOMUint8ClampedArray* data,
131 const IntSize& size, 131 const IntSize& size,
132 Document* document) 132 Document* document)
133 : MockCanvasAsyncBlobCreator(data, size, kMimeTypeJpeg, document) {} 133 : MockCanvasAsyncBlobCreator(data, size, kMimeTypeJpeg, document) {}
134 134
135 protected: 135 protected:
136 void ScheduleInitiateJpegEncoding(const double& quality) override { 136 void ScheduleInitiateEncoding(double quality) override {
137 Platform::Current()->MainThread()->GetWebTaskRunner()->PostTask( 137 Platform::Current()->MainThread()->GetWebTaskRunner()->PostTask(
138 BLINK_FROM_HERE, 138 BLINK_FROM_HERE,
139 WTF::Bind(&MockCanvasAsyncBlobCreatorWithoutCompleteJpeg:: 139 WTF::Bind(
140 InitiateJpegEncoding, 140 &MockCanvasAsyncBlobCreatorWithoutCompleteJpeg::InitiateEncoding,
141 WrapPersistent(this), quality, 141 WrapPersistent(this), quality, std::numeric_limits<double>::max()));
142 std::numeric_limits<double>::max()));
143 } 142 }
144 143
145 void IdleEncodeRowsJpeg(double deadline_seconds) override { 144 void IdleEncodeRows(double deadline_seconds) override {
146 // Deliberately make idleEncodeRowsJpeg do nothing so that idle task never 145 // Deliberately make idleEncodeRows do nothing so that idle task never
147 // completes 146 // completes
148 } 147 }
149 }; 148 };
150 149
151 //============================================================================== 150 //==============================================================================
152 151
153 class CanvasAsyncBlobCreatorTest : public ::testing::Test { 152 class CanvasAsyncBlobCreatorTest : public ::testing::Test {
154 public: 153 public:
155 // Png unit tests 154 // Png unit tests
156 void PrepareMockCanvasAsyncBlobCreatorWithoutStartPng(); 155 void PrepareMockCanvasAsyncBlobCreatorWithoutStartPng();
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 JpegIdleTaskFailedWhenStartTimeoutEventHappens) { 327 JpegIdleTaskFailedWhenStartTimeoutEventHappens) {
329 this->PrepareMockCanvasAsyncBlobCreatorFailJpeg(); 328 this->PrepareMockCanvasAsyncBlobCreatorFailJpeg();
330 329
331 this->AsyncBlobCreator()->ScheduleAsyncBlobCreation(1.0); 330 this->AsyncBlobCreator()->ScheduleAsyncBlobCreation(1.0);
332 testing::EnterRunLoop(); 331 testing::EnterRunLoop();
333 332
334 EXPECT_EQ(IdleTaskStatus::kIdleTaskFailed, 333 EXPECT_EQ(IdleTaskStatus::kIdleTaskFailed,
335 this->AsyncBlobCreator()->GetIdleTaskStatus()); 334 this->AsyncBlobCreator()->GetIdleTaskStatus());
336 } 335 }
337 } 336 }
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp ('k') | third_party/WebKit/Source/platform/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698