Canvas2DLayerBridge has grown to be overly complex through the addition of multiple rendering modes. Time to refactor in order to make the code more robust and extensible.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4 commit 73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4 Author: Justin Novosad <junov@chromium.org> Date: Wed Oct 11 20:56:07 2017 Store opacity mode in CanvasColorParams This CL refactors canvas code to move storage of the opacity mode (for both WebGL and 2D) into CanvasColorParams. The purpose is to simplify a WIP refactor that changes how resources are managed in Canvas2DLayerBridge BUG= 773466 Cq-Include-Trybots: 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: I3bdd52fc3fdae4164c27f56f9570e1819dccb7b8 Reviewed-on: https://chromium-review.googlesource.com/710504 Reviewed-by: Jeremy Roman <jbroman@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Fernando Serboncini <fserb@chromium.org> Reviewed-by: Mohammad Reza Zakerinasab <zakerinasab@chromium.org> Commit-Queue: Justin Novosad <junov@chromium.org> Cr-Commit-Position: refs/heads/master@{#508108} [delete] https://crrev.com/653c8d4957591d09468254ccecfffc01a898e0c1/third_party/WebKit/LayoutTests/external/wpt/offscreen-canvas/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap-expected.txt [delete] https://crrev.com/653c8d4957591d09468254ccecfffc01a898e0c1/third_party/WebKit/LayoutTests/external/wpt/offscreen-canvas/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/LayoutTests/platform/mac/external/wpt/offscreen-canvas/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt [delete] https://crrev.com/653c8d4957591d09468254ccecfffc01a898e0c1/third_party/WebKit/LayoutTests/platform/win/external/wpt/offscreen-canvas/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedColorParams.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedColorParams.h [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueDeserializer.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/bindings/core/v8/serialization/V8ScriptValueSerializer.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/core/html/HTMLCanvasElement.h [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/core/html/ImageData.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/core/html/ImageDataTest.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/core/imagebitmap/ImageBitmap.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/core/offscreencanvas/OffscreenCanvas.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/core/paint/HTMLCanvasPainterTest.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DTest.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/CanvasColorParams.h [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/CanvasColorParamsTest.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/ImageBuffer.h [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/ImageBufferSurface.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/ImageBufferSurface.h [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/ImageBufferTest.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/UnacceleratedImageBufferSurface.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/UnacceleratedImageBufferSurface.h [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/gpu/AcceleratedImageBufferSurface.cpp [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/gpu/AcceleratedImageBufferSurface.h [modify] https://crrev.com/73fb863ce69cf3df9c5bb8721b6b6c16f4129ef4/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContextTest.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/876832d6f97c69e668c2a2740971fc099dffc11b commit 876832d6f97c69e668c2a2740971fc099dffc11b Author: Justin Novosad <junov@chromium.org> Date: Mon Oct 16 17:10:21 2017 Remove canvas linear pixel math option This change removes the experimental linearPixelMath canvas context creation attribute. It also refactors CanvasColorParams to eliminate linearPixelMath semantics in favor of NeedsColorSpaceXformCanvas(), and adds related utility methods in order to simplify call sites that called linearPixelMath() to determine how to set-up canvases. Bug: 773466 Change-Id: I514d58b0cd9371970feb1d4e4aaa509483210d60 Reviewed-on: https://chromium-review.googlesource.com/719698 Commit-Queue: Justin Novosad <junov@chromium.org> Reviewed-by: Mohammad Reza Zakerinasab <zakerinasab@chromium.org> Cr-Commit-Position: refs/heads/master@{#509083} [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/core/html/canvas/CanvasContextCreationAttributes.idl [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/core/html/canvas/CanvasRenderingContext.cpp [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/core/imagebitmap/ImageBitmap.cpp [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DTest.cpp [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/platform/graphics/CanvasColorParams.h [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/platform/graphics/UnacceleratedImageBufferSurface.cpp [modify] https://crrev.com/876832d6f97c69e668c2a2740971fc099dffc11b/third_party/WebKit/Source/platform/graphics/gpu/AcceleratedImageBufferSurface.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1559b27f89ed89733c3c38b5eb06e27259224bab commit 1559b27f89ed89733c3c38b5eb06e27259224bab Author: Justin Novosad <junov@chromium.org> Date: Tue Nov 07 22:56:50 2017 Refactor of Canvas2DLayerBridge resource model Transition to polymorphic RAII model. The purpose of this change is to improve the maintainability and extendability of the code. The GpuMemoryBuffer code is also getting a drive-by optimization that will eliminate unnecessary gpu commandbuffer flushing and verified sync tokens, which result in synchronous IPCs. TBR=jwd@chromium.org Bug: 773466 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: Id0365d057e1e8c265f7d6457bfcfa211c40778f5 Reviewed-on: https://chromium-review.googlesource.com/728340 Commit-Queue: Justin Novosad <junov@chromium.org> Reviewed-by: Jesse Doherty <jwd@chromium.org> Reviewed-by: Justin Novosad <junov@chromium.org> Reviewed-by: Fernando Serboncini <fserb@chromium.org> Reviewed-by: Olivia Lai <xlai@chromium.org> Cr-Commit-Position: refs/heads/master@{#514637} [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/LayoutTests/fast/canvas/canvas-incremental-repaint.html [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/LayoutTests/fast/canvas/canvas-toDataURL-jpeg-maximum-quality.html [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/LayoutTests/fast/canvas/canvas-toDataURL-webp.html [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-lost-gpu-context.js [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-toBlob-toDataURL-race.js [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/LayoutTests/virtual/display_list_2d_canvas/fast/canvas/canvas-lost-gpu-context-expected.txt [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/LayoutTests/virtual/gpu/fast/canvas/canvas-lost-gpu-context-expected.txt [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/core/paint/HTMLCanvasPainterTest.cpp [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/BUILD.gn [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/CanvasColorParams.h [add] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/CanvasResource.cpp [add] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/CanvasResource.h [add] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.cpp [add] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.h [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/DEPS [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/GraphicsTypes.h [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/ImageBuffer.h [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/ImageBufferSurface.cpp [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/ImageBufferSurface.h [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h [modify] https://crrev.com/1559b27f89ed89733c3c38b5eb06e27259224bab/tools/metrics/histograms/enums.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/686d08a6616f09d3bbdd025f208b65de8e7cb5d9 commit 686d08a6616f09d3bbdd025f208b65de8e7cb5d9 Author: Scott Violet <sky@chromium.org> Date: Tue Nov 07 23:35:42 2017 Revert "Refactor of Canvas2DLayerBridge resource model" This reverts commit 1559b27f89ed89733c3c38b5eb06e27259224bab. Reason for revert: Reverting in hopes of fixing android builder. https://build.chromium.org/p/chromium.webkit/builders/Android%20Builder/builds/124650 output: ../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: error: obj/third_party/WebKit/Source/platform/unit_tests/Canvas2DLayerBridgeTest.o: multiple definition of 'blink::kSoftwareFallbackList' ../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: obj/third_party/WebKit/Source/platform/platform/CanvasResourceProvider.o: previous definition here ... Original change's description: > Refactor of Canvas2DLayerBridge resource model > > Transition to polymorphic RAII model. The purpose of this change > is to improve the maintainability and extendability of the code. > The GpuMemoryBuffer code is also getting a drive-by optimization > that will eliminate unnecessary gpu commandbuffer flushing and > verified sync tokens, which result in synchronous IPCs. > > TBR=jwd@chromium.org > > Bug: 773466 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 > Change-Id: Id0365d057e1e8c265f7d6457bfcfa211c40778f5 > Reviewed-on: https://chromium-review.googlesource.com/728340 > Commit-Queue: Justin Novosad <junov@chromium.org> > Reviewed-by: Jesse Doherty <jwd@chromium.org> > Reviewed-by: Justin Novosad <junov@chromium.org> > Reviewed-by: Fernando Serboncini <fserb@chromium.org> > Reviewed-by: Olivia Lai <xlai@chromium.org> > Cr-Commit-Position: refs/heads/master@{#514637} TBR=jwd@chromium.org,junov@chromium.org,fserb@chromium.org,xlai@chromium.org Change-Id: I23c79e41076c80544058bc6000fd15f1a5f92b7f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 773466 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Reviewed-on: https://chromium-review.googlesource.com/757297 Reviewed-by: Scott Violet <sky@chromium.org> Commit-Queue: Scott Violet <sky@chromium.org> Cr-Commit-Position: refs/heads/master@{#514648} [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/LayoutTests/fast/canvas/canvas-incremental-repaint.html [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/LayoutTests/fast/canvas/canvas-toDataURL-jpeg-maximum-quality.html [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/LayoutTests/fast/canvas/canvas-toDataURL-webp.html [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-lost-gpu-context.js [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-toBlob-toDataURL-race.js [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/LayoutTests/virtual/display_list_2d_canvas/fast/canvas/canvas-lost-gpu-context-expected.txt [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/LayoutTests/virtual/gpu/fast/canvas/canvas-lost-gpu-context-expected.txt [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/core/paint/HTMLCanvasPainterTest.cpp [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/BUILD.gn [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/CanvasColorParams.h [delete] https://crrev.com/f6f2018a7a59b4605a839ffa52396ceb460dac08/third_party/WebKit/Source/platform/graphics/CanvasResource.cpp [delete] https://crrev.com/f6f2018a7a59b4605a839ffa52396ceb460dac08/third_party/WebKit/Source/platform/graphics/CanvasResource.h [delete] https://crrev.com/f6f2018a7a59b4605a839ffa52396ceb460dac08/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.cpp [delete] https://crrev.com/f6f2018a7a59b4605a839ffa52396ceb460dac08/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.h [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/DEPS [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/GraphicsTypes.h [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/ImageBuffer.h [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/ImageBufferSurface.cpp [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/ImageBufferSurface.h [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h [modify] https://crrev.com/686d08a6616f09d3bbdd025f208b65de8e7cb5d9/tools/metrics/histograms/enums.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5b07996e178c5f4e153e771d48ab839867fa7440 commit 5b07996e178c5f4e153e771d48ab839867fa7440 Author: Justin Novosad <junov@chromium.org> Date: Wed Nov 08 23:26:00 2017 Reland: Refactor of Canvas2DLayerBridge resource model Transition to polymorphic RAII model. The purpose of this change is to improve the maintainability and extendability of the code. The GpuMemoryBuffer code is also getting a drive-by optimization that will eliminate unnecessary gpu commandbuffer flushing and verified sync tokens, which result in synchronous IPCs. Original code review: https://chromium-review.googlesource.com/c/chromium/src/+/728340 Fixed bad include of CanvasResourceProvider.cpp instead of .h BUG= 773466 , 768049 ,735630 TBR=fserb@chromium.org,xlai@chromium.org,mostynb@vewd.com,sky@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I143b7dc78d50ded8f1541868edecda97946e6292 Reviewed-on: https://chromium-review.googlesource.com/758562 Commit-Queue: Justin Novosad <junov@chromium.org> Reviewed-by: Justin Novosad <junov@chromium.org> Cr-Commit-Position: refs/heads/master@{#515001} [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/LayoutTests/fast/canvas/canvas-incremental-repaint.html [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/LayoutTests/fast/canvas/canvas-toDataURL-jpeg-maximum-quality.html [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/LayoutTests/fast/canvas/canvas-toDataURL-webp.html [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-lost-gpu-context.js [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-toBlob-toDataURL-race.js [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/LayoutTests/virtual/display_list_2d_canvas/fast/canvas/canvas-lost-gpu-context-expected.txt [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/LayoutTests/virtual/gpu/fast/canvas/canvas-lost-gpu-context-expected.txt [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/core/paint/HTMLCanvasPainterTest.cpp [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/BUILD.gn [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridgeTest.cpp [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/CanvasColorParams.cpp [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/CanvasColorParams.h [add] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/CanvasResource.cpp [add] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/CanvasResource.h [add] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.cpp [add] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.h [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/DEPS [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/GraphicsTypes.h [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/ImageBuffer.h [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/ImageBufferSurface.cpp [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/ImageBufferSurface.h [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h [modify] https://crrev.com/5b07996e178c5f4e153e771d48ab839867fa7440/tools/metrics/histograms/enums.xml
Comment 1 by bugdroid1@chromium.org
, Oct 11 2017