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

Issue 773466 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Nov 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task

Blocking:
issue 776800



Sign in to add a comment

Refactor Canvas2DLayerBridge to use Resource+Provider model + RAII design

Project Member Reported by junov@chromium.org, Oct 10 2017

Issue description

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.
 
Project Member

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

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

Project Member

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

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

Comment 3 by xlai@chromium.org, Oct 20 2017

Blocking: 776800

Comment 4 by xlai@chromium.org, Oct 20 2017

Labels: CanvasVizification

Comment 5 by xlai@chromium.org, Oct 20 2017

Labels: -Type-Bug Type-Task
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 7 2017

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

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 7 2017

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

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 8 2017

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 9 by junov@chromium.org, Nov 9 2017

Status: Fixed (was: Assigned)

Sign in to add a comment