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 64152fb3c0a5e14841d3073b9220150604079942..09fe0b26f6b6d6e65b04300a80c26e08163c597e 100644 |
| --- a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h |
| +++ b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h |
| @@ -18,7 +18,7 @@ class JPEGImageEncoderState; |
| class CORE_EXPORT CanvasAsyncBlobCreator : public GarbageCollectedFinalized<CanvasAsyncBlobCreator> { |
| public: |
| - static CanvasAsyncBlobCreator* create(DOMUint8ClampedArray* unpremultipliedRGBAImageData, const String& mimeType, const IntSize&, BlobCallback*); |
| + static CanvasAsyncBlobCreator* create(DOMUint8ClampedArray* unpremultipliedRGBAImageData, const String& mimeType, const IntSize&, BlobCallback*, double); |
| void scheduleAsyncBlobCreation(bool canUseIdlePeriodScheduling, const double& quality = 0.0); |
| virtual ~CanvasAsyncBlobCreator(); |
| enum MimeType { |
| @@ -35,6 +35,12 @@ public: |
| IdleTaskSwitchedToMainThreadTask, |
| IdleTaskNotSupported // Idle tasks are not implemented for some image types |
| }; |
| + // enum used histogram |
| + enum IdleTaskTimeoutType { |
|
Justin Novosad
2016/06/07 21:43:44
I find these enum names a bit hard to interpret. W
|
| + IdleTaskStartTimeout, |
| + IdleTaskCompleteTimeout, |
| + IdleTaskTimeoutSupported |
| + }; |
| // Methods are virtual for mocking in unit tests |
| virtual void signalTaskSwitchInStartTimeoutEventForTesting() { } |
| virtual void signalTaskSwitchInCompleteTimeoutEventForTesting() { } |
| @@ -45,7 +51,7 @@ public: |
| } |
| protected: |
| - CanvasAsyncBlobCreator(DOMUint8ClampedArray* data, MimeType, const IntSize&, BlobCallback*); |
| + CanvasAsyncBlobCreator(DOMUint8ClampedArray* data, MimeType, const IntSize&, BlobCallback*, double); |
| // Methods are virtual for unit testing |
| virtual void scheduleInitiatePngEncoding(); |
| virtual void scheduleInitiateJpegEncoding(const double&); |
| @@ -73,6 +79,8 @@ private: |
| size_t m_pixelRowStride; |
| const MimeType m_mimeType; |
| CrossThreadPersistent<BlobCallback> m_callback; |
| + double m_startTime; |
| + void recordTimeoutSwitch(IdleTaskTimeoutType); |
| // PNG |
| bool initializePngStruct(); |
| @@ -85,8 +93,8 @@ private: |
| // WEBP |
| void encodeImageOnEncoderThread(double quality); |
| - void idleTaskStartTimeoutEvent(double quality); |
| - void idleTaskCompleteTimeoutEvent(); |
| + void idleTaskStartTimeoutEvent(double quality, double startTime); |
| + void idleTaskCompleteTimeoutEvent(double startTime); |
| }; |
| } // namespace blink |