Chromium Code Reviews| 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..c88bf4fd0397c4457da794a416026f5d828fe31e 100644 |
| --- a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h |
| +++ b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h |
| @@ -16,12 +16,11 @@ |
| #include "platform/wtf/Vector.h" |
| #include "platform/wtf/text/WTFString.h" |
| #include "public/platform/WebTraceLocation.h" |
| +#include "third_party/skia/include/encode/SkEncoder.h" |
| 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,14 @@ 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<SkEncoder> encoder_; |
|
f(malita)
2017/05/15 19:53:26
For encapsulation, I wonder if it'd make sense to
msarett1
2017/05/15 23:49:08
I wrote a wrapper class, let me know if it is alon
|
| std::unique_ptr<Vector<unsigned char>> encoded_image_; |
| + std::unique_ptr<SkWStream> dst_; |
| 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 +122,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); |