Remove GetOrCreateCanvasResourceProvider hint parameter
This parameter was unused. It was forwarded to
GetOrCreateCanvasResourceProviderImpl, which only uses the hint for 2D
HTMLCanvasElement contexts [1]. HTMLCanvasElement however overrides
GetOrCreateCanvasResourceProvider and never uses the provided hint for
2D contexts [2]. Thus, the hint was effectively never used.
[1]:
https://crsrc.org/c/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.cc;l=137;drc=700521753d9cca1d40fb19e050031b32fdfd3973
[2]:
https://crsrc.org/c/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc;l=2115;drc=78883e6c824fd669688b9943096a7b01f87c1cb5
Bug: 346766781
Change-Id: Ia4a9685f87e45a2285807d26dc7789559369cb4a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6437450
Commit-Queue: Jean-Philippe Gravel <jpgravel@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1444139}
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.cc b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.cc
index 011d405..c550889 100644
--- a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.cc
+++ b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.cc
@@ -119,9 +119,8 @@
}
CanvasResourceProvider*
-CanvasRenderingContextHost::GetOrCreateCanvasResourceProvider(
- RasterModeHint hint) {
- return GetOrCreateCanvasResourceProviderImpl(hint);
+CanvasRenderingContextHost::GetOrCreateCanvasResourceProvider() {
+ return GetOrCreateCanvasResourceProviderImpl(RasterModeHint::kPreferGPU);
}
CanvasResourceProvider*
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.h b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.h
index 8dec2f2..2de2017 100644
--- a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.h
+++ b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.h
@@ -100,8 +100,7 @@
// Partial CanvasResourceHost implementation
void InitializeForRecording(cc::PaintCanvas*) const final;
- CanvasResourceProvider* GetOrCreateCanvasResourceProvider(
- RasterModeHint hint) override;
+ CanvasResourceProvider* GetOrCreateCanvasResourceProvider() override;
void PageVisibilityChanged() override;
bool IsWebGL() const;
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
index d1645b9f..4ae4afb9 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -716,13 +716,13 @@
// all flows via which CanvasResourceProviders are or are nont created coming
// into this flow.
if (LowLatencyEnabled() && !dirty_rect_.IsEmpty()) {
- GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ GetOrCreateCanvasResourceProvider();
}
}
void HTMLCanvasElement::PostFinalizeFrame(FlushReason reason) {
if (LowLatencyEnabled() && frame_dispatcher_ && !dirty_rect_.IsEmpty() &&
- GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)) {
+ GetOrCreateCanvasResourceProvider()) {
const base::TimeTicks start_time = base::TimeTicks::Now();
if (scoped_refptr<CanvasResource> canvas_resource =
ResourceProvider()->ProduceCanvasResource(reason)) {
@@ -2112,8 +2112,7 @@
UpdateMemoryUsage();
}
-CanvasResourceProvider* HTMLCanvasElement::GetOrCreateCanvasResourceProvider(
- RasterModeHint hint) {
+CanvasResourceProvider* HTMLCanvasElement::GetOrCreateCanvasResourceProvider() {
if (IsRenderingContext2D()) {
if (!CanvasRenderingContext::
CheckProviderInCanvas2DRenderingContextIsPaintable()) {
@@ -2183,7 +2182,7 @@
return resource_provider;
}
- return CanvasRenderingContextHost::GetOrCreateCanvasResourceProvider(hint);
+ return CanvasRenderingContextHost::GetOrCreateCanvasResourceProvider();
}
CanvasResourceProvider*
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.h b/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
index 0a3e6a70..6a7b5ac 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
@@ -224,8 +224,7 @@
size_t GetMemoryUsage() const override;
bool ShouldAccelerate2dContext() const override;
bool LowLatencyEnabled() const override;
- CanvasResourceProvider* GetOrCreateCanvasResourceProvider(
- RasterModeHint hint) override;
+ CanvasResourceProvider* GetOrCreateCanvasResourceProvider() override;
bool IsPrinting() const override;
bool IsHibernating() const override;
void SetTransferToGPUTextureWasInvoked() override;
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element_test.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element_test.cc
index 2e8fbf0..1013d82 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element_test.cc
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element_test.cc
@@ -98,7 +98,7 @@
auto* canvas =
To<HTMLCanvasElement>(GetDocument().getElementById(AtomicString("c")));
CanvasResourceProvider* provider =
- canvas->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ canvas->GetOrCreateCanvasResourceProvider();
cc::PaintFlags fill_flags = FillFlags();
fill_flags.setColor(SkColors::kBlue);
@@ -132,7 +132,7 @@
auto* canvas =
To<HTMLCanvasElement>(GetDocument().getElementById(AtomicString("c")));
CanvasResourceProvider* provider =
- canvas->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ canvas->GetOrCreateCanvasResourceProvider();
cc::PaintFlags fill_flags = FillFlags();
fill_flags.setColor(SkColors::kBlue);
diff --git a/third_party/blink/renderer/core/paint/html_canvas_painter_test.cc b/third_party/blink/renderer/core/paint/html_canvas_painter_test.cc
index de50140..139e4392 100644
--- a/third_party/blink/renderer/core/paint/html_canvas_painter_test.cc
+++ b/third_party/blink/renderer/core/paint/html_canvas_painter_test.cc
@@ -79,7 +79,7 @@
attributes.alpha = true;
CanvasRenderingContext* context =
element->GetCanvasRenderingContext("2d", attributes);
- element->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ element->GetOrCreateCanvasResourceProvider();
ASSERT_EQ(context, element->RenderingContext());
// Force the page to paint.
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
index 846281c..a47de90 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
@@ -524,8 +524,7 @@
// Install a CanvasResourceProvider that is accelerated and supports direct
// compositing (the latter is necessary for GetOrCreateCcLayerIfNeeded() to
// succeed).
- CHECK(canvas_element.GetOrCreateCanvasResourceProvider(
- RasterModeHint::kPreferGPU));
+ CHECK(canvas_element.GetOrCreateCanvasResourceProvider());
// Put the host in GPU compositing mode.
canvas_element.SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
@@ -559,14 +558,11 @@
CreateContext(kNonOpaque);
EXPECT_TRUE(CanvasElement().IsResourceValid());
uint32_t gen_id =
- CanvasElement()
- .GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)
- ->ContentUniqueID();
+ CanvasElement().GetOrCreateCanvasResourceProvider()->ContentUniqueID();
Context2D()->fillRect(3, 3, 1, 1);
- EXPECT_EQ(gen_id,
- CanvasElement()
- .GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)
- ->ContentUniqueID());
+ EXPECT_EQ(
+ gen_id,
+ CanvasElement().GetOrCreateCanvasResourceProvider()->ContentUniqueID());
}
TEST_P(CanvasRenderingContext2DTest, NonDisplayedCanvasIsNotRateLimited) {
@@ -1469,9 +1465,7 @@
EXPECT_TRUE(Context2D()->getContextAttributes()->desynchronized());
EXPECT_TRUE(CanvasElement().LowLatencyEnabled());
EXPECT_FALSE(
- CanvasElement()
- .GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferCPU)
- ->IsSingleBuffered());
+ CanvasElement().GetOrCreateCanvasResourceProvider()->IsSingleBuffered());
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kCPU);
}
@@ -1728,7 +1722,7 @@
kNonOpaque, kNormalLatency,
CanvasContextCreationAttributesCore::WillReadFrequently::kUndefined,
canvas);
- canvas->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ canvas->GetOrCreateCanvasResourceProvider();
// Expect that at least the first 10 are accelerated. The exact number
// depends on the feature params.
if (i < 10) {
@@ -1747,8 +1741,7 @@
TEST_P(CanvasRenderingContext2DTestAccelerated, GetImage) {
CreateContext(kNonOpaque);
- ASSERT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider(
- RasterModeHint::kPreferGPU));
+ ASSERT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider());
ASSERT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
ASSERT_TRUE(CanvasElement().IsResourceValid());
@@ -1769,8 +1762,7 @@
NoRegenerationOfTransferableResourceWhenAlreadyInCcLayer) {
CreateContext(kNonOpaque);
- ASSERT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider(
- RasterModeHint::kPreferGPU));
+ ASSERT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider());
// Invoking PrepareTransferableResource() has a precondition that a CC layer
// is present.
@@ -1799,21 +1791,18 @@
GetResourceProviderAfterContextLoss) {
CreateContext(kNonOpaque);
- EXPECT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider(
- RasterModeHint::kPreferGPU));
+ EXPECT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider());
EXPECT_TRUE(CanvasElement().IsResourceValid());
test_context_provider_->TestContextGL()->set_context_lost(true);
- EXPECT_EQ(nullptr, CanvasElement().GetOrCreateCanvasResourceProvider(
- RasterModeHint::kPreferGPU));
+ EXPECT_EQ(nullptr, CanvasElement().GetOrCreateCanvasResourceProvider());
}
TEST_P(CanvasRenderingContext2DTestAccelerated,
PrepareTransferableResourceAfterContextLoss) {
CreateContext(kNonOpaque);
- ASSERT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider(
- RasterModeHint::kPreferGPU));
+ ASSERT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider());
// Invoking PrepareTransferableResource() has a precondition that a CC layer
// is present.
@@ -1839,8 +1828,7 @@
test_context_provider_->TestContextGL()->set_context_lost(true);
- ASSERT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider(
- RasterModeHint::kPreferGPU));
+ ASSERT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider());
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kCPU);
EXPECT_TRUE(CanvasElement().IsResourceValid());
@@ -1979,7 +1967,7 @@
scoped_feature_list.InitWithFeatures({features::kCanvas2DHibernation}, {});
CreateContext(kNonOpaque);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
auto& handler = CHECK_DEREF(CanvasElement().GetHibernationHandler());
@@ -2038,7 +2026,7 @@
scoped_feature_list.InitWithFeatures({features::kCanvas2DHibernation}, {});
CreateContext(kNonOpaque);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
auto& handler = CHECK_DEREF(CanvasElement().GetHibernationHandler());
@@ -2116,7 +2104,7 @@
scoped_feature_list.InitWithFeatures({features::kCanvas2DHibernation}, {});
CreateContext(kNonOpaque);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
auto& handler = CHECK_DEREF(CanvasElement().GetHibernationHandler());
@@ -2174,7 +2162,7 @@
{features::kIsPaintableChecksResourceProviderInsteadOfBridge});
CreateContext(kNonOpaque);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
auto& handler = CHECK_DEREF(CanvasElement().GetHibernationHandler());
@@ -2233,7 +2221,7 @@
{});
CreateContext(kNonOpaque);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
auto& handler = CHECK_DEREF(CanvasElement().GetHibernationHandler());
@@ -2286,7 +2274,7 @@
scoped_feature_list.InitWithFeatures({features::kCanvas2DHibernation}, {});
CreateContext(kNonOpaque);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
ASSERT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
// Install a minimal delay for testing to ensure that the test remains fast
@@ -2340,7 +2328,7 @@
scoped_feature_list.InitWithFeatures({features::kCanvas2DHibernation}, {});
CreateContext(kNonOpaque);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
ASSERT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
// Install a minimal delay for testing to ensure that the test remains fast
@@ -2383,7 +2371,7 @@
scoped_feature_list.InitWithFeatures({features::kCanvas2DHibernation}, {});
CreateContext(kNonOpaque);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
auto& handler = CHECK_DEREF(CanvasElement().GetHibernationHandler());
@@ -2660,7 +2648,7 @@
scoped_feature_list.InitWithFeatures({features::kCanvas2DHibernation}, {});
CreateContext(kNonOpaque);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
auto& handler = CHECK_DEREF(CanvasElement().GetHibernationHandler());
base::RunLoop run_loop;
@@ -2717,8 +2705,7 @@
scoped_feature_list.InitWithFeatures({features::kCanvas2DHibernation}, {});
CreateContext(kNonOpaque);
- ASSERT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider(
- RasterModeHint::kPreferGPU));
+ ASSERT_TRUE(CanvasElement().GetOrCreateCanvasResourceProvider());
ASSERT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
auto& handler = CHECK_DEREF(CanvasElement().GetHibernationHandler());
@@ -2924,9 +2911,7 @@
EXPECT_FALSE(Context2D()->getContextAttributes()->willReadFrequently());
EXPECT_TRUE(CanvasElement().LowLatencyEnabled());
EXPECT_FALSE(
- CanvasElement()
- .GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)
- ->IsSingleBuffered());
+ CanvasElement().GetOrCreateCanvasResourceProvider()->IsSingleBuffered());
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
}
@@ -2935,7 +2920,7 @@
CreateContext(kNonOpaque);
// No need to set-up the layer bridge when testing low latency mode.
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
gfx::Size visible_size(10, 10);
@@ -2966,7 +2951,7 @@
CreateContext(kNonOpaque);
// Ensure that the ResourceProvider and canvas are created.
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferCPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
// Set a transform.
Context2D()->translate(5, 0);
@@ -2986,7 +2971,7 @@
CreateContext(kNonOpaque);
// Ensure that the ResourceProvider and canvas are created.
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferCPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
// Set a transform.
Context2D()->translate(5, 0);
@@ -3028,7 +3013,7 @@
ScopedCanvas2dLayersForTest layer_feature{/*enabled=*/true};
CreateContext(kNonOpaque);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
NonThrowableExceptionState exception_state;
Context2D()->fillRect(10, 10, 20, 20);
@@ -3070,7 +3055,7 @@
kNonOpaque, kNormalLatency,
CanvasContextCreationAttributesCore::WillReadFrequently::kUndefined,
canvas);
- canvas->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ canvas->GetOrCreateCanvasResourceProvider();
EXPECT_TRUE(canvas->IsAccelerated());
canvas->DisableAcceleration();
}
@@ -3089,7 +3074,7 @@
CreateContext(
kNonOpaque, kNormalLatency,
CanvasContextCreationAttributesCore::WillReadFrequently::kUndefined);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
// Because a bunch of canvases had acceleration explicitly disabled, canvases
// created with `kUndefined` should start with acceleration disabled.
EXPECT_FALSE(CanvasElement().IsAccelerated());
@@ -3101,7 +3086,7 @@
CreateContext(
kNonOpaque, kNormalLatency,
CanvasContextCreationAttributesCore::WillReadFrequently::kFalse);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
// Canvases created with `kFalse` should always start with acceleration
// enabled regardless of how many canvases had acceleration disabled.
EXPECT_TRUE(CanvasElement().IsAccelerated());
@@ -3112,7 +3097,7 @@
CreateAlotOfCanvasesWithAccelerationExplicitlyDisabled();
CreateContext(kNonOpaque, kNormalLatency,
CanvasContextCreationAttributesCore::WillReadFrequently::kTrue);
- CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ CanvasElement().GetOrCreateCanvasResourceProvider();
// Canvases created with `kTrue` should always start with acceleration
// disabled regardless of how many canvases had acceleration explicitly
// disabled.
@@ -3159,19 +3144,16 @@
EXPECT_FALSE(Context2D()->getContextAttributes()->willReadFrequently());
EXPECT_TRUE(CanvasElement().LowLatencyEnabled());
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
- EXPECT_TRUE(CanvasElement()
- .GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)
- ->IsSingleBuffered());
- auto frame1_resource =
- CanvasElement()
- .GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)
- ->ProduceCanvasResource(FlushReason::kTesting);
+ EXPECT_TRUE(
+ CanvasElement().GetOrCreateCanvasResourceProvider()->IsSingleBuffered());
+ auto frame1_resource = CanvasElement()
+ .GetOrCreateCanvasResourceProvider()
+ ->ProduceCanvasResource(FlushReason::kTesting);
EXPECT_TRUE(frame1_resource);
DrawSomething();
- auto frame2_resource =
- CanvasElement()
- .GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)
- ->ProduceCanvasResource(FlushReason::kTesting);
+ auto frame2_resource = CanvasElement()
+ .GetOrCreateCanvasResourceProvider()
+ ->ProduceCanvasResource(FlushReason::kTesting);
EXPECT_TRUE(frame2_resource);
EXPECT_EQ(frame1_resource.get(), frame2_resource.get());
}
@@ -3209,19 +3191,16 @@
EXPECT_FALSE(Context2D()->getContextAttributes()->willReadFrequently());
EXPECT_TRUE(CanvasElement().LowLatencyEnabled());
EXPECT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
- EXPECT_TRUE(CanvasElement()
- .GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)
- ->IsSingleBuffered());
- auto frame1_resource =
- CanvasElement()
- .GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)
- ->ProduceCanvasResource(FlushReason::kTesting);
+ EXPECT_TRUE(
+ CanvasElement().GetOrCreateCanvasResourceProvider()->IsSingleBuffered());
+ auto frame1_resource = CanvasElement()
+ .GetOrCreateCanvasResourceProvider()
+ ->ProduceCanvasResource(FlushReason::kTesting);
EXPECT_TRUE(frame1_resource);
DrawSomething();
- auto frame2_resource =
- CanvasElement()
- .GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)
- ->ProduceCanvasResource(FlushReason::kTesting);
+ auto frame2_resource = CanvasElement()
+ .GetOrCreateCanvasResourceProvider()
+ ->ProduceCanvasResource(FlushReason::kTesting);
EXPECT_TRUE(frame2_resource);
EXPECT_EQ(frame1_resource.get(), frame2_resource.get());
}
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
index 5c6e5b2..af09a7a 100644
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -843,7 +843,7 @@
int height = GetDrawingBuffer()->Size().height();
if (PaintRenderingResultsToCanvas(kBackBuffer)) {
- if (Host()->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)) {
+ if (Host()->GetOrCreateCanvasResourceProvider()) {
Host()->Commit(
Host()->ResourceProvider()->ProduceCanvasResource(FlushReason::kNone),
SkIRect::MakeWH(width, height));
@@ -1694,7 +1694,7 @@
bool WebGLRenderingContextBase::PushFrameWithCopy() {
bool submitted_frame = false;
if (PaintRenderingResultsToCanvas(kBackBuffer)) {
- if (Host()->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU)) {
+ if (Host()->GetOrCreateCanvasResourceProvider()) {
const int width = GetDrawingBuffer()->Size().width();
const int height = GetDrawingBuffer()->Size().height();
submitted_frame =
@@ -1901,7 +1901,7 @@
must_paint_to_canvas_ = false;
CanvasResourceProvider* resource_provider =
- Host()->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ Host()->GetOrCreateCanvasResourceProvider();
if (!resource_provider)
return false;
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc b/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc
index c95cd60..fbe78c4 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_canvas_context.cc
@@ -200,7 +200,7 @@
}
CanvasResourceProvider* resource_provider =
- Host()->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ Host()->GetOrCreateCanvasResourceProvider();
if (!resource_provider) {
return false;
}
diff --git a/third_party/blink/renderer/platform/graphics/canvas_hibernation_handler_test.cc b/third_party/blink/renderer/platform/graphics/canvas_hibernation_handler_test.cc
index 06f5ca9..fad70fad 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_hibernation_handler_test.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_hibernation_handler_test.cc
@@ -109,9 +109,7 @@
}
void Draw(CanvasResourceHost& host) {
- CanvasResourceProvider* provider = host.GetOrCreateCanvasResourceProvider(
- host.GetRasterMode() == RasterMode::kGPU ? RasterModeHint::kPreferGPU
- : RasterModeHint::kPreferCPU);
+ CanvasResourceProvider* provider = host.GetOrCreateCanvasResourceProvider();
provider->Canvas().drawLine(0, 0, 2, 2, cc::PaintFlags());
provider->FlushCanvas(FlushReason::kTesting);
}
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_host.h b/third_party/blink/renderer/platform/graphics/canvas_resource_host.h
index d0812df..fdb52a0d 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_resource_host.h
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_host.h
@@ -58,11 +58,10 @@
virtual void UpdateMemoryUsage() = 0;
virtual size_t GetMemoryUsage() const = 0;
virtual void PageVisibilityChanged() {}
- virtual CanvasResourceProvider* GetOrCreateCanvasResourceProvider(
- RasterModeHint hint) = 0;
+ virtual CanvasResourceProvider* GetOrCreateCanvasResourceProvider() = 0;
CanvasResourceProvider*
GetOrCreateResourceProviderWithCurrentRasterModeHint() {
- return GetOrCreateCanvasResourceProvider(preferred_2d_raster_mode());
+ return GetOrCreateCanvasResourceProvider();
}
// Initialize the indicated cc::Layer with the HTMLCanvasElement's CSS
@@ -100,10 +99,6 @@
virtual bool PrintedInCurrentTask() const = 0;
virtual bool IsHibernating() const { return false; }
- RasterModeHint preferred_2d_raster_mode() const {
- return preferred_2d_raster_mode_;
- }
-
bool ShouldTryToUseGpuRaster() const;
void SetPreferred2DRasterMode(RasterModeHint);
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_host_test.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_host_test.cc
index 69d4d7a5..0afc641 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_resource_host_test.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_host_test.cc
@@ -37,7 +37,7 @@
InitializeSharedGpuContextGLES2(context.get());
auto host = std::make_unique<FakeCanvasResourceHost>(gfx::Size(100, 100));
- host->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ host->GetOrCreateCanvasResourceProvider();
host->GetOrCreateCcLayerIfNeeded();
// Prepare a TransferableResource, then report the resource as lost.
@@ -60,7 +60,7 @@
InitializeSharedGpuContextGLES2(context.get());
auto host = std::make_unique<FakeCanvasResourceHost>(gfx::Size(100, 100));
- host->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ host->GetOrCreateCanvasResourceProvider();
host->GetOrCreateCcLayerIfNeeded();
viz::TransferableResource resource;
@@ -87,7 +87,7 @@
InitializeSharedGpuContextGLES2(context.get());
auto host = std::make_unique<FakeCanvasResourceHost>(gfx::Size(100, 100));
- host->GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+ host->GetOrCreateCanvasResourceProvider();
host->GetOrCreateCcLayerIfNeeded();
viz::TransferableResource resource;
diff --git a/third_party/blink/renderer/platform/graphics/test/fake_canvas_resource_host.h b/third_party/blink/renderer/platform/graphics/test/fake_canvas_resource_host.h
index 5c5d8dc1..d26ed29 100644
--- a/third_party/blink/renderer/platform/graphics/test/fake_canvas_resource_host.h
+++ b/third_party/blink/renderer/platform/graphics/test/fake_canvas_resource_host.h
@@ -35,9 +35,8 @@
is_hibernating_ = is_hibernating;
}
size_t GetMemoryUsage() const override { return 0; }
- CanvasResourceProvider* GetOrCreateCanvasResourceProvider(
- RasterModeHint hint) override {
- return GetOrCreateCanvasResourceProviderImpl(hint);
+ CanvasResourceProvider* GetOrCreateCanvasResourceProvider() override {
+ return GetOrCreateCanvasResourceProviderImpl(RasterModeHint::kPreferGPU);
}
CanvasResourceProvider* GetOrCreateCanvasResourceProviderImpl(
RasterModeHint hint) override {