[blink] Remove use of SkPathBuilder

This was an API refactor that never worked out. Switching back to
SkPath, so we can delete the code from Skia.

Bug: b/335431546
Change-Id: I12a6e55000d84b473da94c467f0b00d14c94aa3a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5463021
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
Cr-Commit-Position: refs/heads/main@{#1288885}
diff --git a/third_party/blink/renderer/core/paint/box_border_painter.cc b/third_party/blink/renderer/core/paint/box_border_painter.cc
index 3cc60bf..d260084 100644
--- a/third_party/blink/renderer/core/paint/box_border_painter.cc
+++ b/third_party/blink/renderer/core/paint/box_border_painter.cc
@@ -380,13 +380,13 @@
                  const gfx::PointF vertices[],
                  unsigned vertices_size,
                  bool antialiased) {
-  SkPathBuilder path;
+  SkPath path;
   path.moveTo(gfx::PointFToSkPoint(vertices[0]));
   for (unsigned i = 1; i < vertices_size; ++i) {
     path.lineTo(gfx::PointFToSkPoint(vertices[i]));
   }
 
-  context.ClipPath(path.detach(), antialiased ? kAntiAliased : kNotAntiAliased);
+  context.ClipPath(path, antialiased ? kAntiAliased : kNotAntiAliased);
 }
 
 void DrawDashedOrDottedBoxSide(GraphicsContext& context,
@@ -662,7 +662,7 @@
               const Color& color,
               bool antialias,
               const AutoDarkMode& auto_dark_mode) {
-  SkPathBuilder path;
+  SkPath path;
   path.moveTo(gfx::PointFToSkPoint(quad[0]));
   path.lineTo(gfx::PointFToSkPoint(quad[1]));
   path.lineTo(gfx::PointFToSkPoint(quad[2]));
@@ -671,7 +671,7 @@
   flags.setAntiAlias(antialias);
   flags.setColor(color.toSkColor4f());
 
-  context.DrawPath(path.detach(), flags, auto_dark_mode);
+  context.DrawPath(path, flags, auto_dark_mode);
 }
 
 void DrawSolidBoxSide(GraphicsContext& context,
diff --git a/third_party/blink/renderer/core/paint/scrollable_area_painter.cc b/third_party/blink/renderer/core/paint/scrollable_area_painter.cc
index ccf0c30..f6f3ecb 100644
--- a/third_party/blink/renderer/core/paint/scrollable_area_painter.cc
+++ b/third_party/blink/renderer/core/paint/scrollable_area_painter.cc
@@ -140,7 +140,7 @@
   paint_flags.setStyle(cc::PaintFlags::kStroke_Style);
   paint_flags.setStrokeWidth(std::ceil(paint_scale));
 
-  SkPathBuilder line_path;
+  SkPath line_path;
 
   AutoDarkMode auto_dark_mode(
       PaintAutoDarkMode(GetScrollableArea().GetLayoutBox()->StyleRef(),
@@ -152,18 +152,19 @@
   line_path.moveTo(points[2].x(), points[2].y());
   line_path.lineTo(points[3].x(), points[3].y());
   paint_flags.setColor(SkColorSetARGB(153, 0, 0, 0));
-  context.DrawPath(line_path.detach(), paint_flags, auto_dark_mode);
+  context.DrawPath(line_path, paint_flags, auto_dark_mode);
 
   // Draw a light line one pixel below the light line,
   // to ensure contrast against a dark background
   int v_offset = std::ceil(paint_scale);
   int h_offset = on_left ? -v_offset : v_offset;
+  line_path.reset();
   line_path.moveTo(points[0].x(), points[0].y() + v_offset);
   line_path.lineTo(points[1].x() + h_offset, points[1].y());
   line_path.moveTo(points[2].x(), points[2].y() + v_offset);
   line_path.lineTo(points[3].x() + h_offset, points[3].y());
   paint_flags.setColor(SkColorSetARGB(153, 255, 255, 255));
-  context.DrawPath(line_path.detach(), paint_flags, auto_dark_mode);
+  context.DrawPath(line_path, paint_flags, auto_dark_mode);
 }
 
 bool ScrollableAreaPainter::PaintOverflowControls(
diff --git a/third_party/blink/renderer/core/paint/styleable_marker_painter.cc b/third_party/blink/renderer/core/paint/styleable_marker_painter.cc
index 9eb34c2..4d149a5 100644
--- a/third_party/blink/renderer/core/paint/styleable_marker_painter.cc
+++ b/third_party/blink/renderer/core/paint/styleable_marker_painter.cc
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_shader.h"
 #include "third_party/blink/renderer/platform/graphics/styled_stroke_data.h"
-#include "third_party/skia/include/core/SkPathBuilder.h"
+#include "third_party/skia/include/core/SkPath.h"
 
 namespace blink {
 
@@ -36,7 +36,7 @@
 
   // Adjust the phase such that f' == 0 is "pixel"-centered
   // (for optimal rasterization at native rez).
-  SkPathBuilder path;
+  SkPath path;
   path.moveTo(kMarkerWidth * -3 / 8, kMarkerHeight * 3 / 4);
   path.cubicTo(kMarkerWidth * -1 / 8, kMarkerHeight * 3 / 4,
                kMarkerWidth * -1 / 8, kMarkerHeight * 1 / 4,
@@ -56,7 +56,7 @@
 
   PaintRecorder recorder;
   recorder.beginRecording();
-  recorder.getRecordingCanvas()->drawPath(path.detach(), flags);
+  recorder.getRecordingCanvas()->drawPath(path, flags);
 
   return recorder.finishRecordingAsPicture();
 }
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
index 46bf928..128349c 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -79,7 +79,7 @@
 #include "third_party/blink/renderer/platform/image-encoders/image_encoder_utils.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/skia/include/core/SkPathBuilder.h"
+#include "third_party/skia/include/core/SkPath.h"
 #include "ui/gfx/geometry/quad_f.h"
 #include "ui/gfx/geometry/skia_conversions.h"
 
@@ -1409,11 +1409,11 @@
   DCHECK_EQ(flags->getStyle(), cc::PaintFlags::kStroke_Style);
   if ((rect.width() > 0) != (rect.height() > 0)) {
     // When stroking, we must skip the zero-dimension segments
-    SkPathBuilder path;
+    SkPath path;
     path.moveTo(rect.x(), rect.y());
     path.lineTo(rect.right(), rect.bottom());
     path.close();
-    canvas->drawPath(path.detach(), *flags);
+    canvas->drawPath(path, *flags);
     return;
   }
   canvas->drawRect(gfx::RectFToSkRect(rect), *flags);
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.cc b/third_party/blink/renderer/platform/graphics/graphics_context.cc
index e31b5e0f..a7a4cac 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context.cc
+++ b/third_party/blink/renderer/platform/graphics/graphics_context.cc
@@ -963,11 +963,11 @@
   } else if (valid_w || valid_h) {
     // we are expected to respect the lineJoin, so we can't just call
     // drawLine -- we have to create a path that doubles back on itself.
-    SkPathBuilder path;
+    SkPath path;
     path.moveTo(r.fLeft, r.fTop);
     path.lineTo(r.fRight, r.fBottom);
     path.close();
-    DrawPath(path.detach(), flags, auto_dark_mode);
+    DrawPath(path, flags, auto_dark_mode);
   }
 }
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.cc b/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.cc
index f1a1f18..e80d53c0 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.cc
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.cc
@@ -1879,14 +1879,13 @@
     return;
 
   DrawingRecorder recorder(context, client, type, gfx::Rect(0, 0, 100, 100));
-  SkPathBuilder builder;
-  builder.moveTo(0, 0);
-  builder.lineTo(0, 100);
-  builder.lineTo(50, 50);
-  builder.lineTo(100, 100);
-  builder.lineTo(100, 0);
-  builder.close();
-  SkPath path = builder.detach();
+  SkPath path;
+  path.moveTo(0, 0);
+  path.lineTo(0, 100);
+  path.lineTo(50, 50);
+  path.lineTo(100, 100);
+  path.lineTo(100, 0);
+  path.close();
   cc::PaintFlags flags;
   flags.setAntiAlias(true);
   for (unsigned i = 0; i < count; i++)
diff --git a/third_party/blink/renderer/platform/graphics/path.h b/third_party/blink/renderer/platform/graphics/path.h
index 9dfd597..6a93081 100644
--- a/third_party/blink/renderer/platform/graphics/path.h
+++ b/third_party/blink/renderer/platform/graphics/path.h
@@ -37,7 +37,6 @@
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/skia/include/core/SkPath.h"
-#include "third_party/skia/include/core/SkPathBuilder.h"
 #include "third_party/skia/include/core/SkPathMeasure.h"
 #include "ui/gfx/geometry/transform.h"