|
|
Created:
5 years ago by xlai (Olivia) Modified:
5 years ago Reviewers:
Justin Novosad CC:
chromium-reviews, dshwang, ajuma+watch-canvas_chromium.org, blink-reviews-html_chromium.org, dglazkov+blink, Rik, blink-reviews Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionSwitch canvas.toBlob from idle-periods implementation to threaded
implementation to allow experimenting.
Based on repeated experiments of both idle-periods implementation and
threaded implementation for png image encoding on a variety of perf
trybots, we find that the idle-periods implementation does not have
observable improvement on reducing the negative impact of canvas.toBlob
on the smoothness of animation, even on low-end devices; meanwhile, the
threaded implementation runs canvas.toBlob significantly faster and does
not have the risk of indefinitely delaying the image encoding task like
the idle-periods implementation. Therefore, we decide to switch
canvas.toBlob to its threaded implementation.
This CL will allow people (recipients of intent-to-ship letter) to try out
canvas.toBlob in its threaded implementation by simply turning on
--enable-experimental-canvas-features flag. Not only that, we also allow
some grace periods to check if the related performance tests on dashboard
have any regression. After approvals from API owners, we will follow with
another CL that completely deletes the idle-periods implementation and
merges the CanvasAsyncBlobCreator back to HTMLCanvasElement to
reduce redundant codes.
BUG=523414
Committed: https://crrev.com/9cbf936a9bc9102b2c9f9a7f6311b53747c2bd52
Cr-Commit-Position: refs/heads/master@{#362787}
Patch Set 1 #
Total comments: 2
Patch Set 2 : Do according to feedback #Messages
Total messages: 16 (7 generated)
xlai@chromium.org changed reviewers: + junov@chromium.org
junov@: After Intent-to-ship letter is sent, probably there will be ppl who want to try out the feature. In that case, we should let them try out the threaded implementation instead of the idle-periods implementation, because the former is the version that we want to ship. Another reason is that we switch it back to threaded and can observe the perf dashboard to see if there's regression.
Please respect the 72col limit on CL descriptions. https://codereview.chromium.org/1491653002/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp (right): https://codereview.chromium.org/1491653002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp:565: // TODO(xlai): After Intent-to-Ship is approved, remove idle-periods version of implementation completely Create a crbug about this so we don't forget. https://codereview.chromium.org/1491653002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp:568: // } else { Don't commit commented-out code
Description was changed from ========== Switch canvas.toBlob from idle-periods implementation to threaded implementation to allow experimenting. Based on repeated experiments of both idle-periods implementation and threaded implementation for png image encoding on a variety of perf trybots, we find that the idle-periods implementation does not have observable improvement on reducing the negative impact of canvas.toBlob on the smoothness of animation, even on low-end devices; meanwhile, the threaded implementation runs canvas.toBlob significantly faster and does not have the risk of indefinitely delaying the image encoding task like the idle-periods implementation. Therefore, we decide to switch canvas.toBlob to its threaded implementation. This CL will allow people (recipients of intent-to-ship letter) to try out canvas.toBlob in its threaded implementation by simply turning on --enable-experimental-canvas-features flag. Not only that, we also allow some grace periods to check if the related performance tests on dashboard have any regression. After approvals from API owners, we will follow with another CL that completely deletes the idle-periods implementation and merges the CanvasAsyncBlobCreator back to HTMLCanvasElement to reduce redundant codes. BUG=523414 ========== to ========== Switch canvas.toBlob from idle-periods implementation to threaded implementation to allow experimenting. Based on repeated experiments of both idle-periods implementation and threaded implementation for png image encoding on a variety of perf trybots, we find that the idle-periods implementation does not have observable improvement on reducing the negative impact of canvas.toBlob on the smoothness of animation, even on low-end devices; meanwhile, the threaded implementation runs canvas.toBlob significantly faster and does not have the risk of indefinitely delaying the image encoding task like the idle-periods implementation. Therefore, we decide to switch canvas.toBlob to its threaded implementation. This CL will allow people (recipients of intent-to-ship letter) to try out canvas.toBlob in its threaded implementation by simply turning on --enable-experimental-canvas-features flag. Not only that, we also allow some grace periods to check if the related performance tests on dashboard have any regression. After approvals from API owners, we will follow with another CL that completely deletes the idle-periods implementation and merges the CanvasAsyncBlobCreator back to HTMLCanvasElement to reduce redundant codes. BUG=523414 ==========
On 2015/12/01 20:22:52, Olivia wrote: lgtm
The CQ bit was checked by xlai@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1491653002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1491653002/20001
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_android_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_android_r...)
The CQ bit was checked by xlai@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1491653002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1491653002/20001
Message was sent while issue was closed.
Description was changed from ========== Switch canvas.toBlob from idle-periods implementation to threaded implementation to allow experimenting. Based on repeated experiments of both idle-periods implementation and threaded implementation for png image encoding on a variety of perf trybots, we find that the idle-periods implementation does not have observable improvement on reducing the negative impact of canvas.toBlob on the smoothness of animation, even on low-end devices; meanwhile, the threaded implementation runs canvas.toBlob significantly faster and does not have the risk of indefinitely delaying the image encoding task like the idle-periods implementation. Therefore, we decide to switch canvas.toBlob to its threaded implementation. This CL will allow people (recipients of intent-to-ship letter) to try out canvas.toBlob in its threaded implementation by simply turning on --enable-experimental-canvas-features flag. Not only that, we also allow some grace periods to check if the related performance tests on dashboard have any regression. After approvals from API owners, we will follow with another CL that completely deletes the idle-periods implementation and merges the CanvasAsyncBlobCreator back to HTMLCanvasElement to reduce redundant codes. BUG=523414 ========== to ========== Switch canvas.toBlob from idle-periods implementation to threaded implementation to allow experimenting. Based on repeated experiments of both idle-periods implementation and threaded implementation for png image encoding on a variety of perf trybots, we find that the idle-periods implementation does not have observable improvement on reducing the negative impact of canvas.toBlob on the smoothness of animation, even on low-end devices; meanwhile, the threaded implementation runs canvas.toBlob significantly faster and does not have the risk of indefinitely delaying the image encoding task like the idle-periods implementation. Therefore, we decide to switch canvas.toBlob to its threaded implementation. This CL will allow people (recipients of intent-to-ship letter) to try out canvas.toBlob in its threaded implementation by simply turning on --enable-experimental-canvas-features flag. Not only that, we also allow some grace periods to check if the related performance tests on dashboard have any regression. After approvals from API owners, we will follow with another CL that completely deletes the idle-periods implementation and merges the CanvasAsyncBlobCreator back to HTMLCanvasElement to reduce redundant codes. BUG=523414 ==========
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== Switch canvas.toBlob from idle-periods implementation to threaded implementation to allow experimenting. Based on repeated experiments of both idle-periods implementation and threaded implementation for png image encoding on a variety of perf trybots, we find that the idle-periods implementation does not have observable improvement on reducing the negative impact of canvas.toBlob on the smoothness of animation, even on low-end devices; meanwhile, the threaded implementation runs canvas.toBlob significantly faster and does not have the risk of indefinitely delaying the image encoding task like the idle-periods implementation. Therefore, we decide to switch canvas.toBlob to its threaded implementation. This CL will allow people (recipients of intent-to-ship letter) to try out canvas.toBlob in its threaded implementation by simply turning on --enable-experimental-canvas-features flag. Not only that, we also allow some grace periods to check if the related performance tests on dashboard have any regression. After approvals from API owners, we will follow with another CL that completely deletes the idle-periods implementation and merges the CanvasAsyncBlobCreator back to HTMLCanvasElement to reduce redundant codes. BUG=523414 ========== to ========== Switch canvas.toBlob from idle-periods implementation to threaded implementation to allow experimenting. Based on repeated experiments of both idle-periods implementation and threaded implementation for png image encoding on a variety of perf trybots, we find that the idle-periods implementation does not have observable improvement on reducing the negative impact of canvas.toBlob on the smoothness of animation, even on low-end devices; meanwhile, the threaded implementation runs canvas.toBlob significantly faster and does not have the risk of indefinitely delaying the image encoding task like the idle-periods implementation. Therefore, we decide to switch canvas.toBlob to its threaded implementation. This CL will allow people (recipients of intent-to-ship letter) to try out canvas.toBlob in its threaded implementation by simply turning on --enable-experimental-canvas-features flag. Not only that, we also allow some grace periods to check if the related performance tests on dashboard have any regression. After approvals from API owners, we will follow with another CL that completely deletes the idle-periods implementation and merges the CanvasAsyncBlobCreator back to HTMLCanvasElement to reduce redundant codes. BUG=523414 Committed: https://crrev.com/9cbf936a9bc9102b2c9f9a7f6311b53747c2bd52 Cr-Commit-Position: refs/heads/master@{#362787} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/9cbf936a9bc9102b2c9f9a7f6311b53747c2bd52 Cr-Commit-Position: refs/heads/master@{#362787} |