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 0bb35edfa2a2d5354e7b6dc7849d45f17b674c76..2386e5e7d7d2ebef28e917b84d3d86d71a35199c 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 { |
@@ -27,13 +27,15 @@ public: |
MimeTypeWebp, |
NumberOfMimeTypeSupported |
}; |
+ // This enum is used to back an UMA histogram, and should therefore be treated as append-only. |
enum IdleTaskStatus { |
IdleTaskNotStarted, |
IdleTaskStarted, |
IdleTaskCompleted, |
IdleTaskFailed, |
IdleTaskSwitchedToMainThreadTask, |
- IdleTaskNotSupported // Idle tasks are not implemented for some image types |
+ IdleTaskNotSupported, // Idle tasks are not implemented for some image types |
+ IdleTaskCount, // Should not be seen in production |
}; |
// Methods are virtual for mocking in unit tests |
virtual void signalTaskSwitchInStartTimeoutEventForTesting() { } |
@@ -46,7 +48,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&); |
@@ -76,6 +78,9 @@ private: |
size_t m_pixelRowStride; |
const MimeType m_mimeType; |
Member<BlobCallback> m_callback; |
+ double m_startTime; |
+ double m_scheduleInitiateStartTime; |
+ double m_elapsedTime; |
// PNG |
bool initializePngStruct(); |
@@ -90,6 +95,7 @@ private: |
void idleTaskStartTimeoutEvent(double quality); |
void idleTaskCompleteTimeoutEvent(); |
+ void recordIdleTaskStatusHistogram(); |
}; |
} // namespace blink |