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 |