Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(492)

Unified Diff: third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h

Issue 2039673002: Track performance of toBlob and its complete timeout delay (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor clean up Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698