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 0a714c7002f366c818430f0f8bd78ac9cb854c6a..df7f1d787ee125dfa55e9135f2ee1bb74509d8fc 100644 |
--- a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h |
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h |
@@ -4,6 +4,7 @@ |
#include "core/CoreExport.h" |
#include "core/dom/DOMTypedArray.h" |
+#include "core/dom/ExecutionContext.h" |
#include "core/fileapi/BlobCallback.h" |
#include "platform/geometry/IntSize.h" |
#include "platform/heap/Handle.h" |
@@ -19,15 +20,19 @@ |
class CORE_EXPORT CanvasAsyncBlobCreator |
: public RefCounted<CanvasAsyncBlobCreator> { |
public: |
- static PassRefPtr<CanvasAsyncBlobCreator> create(PassRefPtr<DOMUint8ClampedArray> unpremultipliedRGBAImageData, const String& mimeType, const IntSize&, BlobCallback*); |
+ static PassRefPtr<CanvasAsyncBlobCreator> create(PassRefPtr<DOMUint8ClampedArray> unpremultipliedRGBAImageData, const String& mimeType, const IntSize&, BlobCallback*, ExecutionContext*); |
void scheduleAsyncBlobCreation(bool canUseIdlePeriodScheduling, double quality = 0.0); |
virtual ~CanvasAsyncBlobCreator(); |
+protected: |
+ CanvasAsyncBlobCreator(PassRefPtr<DOMUint8ClampedArray> data, const String& mimeType, const IntSize&, BlobCallback*); |
+ virtual void scheduleCreateBlobAndCallOnMainThread(); |
+ virtual void scheduleCreateNullptrAndCallOnMainThread(); |
+ virtual void scheduleClearSelfRefOnMainThread(); |
+ std::atomic<bool> m_cancelled; |
+ |
private: |
- CanvasAsyncBlobCreator(PassRefPtr<DOMUint8ClampedArray> data, const String& mimeType, const IntSize&, BlobCallback*); |
- void scheduleCreateBlobAndCallOnMainThread(); |
- void scheduleCreateNullptrAndCallOnMainThread(); |
- void scheduleClearSelfRefOnMainThread(); |
+ friend class CanvasAsyncBlobCreatorTest; |
OwnPtr<PNGImageEncoderState> m_encoderState; |
RefPtr<DOMUint8ClampedArray> m_data; |
@@ -49,6 +54,13 @@ |
void createBlobAndCall(); |
void encodeImageOnEncoderThread(double quality); |
+ bool initializeEncodeImageOnEncoderThread(); |
+ void nonprogressiveEncodeImageOnEncoderThread(double quality); |
+ void progressiveEncodeImageOnEncoderThread(); |
+ |
+ class ContextObserver; |
+ void createContextObserver(ExecutionContext*); |
+ OwnPtrWillBePersistent<ContextObserver> m_contextObserver; |
}; |
} // namespace blink |