Index: third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h |
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h |
index b4fbe72e483b3d46712ae1bfb8ddc043c47de667..4dd100467ca3f5bca75d0bfa02499fce754d0078 100644 |
--- a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h |
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h |
@@ -13,6 +13,7 @@ |
#include "core/workers/ParentFrameTaskRunners.h" |
#include "platform/geometry/IntSize.h" |
#include "platform/heap/Handle.h" |
+#include "platform/image-encoders/ImageEncoder.h" |
#include "platform/wtf/Vector.h" |
#include "platform/wtf/text/WTFString.h" |
#include "public/platform/WebTraceLocation.h" |
@@ -20,8 +21,6 @@ |
namespace blink { |
class Document; |
-class JPEGImageEncoderState; |
-class PNGImageEncoderState; |
class CORE_EXPORT CanvasAsyncBlobCreator |
: public GarbageCollectedFinalized<CanvasAsyncBlobCreator> { |
@@ -82,10 +81,8 @@ class CORE_EXPORT CanvasAsyncBlobCreator |
Document*, |
ScriptPromiseResolver*); |
// Methods are virtual for unit testing |
- virtual void ScheduleInitiatePngEncoding(); |
- virtual void ScheduleInitiateJpegEncoding(const double&); |
- virtual void IdleEncodeRowsPng(double deadline_seconds); |
- virtual void IdleEncodeRowsJpeg(double deadline_seconds); |
+ virtual void ScheduleInitiateEncoding(double quality); |
+ virtual void IdleEncodeRows(double deadline_seconds); |
virtual void PostDelayedTaskToCurrentThread(const WebTraceLocation&, |
std::unique_ptr<WTF::Closure>, |
double delay_ms); |
@@ -93,8 +90,7 @@ class CORE_EXPORT CanvasAsyncBlobCreator |
virtual void CreateBlobAndReturnResult(); |
virtual void CreateNullAndReturnResult(); |
- void InitiatePngEncoding(double deadline_seconds); |
- void InitiateJpegEncoding(const double& quality, double deadline_seconds); |
+ void InitiateEncoding(double quality, double deadline_seconds); |
IdleTaskStatus idle_task_status_; |
private: |
@@ -102,15 +98,13 @@ class CORE_EXPORT CanvasAsyncBlobCreator |
void Dispose(); |
- std::unique_ptr<PNGImageEncoderState> png_encoder_state_; |
- std::unique_ptr<JPEGImageEncoderState> jpeg_encoder_state_; |
Member<DOMUint8ClampedArray> data_; |
- std::unique_ptr<Vector<unsigned char>> encoded_image_; |
+ std::unique_ptr<ImageEncoder> encoder_; |
+ Vector<unsigned char> encoded_image_; |
int num_rows_completed_; |
Member<Document> document_; |
- const IntSize size_; |
- size_t pixel_row_stride_; |
+ SkPixmap src_data_; |
const MimeType mime_type_; |
double start_time_; |
double schedule_initiate_start_time_; |
@@ -127,16 +121,10 @@ class CORE_EXPORT CanvasAsyncBlobCreator |
// Used for OffscreenCanvas only |
Member<ScriptPromiseResolver> script_promise_resolver_; |
- // PNG |
- bool InitializePngStruct(); |
- void ForceEncodeRowsPngOnCurrentThread(); // Similar to idleEncodeRowsPng |
- // without deadline |
- |
- // JPEG |
- bool InitializeJpegStruct(double quality); |
- void ForceEncodeRowsJpegOnCurrentThread(); // Similar to idleEncodeRowsJpeg |
- // without |
- // deadline |
+ // PNG, JPEG |
+ bool InitializeEncoder(double quality); |
+ void ForceEncodeRowsOnCurrentThread(); // Similar to IdleEncodeRows |
+ // without deadline |
// WEBP |
void EncodeImageOnEncoderThread(double quality); |