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 {