New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 653599 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

Track various OffscreenCanvas usages

Project Member Reported by xidac...@chromium.org, Oct 6 2016

Issue description

This includes, but not limited to:
* OffscreenCanvas feature usage
* mode of operation (commit vs transferToImageBitmap)
* commit() code path
* CPU run time for each commit() code path (on the thread where commit is called)
* commit() latency (time elapsed from commit() call to UI compositor update)
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 11 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/99de2c286ec4ad051d562c6e1b7c2955fa860430

commit 99de2c286ec4ad051d562c6e1b7c2955fa860430
Author: xidachen <xidachen@chromium.org>
Date: Tue Oct 11 03:47:41 2016

Adding feature usage count for OffscreenCanvas

This CL adds [MeasureAs=xxx] in the .idl files that corresponding to the
OffscreenCanvas creation.

Also, we found that PS#2 has compilation error, and looks like
putting MeasureAs in an interface that has a partial interface
triggers the error. PS#3 is one way to fix it.

BUG= 653599 , 653913

Review-Url: https://codereview.chromium.org/2398703004
Cr-Commit-Position: refs/heads/master@{#424363}

[modify] https://crrev.com/99de2c286ec4ad051d562c6e1b7c2955fa860430/third_party/WebKit/Source/bindings/scripts/v8_interface.py
[modify] https://crrev.com/99de2c286ec4ad051d562c6e1b7c2955fa860430/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/99de2c286ec4ad051d562c6e1b7c2955fa860430/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.idl
[modify] https://crrev.com/99de2c286ec4ad051d562c6e1b7c2955fa860430/third_party/WebKit/Source/modules/canvas/HTMLCanvasElementModule.idl
[modify] https://crrev.com/99de2c286ec4ad051d562c6e1b7c2955fa860430/tools/metrics/histograms/histograms.xml

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3d42d4419ac50ee39c9ec5c2d99296f094de80d8

commit 3d42d4419ac50ee39c9ec5c2d99296f094de80d8
Author: xidachen <xidachen@chromium.org>
Date: Wed Oct 12 03:55:23 2016

Add UMA metrics to OffscreenCanvas's commit type

When OffscreenCanvas's commit happens, it has 4 possible modes with the
combination of disable/enable accelerated-2d-canvas and disable/enable
gpu compositing. This CL tracks the usage of each mode.

BUG= 653599 

Review-Url: https://codereview.chromium.org/2400223002
Cr-Commit-Position: refs/heads/master@{#424664}

[modify] https://crrev.com/3d42d4419ac50ee39c9ec5c2d99296f094de80d8/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp
[modify] https://crrev.com/3d42d4419ac50ee39c9ec5c2d99296f094de80d8/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.h
[modify] https://crrev.com/3d42d4419ac50ee39c9ec5c2d99296f094de80d8/tools/metrics/histograms/histograms.xml

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0abcd1a8bfe2150793440000ee9c8c077479a734

commit 0abcd1a8bfe2150793440000ee9c8c077479a734
Author: xidachen <xidachen@chromium.org>
Date: Fri Oct 14 02:56:15 2016

Add timer to OffscreenCanvas's commit API

This CL adds timer to the OffscreenCanvas's commit API, which tracks the
time spends on commit before compositing. We track this for different
code paths (total of 4).

BUG= 653599 
TBR=kbr@chromium.org, zmo@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2411363002
Cr-Commit-Position: refs/heads/master@{#425242}

[modify] https://crrev.com/0abcd1a8bfe2150793440000ee9c8c077479a734/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp
[modify] https://crrev.com/0abcd1a8bfe2150793440000ee9c8c077479a734/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
[modify] https://crrev.com/0abcd1a8bfe2150793440000ee9c8c077479a734/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcher.h
[modify] https://crrev.com/0abcd1a8bfe2150793440000ee9c8c077479a734/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp
[modify] https://crrev.com/0abcd1a8bfe2150793440000ee9c8c077479a734/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.h
[modify] https://crrev.com/0abcd1a8bfe2150793440000ee9c8c077479a734/tools/metrics/histograms/histograms.xml

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d882e57ac375d777e9b3c6105049eca508908a8d

commit d882e57ac375d777e9b3c6105049eca508908a8d
Author: xlai <xlai@chromium.org>
Date: Tue Oct 18 16:59:00 2016

Put histogram code in one place for CanvasAsyncBlobCreator

This CL causes no behavior change. It's to organize the
histogram code scattered around CanvasAsyncBlobCreator in
order to:
(1) Facilitate OffscreenCanvas.convertToBlob() implementation
(2) Makes it easier to future histogram addition for
    OffscreenCanvas.convertToBlob().

TBR=junov@chromium.org
BUG= 653599 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2421203003
Cr-Commit-Position: refs/heads/master@{#425993}

[modify] https://crrev.com/d882e57ac375d777e9b3c6105049eca508908a8d/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
[modify] https://crrev.com/d882e57ac375d777e9b3c6105049eca508908a8d/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.h

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 25 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fea82c134538247be328be35fb64d4c69e38c440

commit fea82c134538247be328be35fb64d4c69e38c440
Author: xidachen <xidachen@chromium.org>
Date: Tue Oct 25 03:37:28 2016

Add usage counter to OffscreenCanvas API calls

Currently, there are two important API calls for OffscreenCanvas, which
are transferToImageBitmap and commit. This CL adds usage counter to these
two API calls.

BUG= 653599 
TBR=kbr@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2411703004
Cr-Commit-Position: refs/heads/master@{#427265}

[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.h
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.h
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.idl
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.h
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.idl
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContext.cpp
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContext.h
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/modules/webgl/WebGLRenderingContext.cpp
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/modules/webgl/WebGLRenderingContext.h
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.idl
[modify] https://crrev.com/fea82c134538247be328be35fb64d4c69e38c440/tools/metrics/histograms/histograms.xml

Cc: -xlai@chromium.org
Owner: xlai@chromium.org
Project Member

Comment 7 by bugdroid1@chromium.org, Jan 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9c7d5f102a02c3cb9e740deab5032c8c27a3a5c6

commit 9c7d5f102a02c3cb9e740deab5032c8c27a3a5c6
Author: xlai <xlai@chromium.org>
Date: Mon Jan 16 23:15:56 2017

Complete usage tracking for OffscreenCanvas.convertToBlob API

We've decided to merge the usage data from OffscreenCanvas.convertToBlob to
canvas.toBlob because they share the same logic in CanvasAsyncBlobCreator.
Moreover, previously we forgot to add a new histogram
'Canvas.RequestedImageMimeTypes_convertToBlobPromise' which is recorded in
ImageEncoderUtils::toEncodingMimeType; so in this CL I'm adding it.

BUG= 653599 

Review-Url: https://codereview.chromium.org/2629923003
Cr-Commit-Position: refs/heads/master@{#443957}

[modify] https://crrev.com/9c7d5f102a02c3cb9e740deab5032c8c27a3a5c6/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp
[modify] https://crrev.com/9c7d5f102a02c3cb9e740deab5032c8c27a3a5c6/tools/metrics/histograms/histograms.xml

Project Member

Comment 8 by bugdroid1@chromium.org, Feb 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/19c0e98f042d6d357e07c101911a724f0086a394

commit 19c0e98f042d6d357e07c101911a724f0086a394
Author: junov <junov@chromium.org>
Date: Mon Feb 27 22:48:34 2017

Add use counters for recently launched canvas features

This change adds use counters for the following features:
* 2D Canvas filter
* 2D Canvas imageSmoothingQuality
* <canvas> toBlob and toDataURL
* OffscreenCanvas.convertToBlob
* using SVG images as source images for ctx2d.drawImage and
  gl.texImage2d

Use counter for imageSmoothingEnabled is removed. This feature was being
tracked for the purpose deprecating and removing its webkit-prefixed
version.  We no longer need it

The Canvas.ContextType histogram was missing an entry for the
"bitmaprenderer" context type.

BUG= 653599 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2703423009
Cr-Commit-Position: refs/heads/master@{#453368}

[modify] https://crrev.com/19c0e98f042d6d357e07c101911a724f0086a394/third_party/WebKit/Source/core/frame/UseCounter.h
[modify] https://crrev.com/19c0e98f042d6d357e07c101911a724f0086a394/third_party/WebKit/Source/core/html/HTMLCanvasElement.idl
[modify] https://crrev.com/19c0e98f042d6d357e07c101911a724f0086a394/third_party/WebKit/Source/core/html/HTMLImageElement.cpp
[modify] https://crrev.com/19c0e98f042d6d357e07c101911a724f0086a394/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.idl
[modify] https://crrev.com/19c0e98f042d6d357e07c101911a724f0086a394/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.idl
[modify] https://crrev.com/19c0e98f042d6d357e07c101911a724f0086a394/third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.idl
[modify] https://crrev.com/19c0e98f042d6d357e07c101911a724f0086a394/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
[modify] https://crrev.com/19c0e98f042d6d357e07c101911a724f0086a394/tools/metrics/histograms/histograms.xml

Comment 9 by junov@chromium.org, Feb 28 2017

Status: Fixed (was: Assigned)
I think we have all bases covered now.

Closing.
Project Member

Comment 10 by bugdroid1@chromium.org, Oct 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/77a9952fa36514bbb2ea06a3eb291a7dd42ee1a5

commit 77a9952fa36514bbb2ea06a3eb291a7dd42ee1a5
Author: xlai-o <xlai@chromium.org>
Date: Mon Oct 16 21:08:29 2017

Complete UMA for Offscreencanvas as a CanvasImageSource

Bug:  653599 
Change-Id: I2d728cdda9b1576c38ced22c0b9508c10085f8b3
Reviewed-on: https://chromium-review.googlesource.com/719426
Reviewed-by: Justin Novosad <junov@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Commit-Queue: Olivia Lai <xlai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509168}
[modify] https://crrev.com/77a9952fa36514bbb2ea06a3eb291a7dd42ee1a5/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.cpp
[modify] https://crrev.com/77a9952fa36514bbb2ea06a3eb291a7dd42ee1a5/tools/metrics/histograms/histograms.xml

Sign in to add a comment