Pass SkColor4f to DrawPlatformFocusRing()

Adjust callers to reduce impedance mismatch. Change the DarkModeColor()
helper in graphics_context.cc to use SkColor4f.

Change-Id: Ia7c40ec5ee9f9a91ed3cf9bf7a4f826586a3df5a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5317751
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/main@{#1264102}
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
index 2eb7cc8..13df7bd 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -780,7 +780,8 @@
       color_scheme = style->UsedColorScheme();
   }
 
-  SkColor color = LayoutTheme::GetTheme().FocusRingColor(color_scheme).Rgb();
+  const SkColor4f color =
+      LayoutTheme::GetTheme().FocusRingColor(color_scheme).toSkColor4f();
   const int kFocusRingWidth = 5;
   DrawPlatformFocusRing(path.GetSkPath(), GetPaintCanvas(), color,
                         /*width=*/kFocusRingWidth,
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.cc b/third_party/blink/renderer/platform/graphics/graphics_context.cc
index 5dd15e1c..fab4249 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context.cc
+++ b/third_party/blink/renderer/platform/graphics/graphics_context.cc
@@ -86,14 +86,13 @@
   return {gfx::Point(pt.x(), y), gfx::Point(pt.x() + width, y)};
 }
 
-Color DarkModeColor(GraphicsContext& context,
-                    const Color& color,
-                    const AutoDarkMode& auto_dark_mode) {
+SkColor4f DarkModeColor(GraphicsContext& context,
+                        const SkColor4f& color,
+                        const AutoDarkMode& auto_dark_mode) {
   if (auto_dark_mode.enabled) {
-    return Color::FromSkColor4f(
-        context.GetDarkModeFilter()->InvertColorIfNeeded(
-            color.toSkColor4f(), auto_dark_mode.role,
-            SkColor4f::FromColor(auto_dark_mode.contrast_color)));
+    return context.GetDarkModeFilter()->InvertColorIfNeeded(
+        color, auto_dark_mode.role,
+        SkColor4f::FromColor(auto_dark_mode.contrast_color));
   }
   return color;
 }
@@ -350,9 +349,9 @@
                                         float width,
                                         float corner_radius,
                                         const AutoDarkMode& auto_dark_mode) {
-  DrawPlatformFocusRing(path, canvas_,
-                        DarkModeColor(*this, color, auto_dark_mode).Rgb(),
-                        width, corner_radius);
+  DrawPlatformFocusRing(
+      path, canvas_, DarkModeColor(*this, color.toSkColor4f(), auto_dark_mode),
+      width, corner_radius);
 }
 
 void GraphicsContext::DrawFocusRingRect(const SkRRect& rrect,
@@ -360,7 +359,8 @@
                                         float width,
                                         const AutoDarkMode& auto_dark_mode) {
   DrawPlatformFocusRing(
-      rrect, canvas_, DarkModeColor(*this, color, auto_dark_mode).Rgb(), width);
+      rrect, canvas_, DarkModeColor(*this, color.toSkColor4f(), auto_dark_mode),
+      width);
 }
 
 static void EnforceDotsAtEndpoints(GraphicsContext& context,
diff --git a/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc b/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc
index 436b5ac..5d744e1 100644
--- a/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc
+++ b/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc
@@ -390,7 +390,7 @@
   return skcms_ApproximatelyEqualProfiles(&src_profile, &dst_profile);
 }
 
-static cc::PaintFlags PaintFlagsForFocusRing(SkColor color, float width) {
+static cc::PaintFlags PaintFlagsForFocusRing(SkColor4f color, float width) {
   cc::PaintFlags flags;
   flags.setAntiAlias(true);
   flags.setStyle(cc::PaintFlags::kStroke_Style);
@@ -401,14 +401,14 @@
 
 void DrawPlatformFocusRing(const SkRRect& rrect,
                            cc::PaintCanvas* canvas,
-                           SkColor color,
+                           SkColor4f color,
                            float width) {
   canvas->drawRRect(rrect, PaintFlagsForFocusRing(color, width));
 }
 
 void DrawPlatformFocusRing(const SkPath& path,
                            cc::PaintCanvas* canvas,
-                           SkColor color,
+                           SkColor4f color,
                            float width,
                            float corner_radius) {
   cc::PaintFlags path_flags = PaintFlagsForFocusRing(color, width);
diff --git a/third_party/blink/renderer/platform/graphics/skia/skia_utils.h b/third_party/blink/renderer/platform/graphics/skia/skia_utils.h
index d9d2db0..746489a 100644
--- a/third_party/blink/renderer/platform/graphics/skia/skia_utils.h
+++ b/third_party/blink/renderer/platform/graphics/skia/skia_utils.h
@@ -147,11 +147,11 @@
 
 void PLATFORM_EXPORT DrawPlatformFocusRing(const SkRRect&,
                                            cc::PaintCanvas*,
-                                           SkColor,
+                                           SkColor4f,
                                            float width);
 void PLATFORM_EXPORT DrawPlatformFocusRing(const SkPath&,
                                            cc::PaintCanvas*,
-                                           SkColor,
+                                           SkColor4f,
                                            float width,
                                            float corner_radius);