HTMLCanvasElement to use Canvas2DLayerBridge for all rendering modes, even printing. Always rasterize via compositing layer except for printing.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6c3982b4874886a8e83338f419ea8956319a3d78 commit 6c3982b4874886a8e83338f419ea8956319a3d78 Author: xlai <xlai@chromium.org> Date: Fri Dec 15 23:26:06 2017 Remove ImageBuffer from HTMLCanvas and its rendering contexts This CL lets HTMLCanvasElement directly access Canvas2DLayerBridge. As a result, the ImageBuffer and ImageBufferSurface classes are trimmed down drastically: 1. Functions that serve to re-route calls in between canvas and its rendering contexts and Canvas2DLayerBridge become redundant and are all removed. 2. ImageBuffer::CopyRenderingResultsFromDrawingBuffer, which is used by webgl only, now becomes a function in WebGLRenderingContextBase. 3. Functions that are used by canvas 2d only, such as ImageBuffer::PutByteArray, ImageBuffer::WritePixels, etc, have all became functions in BaseRenderingContext2D. 4. ImageBuffer::CanCreateImageBuffer becomes SkiaUtils::IsValidImageSize. 5. ImageBuffer::CopyToPlatformTexture becomes StaticBitmapImage::CopyImageToPlatformTexture. 6. Some small functions that are called once are dissolved into other classes. Bug: 776806 , 776802 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2;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 Change-Id: I4fb6ba344ac7b23761631985e61d65906f6225ed Reviewed-on: https://chromium-review.googlesource.com/824437 Commit-Queue: Olivia Lai <xlai@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Justin Novosad <junov@chromium.org> Cr-Commit-Position: refs/heads/master@{#524515} [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/core/html/HTMLCanvasElement.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContextHost.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/modules/canvas/canvas2d/BaseRenderingContext2D.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/modules/canvas/canvas2d/BaseRenderingContext2D.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2D.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2D.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/modules/canvas/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/modules/canvas/offscreencanvas2d/OffscreenCanvasRenderingContext2D.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/ImageBuffer.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/ImageBufferSurface.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/ImageBufferSurface.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/StaticBitmapImage.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/StaticBitmapImage.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/gpu/AcceleratedImageBufferSurface.h [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/skia/SkiaUtils.cpp [modify] https://crrev.com/6c3982b4874886a8e83338f419ea8956319a3d78/third_party/WebKit/Source/platform/graphics/skia/SkiaUtils.h
Comment 1 by xlai@chromium.org
, Oct 20 2017