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

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

Issue 2629923003: Complete usage tracking for OffscreenCanvas.convertToBlob API (Closed)
Patch Set: fix based on comment Created 3 years, 11 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
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
diff --git a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
index 6d1eff20d0ca5ba303079d7c23f4d0be79022061..4050fa6c3734973d5e2f155e688fc6fc187e4f90 100644
--- a/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
+++ b/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
@@ -86,14 +86,11 @@ CanvasAsyncBlobCreator::MimeType convertMimeTypeStringToEnum(
}
void recordIdleTaskStatusHistogram(
- CanvasAsyncBlobCreator::ToBlobFunctionType functionType,
CanvasAsyncBlobCreator::IdleTaskStatus status) {
- // TODO(crbug.com/653599): Add histograms for OffscreenCanvas.convertToBlob.
- if (functionType == CanvasAsyncBlobCreator::OffscreenCanvasToBlobPromise)
- return;
- DEFINE_STATIC_LOCAL(EnumerationHistogram, toBlobIdleTaskStatus,
- ("Blink.Canvas.ToBlob.IdleTaskStatus",
- CanvasAsyncBlobCreator::IdleTaskCount));
+ DEFINE_THREAD_SAFE_STATIC_LOCAL(
+ EnumerationHistogram, toBlobIdleTaskStatus,
+ new EnumerationHistogram("Blink.Canvas.ToBlob.IdleTaskStatus",
+ CanvasAsyncBlobCreator::IdleTaskCount));
toBlobIdleTaskStatus.count(status);
}
@@ -107,52 +104,57 @@ enum ElapsedTimeHistogramType {
};
void recordElapsedTimeHistogram(
- CanvasAsyncBlobCreator::ToBlobFunctionType functionType,
ElapsedTimeHistogramType type,
CanvasAsyncBlobCreator::MimeType mimeType,
double elapsedTime) {
- // TODO(crbug.com/653599): Add histograms for OffscreenCanvas.convertToBlob.
- if (functionType == CanvasAsyncBlobCreator::OffscreenCanvasToBlobPromise)
- return;
-
if (type == InitiateEncodingDelay) {
if (mimeType == CanvasAsyncBlobCreator::MimeTypePng) {
- DEFINE_STATIC_LOCAL(
+ DEFINE_THREAD_SAFE_STATIC_LOCAL(
CustomCountHistogram, toBlobPNGInitiateEncodingCounter,
- ("Blink.Canvas.ToBlob.InitiateEncodingDelay.PNG", 0, 10000000, 50));
+ new CustomCountHistogram(
+ "Blink.Canvas.ToBlob.InitiateEncodingDelay.PNG", 0, 10000000,
+ 50));
toBlobPNGInitiateEncodingCounter.count(elapsedTime * 1000000.0);
} else if (mimeType == CanvasAsyncBlobCreator::MimeTypeJpeg) {
- DEFINE_STATIC_LOCAL(
+ DEFINE_THREAD_SAFE_STATIC_LOCAL(
CustomCountHistogram, toBlobJPEGInitiateEncodingCounter,
- ("Blink.Canvas.ToBlob.InitiateEncodingDelay.JPEG", 0, 10000000, 50));
+ new CustomCountHistogram(
+ "Blink.Canvas.ToBlob.InitiateEncodingDelay.JPEG", 0, 10000000,
+ 50));
toBlobJPEGInitiateEncodingCounter.count(elapsedTime * 1000000.0);
}
} else if (type == IdleEncodeDuration) {
if (mimeType == CanvasAsyncBlobCreator::MimeTypePng) {
- DEFINE_STATIC_LOCAL(
+ DEFINE_THREAD_SAFE_STATIC_LOCAL(
CustomCountHistogram, toBlobPNGIdleEncodeCounter,
- ("Blink.Canvas.ToBlob.IdleEncodeDuration.PNG", 0, 10000000, 50));
+ new CustomCountHistogram("Blink.Canvas.ToBlob.IdleEncodeDuration.PNG",
+ 0, 10000000, 50));
toBlobPNGIdleEncodeCounter.count(elapsedTime * 1000000.0);
} else if (mimeType == CanvasAsyncBlobCreator::MimeTypeJpeg) {
- DEFINE_STATIC_LOCAL(
+ DEFINE_THREAD_SAFE_STATIC_LOCAL(
CustomCountHistogram, toBlobJPEGIdleEncodeCounter,
- ("Blink.Canvas.ToBlob.IdleEncodeDuration.JPEG", 0, 10000000, 50));
+ new CustomCountHistogram(
+ "Blink.Canvas.ToBlob.IdleEncodeDuration.JPEG", 0, 10000000, 50));
toBlobJPEGIdleEncodeCounter.count(elapsedTime * 1000000.0);
}
} else if (type == ToBlobDuration) {
if (mimeType == CanvasAsyncBlobCreator::MimeTypePng) {
- DEFINE_STATIC_LOCAL(CustomCountHistogram, toBlobPNGCounter,
- ("Blink.Canvas.ToBlobDuration.PNG", 0, 10000000, 50));
+ DEFINE_THREAD_SAFE_STATIC_LOCAL(
+ CustomCountHistogram, toBlobPNGCounter,
+ new CustomCountHistogram("Blink.Canvas.ToBlobDuration.PNG", 0,
+ 10000000, 50));
toBlobPNGCounter.count(elapsedTime * 1000000.0);
} else if (mimeType == CanvasAsyncBlobCreator::MimeTypeJpeg) {
- DEFINE_STATIC_LOCAL(
+ DEFINE_THREAD_SAFE_STATIC_LOCAL(
CustomCountHistogram, toBlobJPEGCounter,
- ("Blink.Canvas.ToBlobDuration.JPEG", 0, 10000000, 50));
+ new CustomCountHistogram("Blink.Canvas.ToBlobDuration.JPEG", 0,
+ 10000000, 50));
toBlobJPEGCounter.count(elapsedTime * 1000000.0);
} else if (mimeType == CanvasAsyncBlobCreator::MimeTypeWebp) {
- DEFINE_STATIC_LOCAL(
+ DEFINE_THREAD_SAFE_STATIC_LOCAL(
CustomCountHistogram, toBlobWEBPCounter,
- ("Blink.Canvas.ToBlobDuration.WEBP", 0, 10000000, 50));
+ new CustomCountHistogram("Blink.Canvas.ToBlobDuration.WEBP", 0,
+ 10000000, 50));
toBlobWEBPCounter.count(elapsedTime * 1000000.0);
}
}
@@ -296,7 +298,7 @@ void CanvasAsyncBlobCreator::scheduleInitiateJpegEncoding(
void CanvasAsyncBlobCreator::initiateJpegEncoding(const double& quality,
double deadlineSeconds) {
recordElapsedTimeHistogram(
- m_functionType, InitiateEncodingDelay, MimeTypeJpeg,
+ InitiateEncodingDelay, MimeTypeJpeg,
WTF::monotonicallyIncreasingTime() - m_scheduleInitiateStartTime);
if (m_idleTaskStatus == IdleTaskSwitchedToImmediateTask) {
return;
@@ -321,7 +323,7 @@ void CanvasAsyncBlobCreator::scheduleInitiatePngEncoding() {
void CanvasAsyncBlobCreator::initiatePngEncoding(double deadlineSeconds) {
recordElapsedTimeHistogram(
- m_functionType, InitiateEncodingDelay, MimeTypePng,
+ InitiateEncodingDelay, MimeTypePng,
WTF::monotonicallyIncreasingTime() - m_scheduleInitiateStartTime);
if (m_idleTaskStatus == IdleTaskSwitchedToImmediateTask) {
return;
@@ -362,8 +364,7 @@ void CanvasAsyncBlobCreator::idleEncodeRowsPng(double deadlineSeconds) {
m_idleTaskStatus = IdleTaskCompleted;
m_elapsedTime += (WTF::monotonicallyIncreasingTime() - startTime);
- recordElapsedTimeHistogram(m_functionType, IdleEncodeDuration, MimeTypePng,
- m_elapsedTime);
+ recordElapsedTimeHistogram(IdleEncodeDuration, MimeTypePng, m_elapsedTime);
if (isDeadlineNearOrPassed(deadlineSeconds)) {
TaskRunnerHelper::get(TaskType::CanvasBlobSerialization, m_document)
->postTask(BLINK_FROM_HERE,
@@ -386,8 +387,7 @@ void CanvasAsyncBlobCreator::idleEncodeRowsJpeg(double deadlineSeconds) {
m_elapsedTime += (WTF::monotonicallyIncreasingTime() - startTime);
if (m_numRowsCompleted == m_size.height()) {
m_idleTaskStatus = IdleTaskCompleted;
- recordElapsedTimeHistogram(m_functionType, IdleEncodeDuration, MimeTypeJpeg,
- m_elapsedTime);
+ recordElapsedTimeHistogram(IdleEncodeDuration, MimeTypeJpeg, m_elapsedTime);
if (isDeadlineNearOrPassed(deadlineSeconds)) {
TaskRunnerHelper::get(TaskType::CanvasBlobSerialization, m_document)
@@ -458,8 +458,8 @@ void CanvasAsyncBlobCreator::forceEncodeRowsJpegOnCurrentThread() {
}
void CanvasAsyncBlobCreator::createBlobAndReturnResult() {
- recordIdleTaskStatusHistogram(m_functionType, m_idleTaskStatus);
- recordElapsedTimeHistogram(m_functionType, ToBlobDuration, m_mimeType,
+ recordIdleTaskStatusHistogram(m_idleTaskStatus);
+ recordElapsedTimeHistogram(ToBlobDuration, m_mimeType,
WTF::monotonicallyIncreasingTime() - m_startTime);
Blob* resultBlob =
@@ -478,10 +478,10 @@ void CanvasAsyncBlobCreator::createBlobAndReturnResult() {
}
void CanvasAsyncBlobCreator::createNullAndReturnResult() {
- recordIdleTaskStatusHistogram(m_functionType, m_idleTaskStatus);
+ recordIdleTaskStatusHistogram(m_idleTaskStatus);
if (m_functionType == HTMLCanvasToBlobCallback) {
DCHECK(isMainThread());
- recordIdleTaskStatusHistogram(m_functionType, m_idleTaskStatus);
+ recordIdleTaskStatusHistogram(m_idleTaskStatus);
TaskRunnerHelper::get(TaskType::CanvasBlobSerialization, m_document)
->postTask(BLINK_FROM_HERE,
WTF::bind(&BlobCallback::handleEvent,
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698