Revert "move pathops into a module"

This reverts commit 5c514284c390b5d3c653b39c9a66a6ea7765fd60.

Reason for revert: breaks some chromium builds
https://ci.chromium.org/ui/p/chrome/builders/try/linux-chrome-dbg-cog-cache-warmer

[296/91641] SOLINK ./libcomponents_optimization_guide_internal_standalone_skia.so
python3 ../../build/toolchain/gcc_solink_wrapper.py --readelf=../../third_party/llvm-build/Release+Asserts/bin/llvm-readelf --nm=../../third_p...(too long)
ld.lld: error: obj/components/optimization_guide/internal/standalone_skia/skia/SkClipStackUtils.o: DWARF unit at offset 0x00000000 has unsupported version 0, supported are 2-5
ld.lld: error: undefined symbol: Op(SkPath const&, SkPath const&, SkPathOp, SkPath*)
>>> referenced by SkClipStackUtils.cpp
>>>               obj/components/optimization_guide/internal/standalone_skia/skia/SkClipStackUtils.o:(SkClipStack_AsPath(SkClipStack const&, SkPath*))
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Original change's description:
> move pathops into a module
>
> Goal is to make it clear what parts of the source base are
> fundamental to core, and which are optional. Modules captures that
> notion pretty well.
>
> Note: The printing backends (PDF, XPS) are possibly candidates to move
> into modules as well -- they are clearly optional (to the core) just
> like SVG or Shaper.
>
> Change-Id: I9d5d51b380a290c419295da8277590607d007192
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/999760
> Reviewed-by: Kaylee Lubick <kjlubick@google.com>
> Reviewed-by: Florin Malita <fmalita@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Florin Malita <fmalita@google.com>

Change-Id: I618732ff4d13d7c588b26f294de7a9afc8ba2fc6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1008156
Reviewed-by: Florin Malita <fmalita@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Florin Malita <fmalita@google.com>
diff --git a/BUILD.bazel b/BUILD.bazel
index 169686c..b9f6676 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -23,7 +23,7 @@
 
 alias(
     name = "pathops",
-    actual = "//modules/pathops:pathops",
+    actual = "//src/pathops:pathops",
     visibility = ["//visibility:public"],
 )
 
diff --git a/BUILD.gn b/BUILD.gn
index 8831455..39b9ee5 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1858,7 +1858,10 @@
 
   deps = [ ":hsw" ]
 
-  sources = [
+  sources = []
+  sources += skia_legacy_pathops_sources
+  sources += skia_legacy_pathops_public
+  sources += [
     "src/base/SkArenaAlloc.cpp",
     "src/base/SkBezierCurves.cpp",
     "src/base/SkContainers.cpp",
@@ -1916,7 +1919,6 @@
 group("modules") {
   deps = [
     "modules/bentleyottmann",
-    "modules/pathops",
     "modules/skottie",
     "modules/skparagraph",
     "modules/skshaper",
@@ -1954,7 +1956,6 @@
     "include/svg",
     "include/utils",
     "include/utils/mac",
-    "modules/pathops/include",
     "modules/skottie/include",
     "modules/skparagraph/include",
     "modules/skshaper/include",
@@ -2002,7 +2003,6 @@
         ":gpu_tool_utils",
         ":skia",
         ":skia.h",
-        "modules/pathops",
         "modules/skottie",
         "modules/skparagraph",
         "modules/skshaper",
@@ -2031,7 +2031,6 @@
     deps = [
       ":skia",
       ":skia.h",
-      "modules/pathops",
       "modules/skottie",
       "modules/skshaper",
     ]
@@ -2488,7 +2487,6 @@
       ":flags",
       ":skia",
       ":tool_utils",
-      "modules/pathops",
       "modules/skottie",
       "modules/skottie:gm",
       "modules/skparagraph",
@@ -2682,7 +2680,6 @@
         ":tests",
         ":tool_utils",
         ":trace",
-        "modules/pathops",
         "modules/skottie",
         "modules/skottie:utils",
         "modules/skshaper",
@@ -2795,7 +2792,6 @@
       sources = [ "tools/using_skia_and_harfbuzz.cpp" ]
       deps = [
         ":skia",
-        "modules/pathops",
         "modules/skshaper",
       ]
     }
diff --git a/bazel/exporter/gni_exporter.go b/bazel/exporter/gni_exporter.go
index 8ed6af8..b5da328 100644
--- a/bazel/exporter/gni_exporter.go
+++ b/bazel/exporter/gni_exporter.go
@@ -69,6 +69,12 @@
 skia_codec_rust_png_ffi_crate_root = "$_experimental/rust_png/ffi/FFI.rs"
 `
 
+// The footer written to gn/core.gni.
+const coreGNIFooter = `skia_core_sources += skia_legacy_pathops_sources
+
+skia_core_public += skia_legacy_pathops_public
+`
+
 // The footer written to gn/sksl_tests.gni.
 const skslTestsFooter = `sksl_glsl_tests_sources =
     sksl_error_tests + sksl_glsl_tests + sksl_inliner_tests +
@@ -115,6 +121,7 @@
 // Map of GNI file names to footer text to be appended to the end of the file.
 var footerMap = map[string]string{
 	"gn/codec.gni":                  codecGNIFooter,
+	"gn/core.gni":                   coreGNIFooter,
 	"gn/ports.gni":                  portsFooter,
 	"gn/sksl_tests.gni":             skslTestsFooter,
 	"modules/skshaper/skshaper.gni": skshaperFooter,
diff --git a/bazel/exporter/gni_exporter_test.go b/bazel/exporter/gni_exporter_test.go
index e3ac9fd..d6381cb 100644
--- a/bazel/exporter/gni_exporter_test.go
+++ b/bazel/exporter/gni_exporter_test.go
@@ -43,6 +43,10 @@
   "$_src/opts/SkBlitRow_opts.h",
 ]
 
+skia_core_sources += skia_legacy_pathops_sources
+
+skia_core_public += skia_legacy_pathops_public
+
 `
 
 var exportDescs = []GNIExportDesc{
diff --git a/bazel/exporter_tool/main.go b/bazel/exporter_tool/main.go
index 5201da4..8e20bd9 100644
--- a/bazel/exporter_tool/main.go
+++ b/bazel/exporter_tool/main.go
@@ -118,6 +118,13 @@
 				"//src/text:text_hdrs",
 				"//src/text:text_srcs",
 			}},
+		{Var: "skia_legacy_pathops_public",
+			Rules: []string{"//include/pathops:public_hdrs"}},
+		{Var: "skia_legacy_pathops_sources",
+			Rules: []string{
+				"//src/pathops:_pathops_hdrs",
+				"//src/pathops:_pathops_srcs",
+			}},
 		{Var: "skia_encode_public",
 			Rules: []string{"//include/encode:encode_hdrs"}},
 		{Var: "skia_encode_srcs",
@@ -614,15 +621,6 @@
 				"//modules/svg/src:srcs",
 			}},
 	}},
-	{GNI: "modules/pathops/pathops.gni", Vars: []exporter.GNIFileListExportDesc{
-		{Var: "skia_pathops_public",
-			Rules: []string{"//modules/pathops/include:hdrs"}},
-		{Var: "skia_pathops_sources",
-			Rules: []string{
-				"//modules/pathops/src:core_hdrs",
-				"//modules/pathops/src:core_srcs",
-			}},
-	}},
 	{GNI: "modules/bentleyottmann/bentleyottmann.gni", Vars: []exporter.GNIFileListExportDesc{
 		{Var: "bentleyottmann_public",
 			Rules: []string{
diff --git a/bench/PathBench.cpp b/bench/PathBench.cpp
index 181ffde..98df935 100644
--- a/bench/PathBench.cpp
+++ b/bench/PathBench.cpp
@@ -1219,7 +1219,7 @@
 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::kRoundRect_Type); )
 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::kOval_Type); )
 
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/core/SkPathPriv.h"
 
 DEF_BENCH( return new TightBoundsBench([](const SkPath& path){ return path.computeTightBounds();},
diff --git a/bench/PathOpsBench.cpp b/bench/PathOpsBench.cpp
index 7d6957d..61908f7 100644
--- a/bench/PathOpsBench.cpp
+++ b/bench/PathOpsBench.cpp
@@ -9,8 +9,8 @@
 #include "include/core/SkPath.h"
 #include "include/core/SkShader.h"
 #include "include/core/SkString.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTArray.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "src/base/SkRandom.h"
 
 class PathOpsBench : public Benchmark {
diff --git a/fuzz/FuzzPathop.cpp b/fuzz/FuzzPathop.cpp
index b8bd579..3a0c562 100644
--- a/fuzz/FuzzPathop.cpp
+++ b/fuzz/FuzzPathop.cpp
@@ -9,8 +9,8 @@
 #include "fuzz/FuzzCommon.h"
 #include "include/core/SkPath.h"
 #include "include/core/SkRect.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsCommon.h"
+#include "include/pathops/SkPathOps.h"
+#include "src/pathops/SkPathOpsCommon.h"
 
 const uint8_t MAX_OPS = 20;
 
diff --git a/gm/pathopsblend.cpp b/gm/pathopsblend.cpp
index 6c84eb4..0b70d92 100644
--- a/gm/pathopsblend.cpp
+++ b/gm/pathopsblend.cpp
@@ -13,7 +13,7 @@
 #include "include/core/SkPaint.h"
 #include "include/core/SkPath.h"
 #include "include/core/SkRect.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/core/SkStroke.h"
 #include "tools/ToolUtils.h"
 
diff --git a/gm/pathopsinverse.cpp b/gm/pathopsinverse.cpp
index 752d81d..df7472a 100644
--- a/gm/pathopsinverse.cpp
+++ b/gm/pathopsinverse.cpp
@@ -15,7 +15,7 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkSize.h"
 #include "include/core/SkString.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "tools/ToolUtils.h"
 
 namespace skiagm {
diff --git a/gn/core.gni b/gn/core.gni
index 4aed178..0922bcd 100644
--- a/gn/core.gni
+++ b/gn/core.gni
@@ -6,6 +6,7 @@
 #   //experimental/rust_png/ffi/BUILD.bazel
 #   //include/core/BUILD.bazel
 #   //include/encode/BUILD.bazel
+#   //include/pathops/BUILD.bazel
 #   //include/private/BUILD.bazel
 #   //include/private/base/BUILD.bazel
 #   //include/private/chromium/BUILD.bazel
@@ -16,6 +17,7 @@
 #   //src/image/BUILD.bazel
 #   //src/lazy/BUILD.bazel
 #   //src/opts/BUILD.bazel
+#   //src/pathops/BUILD.bazel
 #   //src/shaders/BUILD.bazel
 #   //src/text/BUILD.bazel
 
@@ -697,6 +699,72 @@
   "$_src/text/StrikeForGPU.h",
 ]
 
+# Generated by Bazel rule //include/pathops:public_hdrs
+skia_legacy_pathops_public = [ "$_include/pathops/SkPathOps.h" ]
+
+# List generated by Bazel rules:
+#  //src/pathops:_pathops_hdrs
+#  //src/pathops:_pathops_srcs
+skia_legacy_pathops_sources = [
+  "$_src/pathops/SkAddIntersections.cpp",
+  "$_src/pathops/SkAddIntersections.h",
+  "$_src/pathops/SkDConicLineIntersection.cpp",
+  "$_src/pathops/SkDCubicLineIntersection.cpp",
+  "$_src/pathops/SkDCubicToQuads.cpp",
+  "$_src/pathops/SkDLineIntersection.cpp",
+  "$_src/pathops/SkDQuadLineIntersection.cpp",
+  "$_src/pathops/SkIntersectionHelper.h",
+  "$_src/pathops/SkIntersections.cpp",
+  "$_src/pathops/SkIntersections.h",
+  "$_src/pathops/SkLineParameters.h",
+  "$_src/pathops/SkOpAngle.cpp",
+  "$_src/pathops/SkOpAngle.h",
+  "$_src/pathops/SkOpBuilder.cpp",
+  "$_src/pathops/SkOpCoincidence.cpp",
+  "$_src/pathops/SkOpCoincidence.h",
+  "$_src/pathops/SkOpContour.cpp",
+  "$_src/pathops/SkOpContour.h",
+  "$_src/pathops/SkOpCubicHull.cpp",
+  "$_src/pathops/SkOpEdgeBuilder.cpp",
+  "$_src/pathops/SkOpEdgeBuilder.h",
+  "$_src/pathops/SkOpSegment.cpp",
+  "$_src/pathops/SkOpSegment.h",
+  "$_src/pathops/SkOpSpan.cpp",
+  "$_src/pathops/SkOpSpan.h",
+  "$_src/pathops/SkPathOpsAsWinding.cpp",
+  "$_src/pathops/SkPathOpsBounds.h",
+  "$_src/pathops/SkPathOpsCommon.cpp",
+  "$_src/pathops/SkPathOpsCommon.h",
+  "$_src/pathops/SkPathOpsConic.cpp",
+  "$_src/pathops/SkPathOpsConic.h",
+  "$_src/pathops/SkPathOpsCubic.cpp",
+  "$_src/pathops/SkPathOpsCubic.h",
+  "$_src/pathops/SkPathOpsCurve.cpp",
+  "$_src/pathops/SkPathOpsCurve.h",
+  "$_src/pathops/SkPathOpsDebug.cpp",
+  "$_src/pathops/SkPathOpsDebug.h",
+  "$_src/pathops/SkPathOpsLine.cpp",
+  "$_src/pathops/SkPathOpsLine.h",
+  "$_src/pathops/SkPathOpsOp.cpp",
+  "$_src/pathops/SkPathOpsPoint.h",
+  "$_src/pathops/SkPathOpsQuad.cpp",
+  "$_src/pathops/SkPathOpsQuad.h",
+  "$_src/pathops/SkPathOpsRect.cpp",
+  "$_src/pathops/SkPathOpsRect.h",
+  "$_src/pathops/SkPathOpsSimplify.cpp",
+  "$_src/pathops/SkPathOpsTCurve.h",
+  "$_src/pathops/SkPathOpsTSect.cpp",
+  "$_src/pathops/SkPathOpsTSect.h",
+  "$_src/pathops/SkPathOpsTightBounds.cpp",
+  "$_src/pathops/SkPathOpsTypes.cpp",
+  "$_src/pathops/SkPathOpsTypes.h",
+  "$_src/pathops/SkPathOpsWinding.cpp",
+  "$_src/pathops/SkPathWriter.cpp",
+  "$_src/pathops/SkPathWriter.h",
+  "$_src/pathops/SkReduceOrder.cpp",
+  "$_src/pathops/SkReduceOrder.h",
+]
+
 # Generated by Bazel rule //include/encode:encode_hdrs
 skia_encode_public = [ "$_include/encode/SkEncoder.h" ]
 
@@ -777,3 +845,7 @@
     [ "$_include/private/chromium/SkDiscardableMemory.h" ]
 
 skia_no_slug_srcs = []
+
+skia_core_sources += skia_legacy_pathops_sources
+
+skia_core_public += skia_legacy_pathops_public
diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py
index b682ddc..6f4ae64 100755
--- a/gn/gn_to_bp.py
+++ b/gn/gn_to_bp.py
@@ -642,7 +642,6 @@
 
 skcms_srcs = strip_slashes(js['targets']['//modules/skcms:skcms']['sources'])
 
-pathops_srcs = strip_slashes(js['targets']['//modules/pathops:pathops']['sources'])
 
 gn_to_bp_utils.GrabDependentValues(js, '//:gm', 'sources', gm_srcs, '//:skia')
 gn_to_bp_utils.GrabDependentValues(js, '//:tests', 'sources', test_srcs, '//:skia')
@@ -703,11 +702,6 @@
 dm_srcs         = strip_non_srcs(dm_srcs).difference(gm_srcs).difference(test_srcs)
 nanobench_srcs  = strip_non_srcs(nanobench_srcs).difference(gm_srcs)
 skcms_srcs      = strip_non_srcs(skcms_srcs)
-pathops_srcs    = strip_non_srcs(pathops_srcs)
-
-# PathOps is no longer part of core Skia, but that is not
-# an interesting distinction for Android (yet).
-srcs = srcs.union(pathops_srcs)
 
 test_minus_gm_includes = test_includes.difference(gm_includes)
 test_minus_gm_srcs = test_srcs.difference(gm_srcs)
diff --git a/include/pathops/SkPathOps.h b/include/pathops/SkPathOps.h
index 4c325f0..c4ace7a 100644
--- a/include/pathops/SkPathOps.h
+++ b/include/pathops/SkPathOps.h
@@ -1,17 +1,121 @@
 /*
- * Copyright 2025 Google Inc.
+ * Copyright 2012 Google Inc.
  *
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
+#ifndef SkPathOps_DEFINED
+#define SkPathOps_DEFINED
 
-// Uncomment this to find any clients who still use the old path
-// ... so we can update them
-//#error
+#include "include/core/SkPath.h"
+#include "include/core/SkTypes.h"
+#include "include/private/base/SkTArray.h"
+#include "include/private/base/SkTDArray.h"
 
-#ifndef SkPathOpsRedirect_DEFINED
-#define SkPathOpsRedirect_DEFINED
+struct SkRect;
 
-#include "modules/pathops/include/SkPathOps.h"
+
+// FIXME: move everything below into the SkPath class
+/**
+  *  The logical operations that can be performed when combining two paths.
+  */
+enum SkPathOp {
+    kDifference_SkPathOp,         //!< subtract the op path from the first path
+    kIntersect_SkPathOp,          //!< intersect the two paths
+    kUnion_SkPathOp,              //!< union (inclusive-or) the two paths
+    kXOR_SkPathOp,                //!< exclusive-or the two paths
+    kReverseDifference_SkPathOp,  //!< subtract the first path from the op path
+};
+
+/** Set this path to the result of applying the Op to this path and the
+    specified path: this = (this op operand).
+    The resulting path will be constructed from non-overlapping contours.
+    The curve order is reduced where possible so that cubics may be turned
+    into quadratics, and quadratics maybe turned into lines.
+
+    Returns true if operation was able to produce a result;
+    otherwise, result is unmodified.
+
+    @param one The first operand (for difference, the minuend)
+    @param two The second operand (for difference, the subtrahend)
+    @param op The operator to apply.
+    @param result The product of the operands. The result may be one of the
+                  inputs.
+    @return True if the operation succeeded.
+  */
+bool SK_API Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result);
+
+/** Set this path to a set of non-overlapping contours that describe the
+    same area as the original path.
+    The curve order is reduced where possible so that cubics may
+    be turned into quadratics, and quadratics maybe turned into lines.
+
+    Returns true if operation was able to produce a result;
+    otherwise, result is unmodified.
+
+    @param path The path to simplify.
+    @param result The simplified path. The result may be the input.
+    @return True if simplification succeeded.
+  */
+bool SK_API Simplify(const SkPath& path, SkPath* result);
+
+/** Set the resulting rectangle to the tight bounds of the path.
+
+    @param path The path measured.
+    @param result The tight bounds of the path.
+    @return True if the bounds could be computed.
+  */
+[[deprecated]]
+static inline bool TightBounds(const SkPath& path, SkRect* result) {
+    auto rect = path.computeTightBounds();
+    if (rect.isFinite()) {
+        *result = rect;
+        return true;
+    }
+    return false;
+}
+
+/** Set the result with fill type winding to area equivalent to path.
+    Returns true if successful. Does not detect if path contains contours which
+    contain self-crossings or cross other contours; in these cases, may return
+    true even though result does not fill same area as path.
+
+    Returns true if operation was able to produce a result;
+    otherwise, result is unmodified. The result may be the input.
+
+    @param path The path typically with fill type set to even odd.
+    @param result The equivalent path with fill type set to winding.
+    @return True if winding path was set.
+  */
+bool SK_API AsWinding(const SkPath& path, SkPath* result);
+
+/** Perform a series of path operations, optimized for unioning many paths together.
+  */
+class SK_API SkOpBuilder {
+public:
+    /** Add one or more paths and their operand. The builder is empty before the first
+        path is added, so the result of a single add is (emptyPath OP path).
+
+        @param path The second operand.
+        @param _operator The operator to apply to the existing and supplied paths.
+     */
+    void add(const SkPath& path, SkPathOp _operator);
+
+    /** Computes the sum of all paths and operands, and resets the builder to its
+        initial state.
+
+        @param result The product of the operands.
+        @return True if the operation succeeded.
+      */
+    bool resolve(SkPath* result);
+
+private:
+    skia_private::TArray<SkPath> fPathRefs;
+    SkTDArray<SkPathOp> fOps;
+
+    static bool FixWinding(SkPath* path);
+    static void ReversePath(SkPath* path);
+    void reset();
+};
 
 #endif
diff --git a/modules/canvaskit/canvaskit_bindings.cpp b/modules/canvaskit/canvaskit_bindings.cpp
index 4f4a489..21a654d 100644
--- a/modules/canvaskit/canvaskit_bindings.cpp
+++ b/modules/canvaskit/canvaskit_bindings.cpp
@@ -119,7 +119,7 @@
 #endif // CK_NO_FONTS
 
 #ifdef CK_INCLUDE_PATHOPS
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #endif
 
 #if defined(CK_INCLUDE_RUNTIME_EFFECT)
diff --git a/modules/pathops/BUILD.bazel b/modules/pathops/BUILD.bazel
deleted file mode 100644
index 895a5af..0000000
--- a/modules/pathops/BUILD.bazel
+++ /dev/null
@@ -1,31 +0,0 @@
-load("//bazel:skia_rules.bzl", "skia_cc_library")
-
-package(
-    default_applicable_licenses = ["//:license"],
-)
-
-licenses(["notice"])
-
-skia_cc_library(
-    name = "pathops",
-    srcs = [
-        "//modules/pathops/src:private_hdrs",
-        "//modules/pathops/src:srcs",
-    ],
-    hdrs = [
-        "//modules/pathops/include:hdrs",
-    ],
-    features = ["layering_check"],
-    visibility = [
-        "//:__pkg__",
-        "//modules/sksg:__pkg__",
-        "//modules/svg:__pkg__",
-        "//src/pathops:__pkg__",
-        "//src/pdf:__pkg__",
-    ],
-    deps = [
-        "//:core",
-        "//src/base",
-        "//src/core:core_priv",
-    ],
-)
diff --git a/modules/pathops/BUILD.gn b/modules/pathops/BUILD.gn
deleted file mode 100644
index b038fa3..0000000
--- a/modules/pathops/BUILD.gn
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2018 Google Inc.
-#
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("../../gn/skia.gni")
-
-config("public_config") {
-  include_dirs = [ "include" ]
-}
-
-skia_component("pathops") {
-  check_includes = false
-  import("pathops.gni")
-  public_configs = [ ":public_config" ]
-  public = skia_pathops_public
-  sources = skia_pathops_sources
-  configs = [ "../../:skia_private" ]
-  deps = [ "../..:skia" ]
-}
diff --git a/modules/pathops/include/BUILD.bazel b/modules/pathops/include/BUILD.bazel
deleted file mode 100644
index c4b09af..0000000
--- a/modules/pathops/include/BUILD.bazel
+++ /dev/null
@@ -1,17 +0,0 @@
-load("//bazel:skia_rules.bzl", "skia_filegroup")
-
-package(
-    default_applicable_licenses = ["//:license"],
-)
-
-licenses(["notice"])
-
-skia_filegroup(
-    name = "hdrs",
-    srcs = [
-        "SkPathOps.h",
-    ],
-    visibility = [
-        "//modules/pathops:__pkg__",
-    ],
-)
diff --git a/modules/pathops/include/SkPathOps.h b/modules/pathops/include/SkPathOps.h
deleted file mode 100644
index c4ace7a..0000000
--- a/modules/pathops/include/SkPathOps.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#ifndef SkPathOps_DEFINED
-#define SkPathOps_DEFINED
-
-#include "include/core/SkPath.h"
-#include "include/core/SkTypes.h"
-#include "include/private/base/SkTArray.h"
-#include "include/private/base/SkTDArray.h"
-
-struct SkRect;
-
-
-// FIXME: move everything below into the SkPath class
-/**
-  *  The logical operations that can be performed when combining two paths.
-  */
-enum SkPathOp {
-    kDifference_SkPathOp,         //!< subtract the op path from the first path
-    kIntersect_SkPathOp,          //!< intersect the two paths
-    kUnion_SkPathOp,              //!< union (inclusive-or) the two paths
-    kXOR_SkPathOp,                //!< exclusive-or the two paths
-    kReverseDifference_SkPathOp,  //!< subtract the first path from the op path
-};
-
-/** Set this path to the result of applying the Op to this path and the
-    specified path: this = (this op operand).
-    The resulting path will be constructed from non-overlapping contours.
-    The curve order is reduced where possible so that cubics may be turned
-    into quadratics, and quadratics maybe turned into lines.
-
-    Returns true if operation was able to produce a result;
-    otherwise, result is unmodified.
-
-    @param one The first operand (for difference, the minuend)
-    @param two The second operand (for difference, the subtrahend)
-    @param op The operator to apply.
-    @param result The product of the operands. The result may be one of the
-                  inputs.
-    @return True if the operation succeeded.
-  */
-bool SK_API Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result);
-
-/** Set this path to a set of non-overlapping contours that describe the
-    same area as the original path.
-    The curve order is reduced where possible so that cubics may
-    be turned into quadratics, and quadratics maybe turned into lines.
-
-    Returns true if operation was able to produce a result;
-    otherwise, result is unmodified.
-
-    @param path The path to simplify.
-    @param result The simplified path. The result may be the input.
-    @return True if simplification succeeded.
-  */
-bool SK_API Simplify(const SkPath& path, SkPath* result);
-
-/** Set the resulting rectangle to the tight bounds of the path.
-
-    @param path The path measured.
-    @param result The tight bounds of the path.
-    @return True if the bounds could be computed.
-  */
-[[deprecated]]
-static inline bool TightBounds(const SkPath& path, SkRect* result) {
-    auto rect = path.computeTightBounds();
-    if (rect.isFinite()) {
-        *result = rect;
-        return true;
-    }
-    return false;
-}
-
-/** Set the result with fill type winding to area equivalent to path.
-    Returns true if successful. Does not detect if path contains contours which
-    contain self-crossings or cross other contours; in these cases, may return
-    true even though result does not fill same area as path.
-
-    Returns true if operation was able to produce a result;
-    otherwise, result is unmodified. The result may be the input.
-
-    @param path The path typically with fill type set to even odd.
-    @param result The equivalent path with fill type set to winding.
-    @return True if winding path was set.
-  */
-bool SK_API AsWinding(const SkPath& path, SkPath* result);
-
-/** Perform a series of path operations, optimized for unioning many paths together.
-  */
-class SK_API SkOpBuilder {
-public:
-    /** Add one or more paths and their operand. The builder is empty before the first
-        path is added, so the result of a single add is (emptyPath OP path).
-
-        @param path The second operand.
-        @param _operator The operator to apply to the existing and supplied paths.
-     */
-    void add(const SkPath& path, SkPathOp _operator);
-
-    /** Computes the sum of all paths and operands, and resets the builder to its
-        initial state.
-
-        @param result The product of the operands.
-        @return True if the operation succeeded.
-      */
-    bool resolve(SkPath* result);
-
-private:
-    skia_private::TArray<SkPath> fPathRefs;
-    SkTDArray<SkPathOp> fOps;
-
-    static bool FixWinding(SkPath* path);
-    static void ReversePath(SkPath* path);
-    void reset();
-};
-
-#endif
diff --git a/modules/pathops/pathops.gni b/modules/pathops/pathops.gni
index 8c5a967..bf40723 100644
--- a/modules/pathops/pathops.gni
+++ b/modules/pathops/pathops.gni
@@ -1,76 +1,5 @@
-# DO NOT EDIT: This is a generated file.
-# See //bazel/exporter_tool/README.md for more information.
-#
-# The sources of truth are:
-#   //modules/pathops/include/BUILD.bazel
-#   //modules/pathops/src/BUILD.bazel
+# Placeholder for client migration. To be replaced with actual pathops sources in
+# https://skia-review.googlesource.com/c/skia/+/999760
 
-# To update this file, run make -C bazel generate_gni
-
-_modules = get_path_info("../../modules", "abspath")
-
-# Generated by Bazel rule //modules/pathops/include:hdrs
-skia_pathops_public = [ "$_modules/pathops/include/SkPathOps.h" ]
-
-# List generated by Bazel rules:
-#  //modules/pathops/src:core_hdrs
-#  //modules/pathops/src:core_srcs
-skia_pathops_sources = [
-  "$_modules/pathops/src/SkAddIntersections.cpp",
-  "$_modules/pathops/src/SkAddIntersections.h",
-  "$_modules/pathops/src/SkDConicLineIntersection.cpp",
-  "$_modules/pathops/src/SkDCubicLineIntersection.cpp",
-  "$_modules/pathops/src/SkDCubicToQuads.cpp",
-  "$_modules/pathops/src/SkDLineIntersection.cpp",
-  "$_modules/pathops/src/SkDQuadLineIntersection.cpp",
-  "$_modules/pathops/src/SkIntersectionHelper.h",
-  "$_modules/pathops/src/SkIntersections.cpp",
-  "$_modules/pathops/src/SkIntersections.h",
-  "$_modules/pathops/src/SkLineParameters.h",
-  "$_modules/pathops/src/SkOpAngle.cpp",
-  "$_modules/pathops/src/SkOpAngle.h",
-  "$_modules/pathops/src/SkOpBuilder.cpp",
-  "$_modules/pathops/src/SkOpCoincidence.cpp",
-  "$_modules/pathops/src/SkOpCoincidence.h",
-  "$_modules/pathops/src/SkOpContour.cpp",
-  "$_modules/pathops/src/SkOpContour.h",
-  "$_modules/pathops/src/SkOpCubicHull.cpp",
-  "$_modules/pathops/src/SkOpEdgeBuilder.cpp",
-  "$_modules/pathops/src/SkOpEdgeBuilder.h",
-  "$_modules/pathops/src/SkOpSegment.cpp",
-  "$_modules/pathops/src/SkOpSegment.h",
-  "$_modules/pathops/src/SkOpSpan.cpp",
-  "$_modules/pathops/src/SkOpSpan.h",
-  "$_modules/pathops/src/SkPathOpsAsWinding.cpp",
-  "$_modules/pathops/src/SkPathOpsBounds.h",
-  "$_modules/pathops/src/SkPathOpsCommon.cpp",
-  "$_modules/pathops/src/SkPathOpsCommon.h",
-  "$_modules/pathops/src/SkPathOpsConic.cpp",
-  "$_modules/pathops/src/SkPathOpsConic.h",
-  "$_modules/pathops/src/SkPathOpsCubic.cpp",
-  "$_modules/pathops/src/SkPathOpsCubic.h",
-  "$_modules/pathops/src/SkPathOpsCurve.cpp",
-  "$_modules/pathops/src/SkPathOpsCurve.h",
-  "$_modules/pathops/src/SkPathOpsDebug.cpp",
-  "$_modules/pathops/src/SkPathOpsDebug.h",
-  "$_modules/pathops/src/SkPathOpsLine.cpp",
-  "$_modules/pathops/src/SkPathOpsLine.h",
-  "$_modules/pathops/src/SkPathOpsOp.cpp",
-  "$_modules/pathops/src/SkPathOpsPoint.h",
-  "$_modules/pathops/src/SkPathOpsQuad.cpp",
-  "$_modules/pathops/src/SkPathOpsQuad.h",
-  "$_modules/pathops/src/SkPathOpsRect.cpp",
-  "$_modules/pathops/src/SkPathOpsRect.h",
-  "$_modules/pathops/src/SkPathOpsSimplify.cpp",
-  "$_modules/pathops/src/SkPathOpsTCurve.h",
-  "$_modules/pathops/src/SkPathOpsTSect.cpp",
-  "$_modules/pathops/src/SkPathOpsTSect.h",
-  "$_modules/pathops/src/SkPathOpsTightBounds.cpp",
-  "$_modules/pathops/src/SkPathOpsTypes.cpp",
-  "$_modules/pathops/src/SkPathOpsTypes.h",
-  "$_modules/pathops/src/SkPathOpsWinding.cpp",
-  "$_modules/pathops/src/SkPathWriter.cpp",
-  "$_modules/pathops/src/SkPathWriter.h",
-  "$_modules/pathops/src/SkReduceOrder.cpp",
-  "$_modules/pathops/src/SkReduceOrder.h",
-]
+skia_pathops_public = []
+skia_pathops_sources = []
diff --git a/modules/pathops/src/BUILD.bazel b/modules/pathops/src/BUILD.bazel
deleted file mode 100644
index fee45f0..0000000
--- a/modules/pathops/src/BUILD.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-load("//bazel:skia_rules.bzl", "skia_filegroup", "split_srcs_and_hdrs")
-
-package(
-    default_applicable_licenses = ["//:license"],
-)
-
-licenses(["notice"])
-
-CORE_FILES = [
-    "SkAddIntersections.cpp",
-    "SkAddIntersections.h",
-    "SkDConicLineIntersection.cpp",
-    "SkDCubicLineIntersection.cpp",
-    "SkDCubicToQuads.cpp",
-    "SkDLineIntersection.cpp",
-    "SkDQuadLineIntersection.cpp",
-    "SkIntersectionHelper.h",
-    "SkIntersections.cpp",
-    "SkIntersections.h",
-    "SkLineParameters.h",
-    "SkOpAngle.cpp",
-    "SkOpAngle.h",
-    "SkOpBuilder.cpp",
-    "SkOpCoincidence.cpp",
-    "SkOpCoincidence.h",
-    "SkOpContour.cpp",
-    "SkOpContour.h",
-    "SkOpCubicHull.cpp",
-    "SkOpEdgeBuilder.cpp",
-    "SkOpEdgeBuilder.h",
-    "SkOpSegment.cpp",
-    "SkOpSegment.h",
-    "SkOpSpan.cpp",
-    "SkOpSpan.h",
-    "SkPathOpsAsWinding.cpp",
-    "SkPathOpsBounds.h",
-    "SkPathOpsCommon.cpp",
-    "SkPathOpsCommon.h",
-    "SkPathOpsConic.cpp",
-    "SkPathOpsConic.h",
-    "SkPathOpsCubic.cpp",
-    "SkPathOpsCubic.h",
-    "SkPathOpsCurve.cpp",
-    "SkPathOpsCurve.h",
-    "SkPathOpsDebug.cpp",
-    "SkPathOpsDebug.h",
-    "SkPathOpsLine.cpp",
-    "SkPathOpsLine.h",
-    "SkPathOpsOp.cpp",
-    "SkPathOpsPoint.h",
-    "SkPathOpsQuad.cpp",
-    "SkPathOpsQuad.h",
-    "SkPathOpsRect.cpp",
-    "SkPathOpsRect.h",
-    "SkPathOpsSimplify.cpp",
-    "SkPathOpsTCurve.h",
-    "SkPathOpsTSect.cpp",
-    "SkPathOpsTSect.h",
-    "SkPathOpsTightBounds.cpp",
-    "SkPathOpsTypes.cpp",
-    "SkPathOpsTypes.h",
-    "SkPathOpsWinding.cpp",
-    "SkPathWriter.cpp",
-    "SkPathWriter.h",
-    "SkReduceOrder.cpp",
-    "SkReduceOrder.h",
-]
-
-split_srcs_and_hdrs(
-    name = "core",
-    files = CORE_FILES,
-)
-
-skia_filegroup(
-    name = "srcs",
-    srcs = [":core_srcs"],
-    visibility = ["//modules/pathops:__pkg__"],
-)
-
-skia_filegroup(
-    name = "private_hdrs",
-    srcs = [":core_hdrs"],
-    visibility = ["//modules/pathops:__pkg__"],
-)
diff --git a/modules/skottie/BUILD.gn b/modules/skottie/BUILD.gn
index 0b7f7d4..d210ceb 100644
--- a/modules/skottie/BUILD.gn
+++ b/modules/skottie/BUILD.gn
@@ -24,7 +24,6 @@
     deps = [
       "../..:skia",
       "../jsonreader",
-      "../pathops",
       "../skresources",
       "../sksg",
       "../skshaper",
diff --git a/modules/sksg/BUILD.bazel b/modules/sksg/BUILD.bazel
index 8b3b6ab..be7d764 100644
--- a/modules/sksg/BUILD.bazel
+++ b/modules/sksg/BUILD.bazel
@@ -17,7 +17,7 @@
     visibility = ["//:__subpackages__"],
     deps = [
         "//:core",
-        "//modules/pathops",
+        "//:pathops",
         "//src/base",
         "//src/core:core_priv",
     ],
diff --git a/modules/sksg/src/SkSGGeometryEffect.cpp b/modules/sksg/src/SkSGGeometryEffect.cpp
index c105183..bab9da4 100644
--- a/modules/sksg/src/SkSGGeometryEffect.cpp
+++ b/modules/sksg/src/SkSGGeometryEffect.cpp
@@ -18,9 +18,9 @@
 #include "include/effects/SkCornerPathEffect.h"
 #include "include/effects/SkDashPathEffect.h"
 #include "include/effects/SkTrimPathEffect.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkAssert.h"
 #include "include/private/base/SkTArray.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "modules/sksg/src/SkSGTransformPriv.h"
 #include "src/core/SkPathPriv.h"
 
diff --git a/modules/sksg/src/SkSGMerge.cpp b/modules/sksg/src/SkSGMerge.cpp
index 0ec95be..a814351 100644
--- a/modules/sksg/src/SkSGMerge.cpp
+++ b/modules/sksg/src/SkSGMerge.cpp
@@ -10,8 +10,8 @@
 #include "include/core/SkCanvas.h"
 #include "include/core/SkClipOp.h"
 #include "include/core/SkPoint.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkAssert.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "modules/sksg/include/SkSGNode.h"
 #include "src/core/SkPathPriv.h"
 
diff --git a/modules/svg/BUILD.bazel b/modules/svg/BUILD.bazel
index 343331b..49b8da8 100644
--- a/modules/svg/BUILD.bazel
+++ b/modules/svg/BUILD.bazel
@@ -19,8 +19,8 @@
     deps = [
         "//:core",
         "//:jpeg_decode_codec",
+        "//:pathops",
         "//:png_decode_codec",
-        "//modules/pathops",
         "//modules/skresources",
         "//modules/skshaper:skshaper_core",
         "//src/base",
diff --git a/modules/svg/BUILD.gn b/modules/svg/BUILD.gn
index 19c7247..b0fee5d 100644
--- a/modules/svg/BUILD.gn
+++ b/modules/svg/BUILD.gn
@@ -20,7 +20,6 @@
     configs = [ "../../:skia_private" ]
     deps = [
       "../..:skia",
-      "../pathops",
       "../skresources",
       "../skshaper",
       "../skunicode",
diff --git a/modules/svg/src/SkSVGContainer.cpp b/modules/svg/src/SkSVGContainer.cpp
index 9003d14..609929a 100644
--- a/modules/svg/src/SkSVGContainer.cpp
+++ b/modules/svg/src/SkSVGContainer.cpp
@@ -8,8 +8,8 @@
 #include "modules/svg/include/SkSVGContainer.h"
 
 #include "include/core/SkPath.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkAssert.h"
-#include "modules/pathops/include/SkPathOps.h"
 
 #include <utility>
 class SkSVGRenderContext;
diff --git a/modules/svg/src/SkSVGNode.cpp b/modules/svg/src/SkSVGNode.cpp
index abe8243..1cdae38 100644
--- a/modules/svg/src/SkSVGNode.cpp
+++ b/modules/svg/src/SkSVGNode.cpp
@@ -11,8 +11,8 @@
 #include "include/core/SkM44.h"
 #include "include/core/SkMatrix.h"
 #include "include/core/SkPath.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkAssert.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "modules/svg/include/SkSVGRenderContext.h"
 #include "src/base/SkTLazy.h"  // IWYU pragma: keep
 
diff --git a/src/pathops/BUILD.bazel b/src/pathops/BUILD.bazel
index 0c4406b..5a9582f 100644
--- a/src/pathops/BUILD.bazel
+++ b/src/pathops/BUILD.bazel
@@ -1,4 +1,4 @@
-load("//bazel:skia_rules.bzl", "skia_cc_library")
+load("//bazel:skia_rules.bzl", "skia_cc_library", "split_srcs_and_hdrs")
 
 package(
     default_applicable_licenses = ["//:license"],
@@ -6,15 +6,85 @@
 
 licenses(["notice"])
 
-# Temporary forwarding target for g3 migration
+PATHOPS_FILES = [
+    "SkAddIntersections.cpp",
+    "SkAddIntersections.h",
+    "SkDConicLineIntersection.cpp",
+    "SkDCubicLineIntersection.cpp",
+    "SkDCubicToQuads.cpp",
+    "SkDLineIntersection.cpp",
+    "SkDQuadLineIntersection.cpp",
+    "SkIntersectionHelper.h",
+    "SkIntersections.cpp",
+    "SkIntersections.h",
+    "SkLineParameters.h",
+    "SkOpAngle.cpp",
+    "SkOpAngle.h",
+    "SkOpBuilder.cpp",
+    "SkOpCoincidence.cpp",
+    "SkOpCoincidence.h",
+    "SkOpContour.cpp",
+    "SkOpContour.h",
+    "SkOpCubicHull.cpp",
+    "SkOpEdgeBuilder.cpp",
+    "SkOpEdgeBuilder.h",
+    "SkOpSegment.cpp",
+    "SkOpSegment.h",
+    "SkOpSpan.cpp",
+    "SkOpSpan.h",
+    "SkPathOpsAsWinding.cpp",
+    "SkPathOpsBounds.h",
+    "SkPathOpsCommon.cpp",
+    "SkPathOpsCommon.h",
+    "SkPathOpsConic.cpp",
+    "SkPathOpsConic.h",
+    "SkPathOpsCubic.cpp",
+    "SkPathOpsCubic.h",
+    "SkPathOpsCurve.cpp",
+    "SkPathOpsCurve.h",
+    "SkPathOpsDebug.cpp",
+    "SkPathOpsDebug.h",
+    "SkPathOpsLine.cpp",
+    "SkPathOpsLine.h",
+    "SkPathOpsOp.cpp",
+    "SkPathOpsPoint.h",
+    "SkPathOpsQuad.cpp",
+    "SkPathOpsQuad.h",
+    "SkPathOpsRect.cpp",
+    "SkPathOpsRect.h",
+    "SkPathOpsSimplify.cpp",
+    "SkPathOpsTCurve.h",
+    "SkPathOpsTSect.cpp",
+    "SkPathOpsTSect.h",
+    "SkPathOpsTightBounds.cpp",
+    "SkPathOpsTypes.cpp",
+    "SkPathOpsTypes.h",
+    "SkPathOpsWinding.cpp",
+    "SkPathWriter.cpp",
+    "SkPathWriter.h",
+    "SkReduceOrder.cpp",
+    "SkReduceOrder.h",
+]
+
+split_srcs_and_hdrs(
+    name = "_pathops",
+    files = PATHOPS_FILES,
+)
 
 skia_cc_library(
     name = "pathops",
-    srcs = [],
+    srcs = [
+        ":_pathops_hdrs",
+        ":_pathops_srcs",
+    ],
     hdrs = [
         "//include/pathops:public_hdrs",
     ],
     features = ["layering_check"],
-    visibility = ["//visibility:public"],
-    deps = ["//modules/pathops"],
+    visibility = ["//:__pkg__"],
+    deps = [
+        "//src/base",
+        "//src/core",
+        "//src/core:core_priv",
+    ],
 )
diff --git a/modules/pathops/src/SkAddIntersections.cpp b/src/pathops/SkAddIntersections.cpp
similarity index 97%
rename from modules/pathops/src/SkAddIntersections.cpp
rename to src/pathops/SkAddIntersections.cpp
index d08af55..913db87 100644
--- a/modules/pathops/src/SkAddIntersections.cpp
+++ b/src/pathops/SkAddIntersections.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "modules/pathops/src/SkAddIntersections.h"
+#include "src/pathops/SkAddIntersections.h"
 
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersectionHelper.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkOpCoincidence.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsBounds.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkIntersectionHelper.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <cmath>
 #include <utility>
diff --git a/modules/pathops/src/SkAddIntersections.h b/src/pathops/SkAddIntersections.h
similarity index 100%
rename from modules/pathops/src/SkAddIntersections.h
rename to src/pathops/SkAddIntersections.h
diff --git a/modules/pathops/src/SkDConicLineIntersection.cpp b/src/pathops/SkDConicLineIntersection.cpp
similarity index 96%
rename from modules/pathops/src/SkDConicLineIntersection.cpp
rename to src/pathops/SkDConicLineIntersection.cpp
index 9802767..3cbcc4f 100644
--- a/modules/pathops/src/SkDConicLineIntersection.cpp
+++ b/src/pathops/SkDConicLineIntersection.cpp
@@ -9,14 +9,14 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <algorithm>
 #include <cmath>
diff --git a/modules/pathops/src/SkDCubicLineIntersection.cpp b/src/pathops/SkDCubicLineIntersection.cpp
similarity index 97%
rename from modules/pathops/src/SkDCubicLineIntersection.cpp
rename to src/pathops/SkDCubicLineIntersection.cpp
index 5f0e6ae..f0abf36 100644
--- a/modules/pathops/src/SkDCubicLineIntersection.cpp
+++ b/src/pathops/SkDCubicLineIntersection.cpp
@@ -8,13 +8,13 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <cmath>
 
diff --git a/modules/pathops/src/SkDCubicToQuads.cpp b/src/pathops/SkDCubicToQuads.cpp
similarity index 89%
rename from modules/pathops/src/SkDCubicToQuads.cpp
rename to src/pathops/SkDCubicToQuads.cpp
index 292117e..c7c7944 100644
--- a/modules/pathops/src/SkDCubicToQuads.cpp
+++ b/src/pathops/SkDCubicToQuads.cpp
@@ -28,9 +28,9 @@
 P1 = -1/4 Q0 + 3/4 Q1 + 3/4 Q2 - 1/4 Q3
 */
 
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 // used for testing only
 SkDQuad SkDCubic::toQuad() const {
diff --git a/modules/pathops/src/SkDLineIntersection.cpp b/src/pathops/SkDLineIntersection.cpp
similarity index 98%
rename from modules/pathops/src/SkDLineIntersection.cpp
rename to src/pathops/SkDLineIntersection.cpp
index 122d4ac..2660786 100644
--- a/modules/pathops/src/SkDLineIntersection.cpp
+++ b/src/pathops/SkDLineIntersection.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <cmath>
 #include <cstdint>
diff --git a/modules/pathops/src/SkDQuadLineIntersection.cpp b/src/pathops/SkDQuadLineIntersection.cpp
similarity index 97%
rename from modules/pathops/src/SkDQuadLineIntersection.cpp
rename to src/pathops/SkDQuadLineIntersection.cpp
index 4fd8943..547297d 100644
--- a/modules/pathops/src/SkDQuadLineIntersection.cpp
+++ b/src/pathops/SkDQuadLineIntersection.cpp
@@ -7,13 +7,13 @@
 #include "include/core/SkPath.h"
 #include "include/core/SkPoint.h"
 #include "include/core/SkScalar.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <cmath>
 
diff --git a/modules/pathops/src/SkIntersectionHelper.h b/src/pathops/SkIntersectionHelper.h
similarity index 93%
rename from modules/pathops/src/SkIntersectionHelper.h
rename to src/pathops/SkIntersectionHelper.h
index 724415f..9eb7cbf 100644
--- a/modules/pathops/src/SkIntersectionHelper.h
+++ b/src/pathops/SkIntersectionHelper.h
@@ -8,11 +8,11 @@
 #define SkIntersectionHelper_DEFINED
 
 #include "include/core/SkPath.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpSegment.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
 
 #ifdef SK_DEBUG
-#include "modules/pathops/src/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsPoint.h"
 #endif
 
 class SkIntersectionHelper {
diff --git a/modules/pathops/src/SkIntersections.cpp b/src/pathops/SkIntersections.cpp
similarity index 98%
rename from modules/pathops/src/SkIntersections.cpp
rename to src/pathops/SkIntersections.cpp
index d9a3638..15859b5 100644
--- a/modules/pathops/src/SkIntersections.cpp
+++ b/src/pathops/SkIntersections.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "modules/pathops/src/SkIntersections.h"
+#include "src/pathops/SkIntersections.h"
 
 #include <cstring>
 
diff --git a/modules/pathops/src/SkIntersections.h b/src/pathops/SkIntersections.h
similarity index 96%
rename from modules/pathops/src/SkIntersections.h
rename to src/pathops/SkIntersections.h
index 0998b0b..ff4c63d 100644
--- a/modules/pathops/src/SkIntersections.h
+++ b/src/pathops/SkIntersections.h
@@ -12,14 +12,14 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkMalloc.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTCurve.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTCurve.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <array>
 #include <cstdint>
diff --git a/modules/pathops/src/SkLineParameters.h b/src/pathops/SkLineParameters.h
similarity index 96%
rename from modules/pathops/src/SkLineParameters.h
rename to src/pathops/SkLineParameters.h
index 5b62802..45d1ed4 100644
--- a/modules/pathops/src/SkLineParameters.h
+++ b/src/pathops/SkLineParameters.h
@@ -8,9 +8,9 @@
 #ifndef SkLineParameters_DEFINED
 #define SkLineParameters_DEFINED
 
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 // Sources
 // computer-aided design - volume 22 number 9 november 1990 pp 538 - 549
diff --git a/modules/pathops/src/SkOpAngle.cpp b/src/pathops/SkOpAngle.cpp
similarity index 98%
rename from modules/pathops/src/SkOpAngle.cpp
rename to src/pathops/SkOpAngle.cpp
index 95a5afa..dd40e74 100644
--- a/modules/pathops/src/SkOpAngle.cpp
+++ b/src/pathops/SkOpAngle.cpp
@@ -4,20 +4,20 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkOpAngle.h"
+#include "src/pathops/SkOpAngle.h"
 
 #include "include/core/SkPoint.h"
 #include "include/core/SkScalar.h"
 #include "include/private/base/SkFloatingPoint.h"
 #include "include/private/base/SkTemplates.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
 #include "src/base/SkTSort.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
 
 #include <algorithm>
 #include <cmath>
diff --git a/modules/pathops/src/SkOpAngle.h b/src/pathops/SkOpAngle.h
similarity index 96%
rename from modules/pathops/src/SkOpAngle.h
rename to src/pathops/SkOpAngle.h
index 01b0004..2bf4b12 100644
--- a/modules/pathops/src/SkOpAngle.h
+++ b/src/pathops/SkOpAngle.h
@@ -10,9 +10,9 @@
 #include "include/core/SkPath.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkLineParameters.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkLineParameters.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #if DEBUG_ANGLE
 #include "include/core/SkString.h"
diff --git a/modules/pathops/src/SkOpBuilder.cpp b/src/pathops/SkOpBuilder.cpp
similarity index 94%
rename from modules/pathops/src/SkOpBuilder.cpp
rename to src/pathops/SkOpBuilder.cpp
index 93d2e33..3fea4e9 100644
--- a/modules/pathops/src/SkOpBuilder.cpp
+++ b/src/pathops/SkOpBuilder.cpp
@@ -10,20 +10,20 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkRect.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTArray.h"
 #include "include/private/base/SkTDArray.h"
 #include "include/private/base/SkTo.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpEdgeBuilder.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsCommon.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
-#include "modules/pathops/src/SkPathWriter.h"
 #include "src/base/SkArenaAlloc.h"
 #include "src/core/SkPathEnums.h"
 #include "src/core/SkPathPriv.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsCommon.h"
+#include "src/pathops/SkPathOpsTypes.h"
+#include "src/pathops/SkPathWriter.h"
 
 #include <cstdint>
 
diff --git a/modules/pathops/src/SkOpCoincidence.cpp b/src/pathops/SkOpCoincidence.cpp
similarity index 98%
rename from modules/pathops/src/SkOpCoincidence.cpp
rename to src/pathops/SkOpCoincidence.cpp
index b0102e6..4a8bcec 100644
--- a/modules/pathops/src/SkOpCoincidence.cpp
+++ b/src/pathops/SkOpCoincidence.cpp
@@ -4,17 +4,17 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkOpCoincidence.h"
+#include "src/pathops/SkOpCoincidence.h"
 
 #include "include/core/SkPoint.h"
 #include "include/core/SkScalar.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
 #include "src/base/SkArenaAlloc.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
 
 #include <algorithm>
 
diff --git a/modules/pathops/src/SkOpCoincidence.h b/src/pathops/SkOpCoincidence.h
similarity index 98%
rename from modules/pathops/src/SkOpCoincidence.h
rename to src/pathops/SkOpCoincidence.h
index 72a0a10..cf8bb18 100644
--- a/modules/pathops/src/SkOpCoincidence.h
+++ b/src/pathops/SkOpCoincidence.h
@@ -10,8 +10,8 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkMalloc.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 class SkOpAngle;
 class SkOpContour;
diff --git a/modules/pathops/src/SkOpContour.cpp b/src/pathops/SkOpContour.cpp
similarity index 96%
rename from modules/pathops/src/SkOpContour.cpp
rename to src/pathops/SkOpContour.cpp
index 9e47d7d..433dbca 100644
--- a/modules/pathops/src/SkOpContour.cpp
+++ b/src/pathops/SkOpContour.cpp
@@ -4,9 +4,9 @@
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
-#include "modules/pathops/src/SkOpContour.h"
+#include "src/pathops/SkOpContour.h"
 
-#include "modules/pathops/src/SkPathWriter.h"
+#include "src/pathops/SkPathWriter.h"
 
 #include <cstring>
 
diff --git a/modules/pathops/src/SkOpContour.h b/src/pathops/SkOpContour.h
similarity index 97%
rename from modules/pathops/src/SkOpContour.h
rename to src/pathops/SkOpContour.h
index 10d69e2..4e2098e 100644
--- a/modules/pathops/src/SkOpContour.h
+++ b/src/pathops/SkOpContour.h
@@ -11,13 +11,13 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsBounds.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkArenaAlloc.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 class SkOpAngle;
 class SkOpCoincidence;
diff --git a/modules/pathops/src/SkOpCubicHull.cpp b/src/pathops/SkOpCubicHull.cpp
similarity index 96%
rename from modules/pathops/src/SkOpCubicHull.cpp
rename to src/pathops/SkOpCubicHull.cpp
index c1933e3..39c77ab 100644
--- a/modules/pathops/src/SkOpCubicHull.cpp
+++ b/src/pathops/SkOpCubicHull.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <algorithm>
 #include <cstddef>
diff --git a/modules/pathops/src/SkOpEdgeBuilder.cpp b/src/pathops/SkOpEdgeBuilder.cpp
similarity index 98%
rename from modules/pathops/src/SkOpEdgeBuilder.cpp
rename to src/pathops/SkOpEdgeBuilder.cpp
index 8d41874..ffdd07c 100644
--- a/modules/pathops/src/SkOpEdgeBuilder.cpp
+++ b/src/pathops/SkOpEdgeBuilder.cpp
@@ -4,18 +4,18 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkOpEdgeBuilder.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
 
 #include "include/core/SkPath.h"
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkFloatingPoint.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkReduceOrder.h"
 #include "src/base/SkTSort.h"
 #include "src/core/SkGeometry.h"
 #include "src/core/SkPathPriv.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkReduceOrder.h"
 
 #include <algorithm>
 #include <array>
diff --git a/modules/pathops/src/SkOpEdgeBuilder.h b/src/pathops/SkOpEdgeBuilder.h
similarity index 93%
rename from modules/pathops/src/SkOpEdgeBuilder.h
rename to src/pathops/SkOpEdgeBuilder.h
index 644f34e..7c01756 100644
--- a/modules/pathops/src/SkOpEdgeBuilder.h
+++ b/src/pathops/SkOpEdgeBuilder.h
@@ -10,9 +10,9 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkScalar.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
-#include "modules/pathops/src/SkPathWriter.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkPathOpsTypes.h"
+#include "src/pathops/SkPathWriter.h"
 
 #include <cstdint>
 
diff --git a/modules/pathops/src/SkOpSegment.cpp b/src/pathops/SkOpSegment.cpp
similarity index 99%
rename from modules/pathops/src/SkOpSegment.cpp
rename to src/pathops/SkOpSegment.cpp
index 05e47a5..777b53e 100644
--- a/modules/pathops/src/SkOpSegment.cpp
+++ b/src/pathops/SkOpSegment.cpp
@@ -4,16 +4,16 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkOpSegment.h"
+#include "src/pathops/SkOpSegment.h"
 
 #include "include/private/base/SkTDArray.h"
 #include "include/private/base/SkTemplates.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkOpCoincidence.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathWriter.h"
 #include "src/core/SkPointPriv.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathWriter.h"
 
 #include <algorithm>
 #include <cfloat>
diff --git a/modules/pathops/src/SkOpSegment.h b/src/pathops/SkOpSegment.h
similarity index 96%
rename from modules/pathops/src/SkOpSegment.h
rename to src/pathops/SkOpSegment.h
index c27dc1b..8d7f7d3 100644
--- a/modules/pathops/src/SkOpSegment.h
+++ b/src/pathops/SkOpSegment.h
@@ -11,19 +11,19 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkMath.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkOpAngle.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsBounds.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkArenaAlloc.h"
+#include "src/pathops/SkOpAngle.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 enum class SkOpRayDir;
 class SkOpCoincidence;
diff --git a/modules/pathops/src/SkOpSpan.cpp b/src/pathops/SkOpSpan.cpp
similarity index 97%
rename from modules/pathops/src/SkOpSpan.cpp
rename to src/pathops/SkOpSpan.cpp
index a91eeff..a7e8989 100644
--- a/modules/pathops/src/SkOpSpan.cpp
+++ b/src/pathops/SkOpSpan.cpp
@@ -7,11 +7,11 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkTemplates.h"
-#include "modules/pathops/src/SkOpCoincidence.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <algorithm>
 
diff --git a/modules/pathops/src/SkOpSpan.h b/src/pathops/SkOpSpan.h
similarity index 99%
rename from modules/pathops/src/SkOpSpan.h
rename to src/pathops/SkOpSpan.h
index 5eaf951..38636cf 100644
--- a/modules/pathops/src/SkOpSpan.h
+++ b/src/pathops/SkOpSpan.h
@@ -11,7 +11,7 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkMath.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 class SkOpAngle;
 class SkOpCoincidence;
diff --git a/modules/pathops/src/SkPathOpsAsWinding.cpp b/src/pathops/SkPathOpsAsWinding.cpp
similarity index 97%
rename from modules/pathops/src/SkPathOpsAsWinding.cpp
rename to src/pathops/SkPathOpsAsWinding.cpp
index 553ae6a..6c4b1f6 100644
--- a/modules/pathops/src/SkPathOpsAsWinding.cpp
+++ b/src/pathops/SkPathOpsAsWinding.cpp
@@ -11,15 +11,15 @@
 #include "include/core/SkRect.h"
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkMacros.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/core/SkPathPriv.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <algorithm>
 #include <vector>
diff --git a/modules/pathops/src/SkPathOpsBounds.h b/src/pathops/SkPathOpsBounds.h
similarity index 97%
rename from modules/pathops/src/SkPathOpsBounds.h
rename to src/pathops/SkPathOpsBounds.h
index 2bdfba5..bcf578a 100644
--- a/modules/pathops/src/SkPathOpsBounds.h
+++ b/src/pathops/SkPathOpsBounds.h
@@ -8,7 +8,7 @@
 #define SkPathOpBounds_DEFINED
 
 #include "include/core/SkRect.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsRect.h"
 
 // SkPathOpsBounds, unlike SkRect, does not consider a line to be empty.
 struct SkPathOpsBounds : public SkRect {
diff --git a/modules/pathops/src/SkPathOpsCommon.cpp b/src/pathops/SkPathOpsCommon.cpp
similarity index 97%
rename from modules/pathops/src/SkPathOpsCommon.cpp
rename to src/pathops/SkPathOpsCommon.cpp
index 640fb58..18a5005 100644
--- a/modules/pathops/src/SkPathOpsCommon.cpp
+++ b/src/pathops/SkPathOpsCommon.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "modules/pathops/src/SkPathOpsCommon.h"
+#include "src/pathops/SkPathOpsCommon.h"
 
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkMacros.h"
 #include "include/private/base/SkMath.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/src/SkOpAngle.h"
-#include "modules/pathops/src/SkOpCoincidence.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
 #include "src/base/SkTSort.h"
+#include "src/pathops/SkOpAngle.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
 
 const SkOpAngle* AngleWinding(SkOpSpanBase* start, SkOpSpanBase* end, int* windingPtr,
         bool* sortablePtr) {
diff --git a/modules/pathops/src/SkPathOpsCommon.h b/src/pathops/SkPathOpsCommon.h
similarity index 91%
rename from modules/pathops/src/SkPathOpsCommon.h
rename to src/pathops/SkPathOpsCommon.h
index eb4f1b4..1a1ad77 100644
--- a/modules/pathops/src/SkPathOpsCommon.h
+++ b/src/pathops/SkPathOpsCommon.h
@@ -7,8 +7,8 @@
 #ifndef SkPathOpsCommon_DEFINED
 #define SkPathOpsCommon_DEFINED
 
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "include/pathops/SkPathOps.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 class SkOpAngle;
 class SkOpCoincidence;
diff --git a/modules/pathops/src/SkPathOpsConic.cpp b/src/pathops/SkPathOpsConic.cpp
similarity index 94%
rename from modules/pathops/src/SkPathOpsConic.cpp
rename to src/pathops/SkPathOpsConic.cpp
index f3ec499..98b7c50 100644
--- a/modules/pathops/src/SkPathOpsConic.cpp
+++ b/src/pathops/SkPathOpsConic.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsConic.h"
 
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkFloatingPoint.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <cmath>
 
diff --git a/modules/pathops/src/SkPathOpsConic.h b/src/pathops/SkPathOpsConic.h
similarity index 96%
rename from modules/pathops/src/SkPathOpsConic.h
rename to src/pathops/SkPathOpsConic.h
index 9af0346..334dbeb 100644
--- a/modules/pathops/src/SkPathOpsConic.h
+++ b/src/pathops/SkPathOpsConic.h
@@ -11,11 +11,11 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkScalar.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTCurve.h"
 #include "src/base/SkArenaAlloc.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTCurve.h"
 
 class SkIntersections;
 class SkOpGlobalState;
diff --git a/modules/pathops/src/SkPathOpsCubic.cpp b/src/pathops/SkPathOpsCubic.cpp
similarity index 98%
rename from modules/pathops/src/SkPathOpsCubic.cpp
rename to src/pathops/SkPathOpsCubic.cpp
index 4b31157..bf3d6d7 100644
--- a/modules/pathops/src/SkPathOpsCubic.cpp
+++ b/src/pathops/SkPathOpsCubic.cpp
@@ -4,19 +4,19 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCubic.h"
 
 #include "include/private/base/SkFloatingPoint.h"
 #include "include/private/base/SkTPin.h"
 #include "include/private/base/SkTo.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkLineParameters.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkTSort.h"
 #include "src/core/SkGeometry.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkLineParameters.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <algorithm>
 #include <cmath>
diff --git a/modules/pathops/src/SkPathOpsCubic.h b/src/pathops/SkPathOpsCubic.h
similarity index 97%
rename from modules/pathops/src/SkPathOpsCubic.h
rename to src/pathops/SkPathOpsCubic.h
index 9b43846..6a2475b 100644
--- a/modules/pathops/src/SkPathOpsCubic.h
+++ b/src/pathops/SkPathOpsCubic.h
@@ -13,10 +13,10 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkMalloc.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTCurve.h"
 #include "src/base/SkArenaAlloc.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTCurve.h"
 
 class SkIntersections;
 class SkOpGlobalState;
diff --git a/modules/pathops/src/SkPathOpsCurve.cpp b/src/pathops/SkPathOpsCurve.cpp
similarity index 96%
rename from modules/pathops/src/SkPathOpsCurve.cpp
rename to src/pathops/SkPathOpsCurve.cpp
index bdbda7e..ad02d61 100644
--- a/modules/pathops/src/SkPathOpsCurve.cpp
+++ b/src/pathops/SkPathOpsCurve.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsCurve.h"
 
 #include "include/private/base/SkTemplates.h"
-#include "modules/pathops/src/SkPathOpsBounds.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsRect.h"
 
 #include <algorithm>
 #include <cfloat>
diff --git a/modules/pathops/src/SkPathOpsCurve.h b/src/pathops/SkPathOpsCurve.h
similarity index 96%
rename from modules/pathops/src/SkPathOpsCurve.h
rename to src/pathops/SkPathOpsCurve.h
index 3a2da90..25a38d0 100644
--- a/modules/pathops/src/SkPathOpsCurve.h
+++ b/src/pathops/SkPathOpsCurve.h
@@ -12,13 +12,13 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 struct SkPathOpsBounds;
 
diff --git a/modules/pathops/src/SkPathOpsDebug.cpp b/src/pathops/SkPathOpsDebug.cpp
similarity index 98%
rename from modules/pathops/src/SkPathOpsDebug.cpp
rename to src/pathops/SkPathOpsDebug.cpp
index a9aafdf..9246906 100644
--- a/modules/pathops/src/SkPathOpsDebug.cpp
+++ b/src/pathops/SkPathOpsDebug.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "modules/pathops/src/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsDebug.h"
 
 #include "include/core/SkPath.h"
 #include "include/core/SkPathTypes.h"
@@ -15,18 +15,18 @@
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkMath.h"
 #include "include/private/base/SkMutex.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkOpAngle.h"
-#include "modules/pathops/src/SkOpCoincidence.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/core/SkPathPriv.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpAngle.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <cstdint>
 #include <cstring>
@@ -82,7 +82,7 @@
 
 #if DEBUG_COIN
 
-#include "modules/pathops/src/SkOpContour.h"
+#include "src/pathops/SkOpContour.h"
 
 class SkCoincidentSpans;
 
diff --git a/modules/pathops/src/SkPathOpsDebug.h b/src/pathops/SkPathOpsDebug.h
similarity index 99%
rename from modules/pathops/src/SkPathOpsDebug.h
rename to src/pathops/SkPathOpsDebug.h
index cb0820e..ef0a233 100644
--- a/modules/pathops/src/SkPathOpsDebug.h
+++ b/src/pathops/SkPathOpsDebug.h
@@ -8,8 +8,8 @@
 #define SkPathOpsDebug_DEFINED
 
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/include/SkPathOps.h"
 
 #include <cstddef>
 
diff --git a/modules/pathops/src/SkPathOpsLine.cpp b/src/pathops/SkPathOpsLine.cpp
similarity index 97%
rename from modules/pathops/src/SkPathOpsLine.cpp
rename to src/pathops/SkPathOpsLine.cpp
index ecf2ee2..253f95b 100644
--- a/modules/pathops/src/SkPathOpsLine.cpp
+++ b/src/pathops/SkPathOpsLine.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsLine.h"
 
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <cmath>
 #include <algorithm>
diff --git a/modules/pathops/src/SkPathOpsLine.h b/src/pathops/SkPathOpsLine.h
similarity index 95%
rename from modules/pathops/src/SkPathOpsLine.h
rename to src/pathops/SkPathOpsLine.h
index 24e3009..ff5354d 100644
--- a/modules/pathops/src/SkPathOpsLine.h
+++ b/src/pathops/SkPathOpsLine.h
@@ -9,7 +9,7 @@
 
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsPoint.h"
 
 struct SkDLine {
     SkDPoint fPts[2];
diff --git a/modules/pathops/src/SkPathOpsOp.cpp b/src/pathops/SkPathOpsOp.cpp
similarity index 96%
rename from modules/pathops/src/SkPathOpsOp.cpp
rename to src/pathops/SkPathOpsOp.cpp
index dedc28b..ad7665f 100644
--- a/modules/pathops/src/SkPathOpsOp.cpp
+++ b/src/pathops/SkPathOpsOp.cpp
@@ -8,20 +8,20 @@
 #include "include/core/SkPathTypes.h"
 #include "include/core/SkRect.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkMath.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkAddIntersections.h"
-#include "modules/pathops/src/SkOpAngle.h"
-#include "modules/pathops/src/SkOpCoincidence.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpEdgeBuilder.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsCommon.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
-#include "modules/pathops/src/SkPathWriter.h"
 #include "src/base/SkArenaAlloc.h"
+#include "src/pathops/SkAddIntersections.h"
+#include "src/pathops/SkOpAngle.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsCommon.h"
+#include "src/pathops/SkPathOpsTypes.h"
+#include "src/pathops/SkPathWriter.h"
 
 #include <utility>
 
diff --git a/modules/pathops/src/SkPathOpsPoint.h b/src/pathops/SkPathOpsPoint.h
similarity index 98%
rename from modules/pathops/src/SkPathOpsPoint.h
rename to src/pathops/SkPathOpsPoint.h
index f0f49ef..2495772 100644
--- a/modules/pathops/src/SkPathOpsPoint.h
+++ b/src/pathops/SkPathOpsPoint.h
@@ -10,7 +10,7 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkTemplates.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 inline bool AlmostEqualUlps(const SkPoint& pt1, const SkPoint& pt2) {
     return AlmostEqualUlps(pt1.fX, pt2.fX) && AlmostEqualUlps(pt1.fY, pt2.fY);
diff --git a/modules/pathops/src/SkPathOpsQuad.cpp b/src/pathops/SkPathOpsQuad.cpp
similarity index 96%
rename from modules/pathops/src/SkPathOpsQuad.cpp
rename to src/pathops/SkPathOpsQuad.cpp
index 07ea6f2..12673ab 100644
--- a/modules/pathops/src/SkPathOpsQuad.cpp
+++ b/src/pathops/SkPathOpsQuad.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkLineParameters.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkLineParameters.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <algorithm>
 #include <cmath>
diff --git a/modules/pathops/src/SkPathOpsQuad.h b/src/pathops/SkPathOpsQuad.h
similarity index 96%
rename from modules/pathops/src/SkPathOpsQuad.h
rename to src/pathops/SkPathOpsQuad.h
index 447bcb2..201b4ee 100644
--- a/modules/pathops/src/SkPathOpsQuad.h
+++ b/src/pathops/SkPathOpsQuad.h
@@ -12,11 +12,11 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkMalloc.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTCurve.h"
 #include "src/base/SkArenaAlloc.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTCurve.h"
 
 class SkIntersections;
 class SkOpGlobalState;
diff --git a/modules/pathops/src/SkPathOpsRect.cpp b/src/pathops/SkPathOpsRect.cpp
similarity index 88%
rename from modules/pathops/src/SkPathOpsRect.cpp
rename to src/pathops/SkPathOpsRect.cpp
index 376370f..eb0a9b6 100644
--- a/modules/pathops/src/SkPathOpsRect.cpp
+++ b/src/pathops/SkPathOpsRect.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsRect.h"
 
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTCurve.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTCurve.h"
 
 void SkDRect::setBounds(const SkDQuad& curve, const SkDQuad& sub, double startT, double endT) {
     set(sub[0]);
diff --git a/modules/pathops/src/SkPathOpsRect.h b/src/pathops/SkPathOpsRect.h
similarity index 94%
rename from modules/pathops/src/SkPathOpsRect.h
rename to src/pathops/SkPathOpsRect.h
index 0bed9f1a5..4abd50d 100644
--- a/modules/pathops/src/SkPathOpsRect.h
+++ b/src/pathops/SkPathOpsRect.h
@@ -8,8 +8,8 @@
 #define SkPathOpsRect_DEFINED
 
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <algorithm>
 
diff --git a/modules/pathops/src/SkPathOpsSimplify.cpp b/src/pathops/SkPathOpsSimplify.cpp
similarity index 95%
rename from modules/pathops/src/SkPathOpsSimplify.cpp
rename to src/pathops/SkPathOpsSimplify.cpp
index c622511..ecab0b3 100644
--- a/modules/pathops/src/SkPathOpsSimplify.cpp
+++ b/src/pathops/SkPathOpsSimplify.cpp
@@ -7,19 +7,19 @@
 #include "include/core/SkPath.h"
 #include "include/core/SkPathTypes.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkPoint_impl.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkAddIntersections.h"
-#include "modules/pathops/src/SkOpCoincidence.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpEdgeBuilder.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsCommon.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
-#include "modules/pathops/src/SkPathWriter.h"
 #include "src/base/SkArenaAlloc.h"
+#include "src/pathops/SkAddIntersections.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsCommon.h"
+#include "src/pathops/SkPathOpsTypes.h"
+#include "src/pathops/SkPathWriter.h"
 
 static bool bridgeWinding(SkOpContourHead* contourList, SkPathWriter* writer) {
     bool unsortable = false;
diff --git a/modules/pathops/src/SkPathOpsTCurve.h b/src/pathops/SkPathOpsTCurve.h
similarity index 96%
rename from modules/pathops/src/SkPathOpsTCurve.h
rename to src/pathops/SkPathOpsTCurve.h
index eab7fea..1f9030e 100644
--- a/modules/pathops/src/SkPathOpsTCurve.h
+++ b/src/pathops/SkPathOpsTCurve.h
@@ -8,7 +8,7 @@
 #ifndef SkPathOpsTCurve_DEFINED
 #define SkPathOpsTCurve_DEFINED
 
-#include "modules/pathops/src/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsPoint.h"
 
 class SkArenaAlloc;
 class SkIntersections;
diff --git a/modules/pathops/src/SkPathOpsTSect.cpp b/src/pathops/SkPathOpsTSect.cpp
similarity index 99%
rename from modules/pathops/src/SkPathOpsTSect.cpp
rename to src/pathops/SkPathOpsTSect.cpp
index 2de0d39..adff55e 100644
--- a/modules/pathops/src/SkPathOpsTSect.cpp
+++ b/src/pathops/SkPathOpsTSect.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "modules/pathops/src/SkPathOpsTSect.h"
+#include "src/pathops/SkPathOpsTSect.h"
 
 #include "include/private/base/SkFloatingPoint.h"
 #include "include/private/base/SkMacros.h"
 #include "include/private/base/SkTArray.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
 #include "src/base/SkTSort.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 #include <cfloat>
 #include <algorithm>
diff --git a/modules/pathops/src/SkPathOpsTSect.h b/src/pathops/SkPathOpsTSect.h
similarity index 97%
rename from modules/pathops/src/SkPathOpsTSect.h
rename to src/pathops/SkPathOpsTSect.h
index 9b60981..8159539 100644
--- a/modules/pathops/src/SkPathOpsTSect.h
+++ b/src/pathops/SkPathOpsTSect.h
@@ -11,11 +11,11 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkTo.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
-#include "modules/pathops/src/SkPathOpsTCurve.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkArenaAlloc.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsTCurve.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <cstdint>
 
diff --git a/modules/pathops/src/SkPathOpsTightBounds.cpp b/src/pathops/SkPathOpsTightBounds.cpp
similarity index 91%
rename from modules/pathops/src/SkPathOpsTightBounds.cpp
rename to src/pathops/SkPathOpsTightBounds.cpp
index cdfdf0d..0b146b1 100644
--- a/modules/pathops/src/SkPathOpsTightBounds.cpp
+++ b/src/pathops/SkPathOpsTightBounds.cpp
@@ -10,13 +10,13 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkRect.h"
 #include "include/core/SkScalar.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpEdgeBuilder.h"
-#include "modules/pathops/src/SkPathOpsBounds.h"
-#include "modules/pathops/src/SkPathOpsCommon.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkArenaAlloc.h"
 #include "src/core/SkPathPriv.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsCommon.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <algorithm>
 
diff --git a/modules/pathops/src/SkPathOpsTypes.cpp b/src/pathops/SkPathOpsTypes.cpp
similarity index 98%
rename from modules/pathops/src/SkPathOpsTypes.cpp
rename to src/pathops/SkPathOpsTypes.cpp
index 3a6b45f..76147dc 100644
--- a/modules/pathops/src/SkPathOpsTypes.cpp
+++ b/src/pathops/SkPathOpsTypes.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include "include/private/base/SkFloatingPoint.h"
 #include "include/private/base/SkMath.h"
diff --git a/modules/pathops/src/SkPathOpsTypes.h b/src/pathops/SkPathOpsTypes.h
similarity index 99%
rename from modules/pathops/src/SkPathOpsTypes.h
rename to src/pathops/SkPathOpsTypes.h
index 5de0a1a..c05ac7c 100644
--- a/modules/pathops/src/SkPathOpsTypes.h
+++ b/src/pathops/SkPathOpsTypes.h
@@ -10,7 +10,7 @@
 #include "include/core/SkPath.h"
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsDebug.h"
 
 #include <cfloat>
 #include <cmath>
diff --git a/modules/pathops/src/SkPathOpsWinding.cpp b/src/pathops/SkPathOpsWinding.cpp
similarity index 97%
rename from modules/pathops/src/SkPathOpsWinding.cpp
rename to src/pathops/SkPathOpsWinding.cpp
index 21529d5..cc072ba 100644
--- a/modules/pathops/src/SkPathOpsWinding.cpp
+++ b/src/pathops/SkPathOpsWinding.cpp
@@ -30,15 +30,15 @@
 #include "include/private/base/SkMalloc.h"
 #include "include/private/base/SkMath.h"
 #include "include/private/base/SkTArray.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsBounds.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkArenaAlloc.h"
 #include "src/base/SkTSort.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <cmath>
 #include <utility>
diff --git a/modules/pathops/src/SkPathWriter.cpp b/src/pathops/SkPathWriter.cpp
similarity index 97%
rename from modules/pathops/src/SkPathWriter.cpp
rename to src/pathops/SkPathWriter.cpp
index 4a56d21..1f88fd4 100644
--- a/modules/pathops/src/SkPathWriter.cpp
+++ b/src/pathops/SkPathWriter.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkPathWriter.h"
+#include "src/pathops/SkPathWriter.h"
 
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkMath.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkTSort.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 using namespace skia_private;
 
diff --git a/modules/pathops/src/SkPathWriter.h b/src/pathops/SkPathWriter.h
similarity index 100%
rename from modules/pathops/src/SkPathWriter.h
rename to src/pathops/SkPathWriter.h
diff --git a/modules/pathops/src/SkReduceOrder.cpp b/src/pathops/SkReduceOrder.cpp
similarity index 97%
rename from modules/pathops/src/SkReduceOrder.cpp
rename to src/pathops/SkReduceOrder.cpp
index 6b24bf0..fbde6be 100644
--- a/modules/pathops/src/SkReduceOrder.cpp
+++ b/src/pathops/SkReduceOrder.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkReduceOrder.h"
+#include "src/pathops/SkReduceOrder.h"
 
 #include "include/core/SkPoint.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/core/SkGeometry.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #include <algorithm>
 #include <cmath>
diff --git a/modules/pathops/src/SkReduceOrder.h b/src/pathops/SkReduceOrder.h
similarity index 84%
rename from modules/pathops/src/SkReduceOrder.h
rename to src/pathops/SkReduceOrder.h
index 111f107..17acc8d 100644
--- a/modules/pathops/src/SkReduceOrder.h
+++ b/src/pathops/SkReduceOrder.h
@@ -8,9 +8,9 @@
 #define SkReduceOrder_DEFINED
 
 #include "include/core/SkPath.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 struct SkConic;
 struct SkPoint;
diff --git a/src/pdf/BUILD.bazel b/src/pdf/BUILD.bazel
index 5a4f870..392c0f6 100644
--- a/src/pdf/BUILD.bazel
+++ b/src/pdf/BUILD.bazel
@@ -85,12 +85,12 @@
     deps = [
         "//:core",
         "//src/base",
+        "//:pathops",
         "//src/codec:codec_support_priv",
         "//src/encode:icc_support",
         "//src/core:core_priv",
         "//src/utils:clip_stack_utils",
         "//src/utils:float_to_decimal",
-        "//modules/pathops",
         "//modules/skcms",
         "@zlib",
         # TODO(kjlubick) Remove this dependency after migrating clients
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index 5e4dcad..3270e37 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -41,10 +41,10 @@
 #include "include/core/SkTypeface.h"
 #include "include/core/SkTypes.h"
 #include "include/docs/SkPDFDocument.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkTemplates.h"
 #include "include/private/base/SkTo.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "src/base/SkScopeExit.h"
 #include "src/base/SkTLazy.h"
 #include "src/base/SkUTF.h"
diff --git a/src/pdf/SkPDFGraphicStackState.cpp b/src/pdf/SkPDFGraphicStackState.cpp
index e4078d1..de4b803 100644
--- a/src/pdf/SkPDFGraphicStackState.cpp
+++ b/src/pdf/SkPDFGraphicStackState.cpp
@@ -9,8 +9,8 @@
 #include "include/core/SkPathTypes.h"
 #include "include/core/SkRect.h"
 #include "include/core/SkStream.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkAssert.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "src/pdf/SkPDFUtils.h"
 #include "src/utils/SkClipStackUtils.h"
 
diff --git a/src/ports/SkTypeface_fontations.cpp b/src/ports/SkTypeface_fontations.cpp
index 5ee35f3b..a40337e 100644
--- a/src/ports/SkTypeface_fontations.cpp
+++ b/src/ports/SkTypeface_fontations.cpp
@@ -15,6 +15,7 @@
 #include "include/core/SkPictureRecorder.h"
 #include "include/core/SkStream.h"
 #include "include/effects/SkGradientShader.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkMutex.h"
 #include "src/base/SkScopeExit.h"
 #include "src/codec/SkCodecPriv.h"
diff --git a/src/utils/SkClipStackUtils.cpp b/src/utils/SkClipStackUtils.cpp
index 51bb1bd..0080f7f 100644
--- a/src/utils/SkClipStackUtils.cpp
+++ b/src/utils/SkClipStackUtils.cpp
@@ -9,7 +9,7 @@
 
 #include "include/core/SkPath.h"
 #include "include/core/SkPathTypes.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/core/SkClipStack.h"
 
 enum class SkClipOp;
diff --git a/tests/CubicChopTest.cpp b/tests/CubicChopTest.cpp
index d328d43..28c9278 100644
--- a/tests/CubicChopTest.cpp
+++ b/tests/CubicChopTest.cpp
@@ -8,10 +8,10 @@
 #include "include/core/SkSpan.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkFloatingPoint.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkBezierCurves.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/Test.h"
 
 #include <algorithm>
diff --git a/tests/CubicRootsTest.cpp b/tests/CubicRootsTest.cpp
index 3195747..80bd772 100644
--- a/tests/CubicRootsTest.cpp
+++ b/tests/CubicRootsTest.cpp
@@ -8,9 +8,9 @@
 #include "include/core/SkSpan.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkFloatingPoint.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
 #include "src/base/SkCubics.h"
 #include "src/base/SkUtils.h"
+#include "src/pathops/SkPathOpsCubic.h"
 #include "tests/Test.h"
 
 #include <algorithm>
diff --git a/tests/GrStyledShapeTest.cpp b/tests/GrStyledShapeTest.cpp
index 6aafab2..8e3547a 100644
--- a/tests/GrStyledShapeTest.cpp
+++ b/tests/GrStyledShapeTest.cpp
@@ -25,10 +25,10 @@
 #include "include/core/SkSurface.h"
 #include "include/core/SkTypes.h"
 #include "include/effects/SkDashPathEffect.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTArray.h"
 #include "include/private/base/SkTemplates.h"
 #include "include/private/base/SkTo.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "src/core/SkPathEffectBase.h"
 #include "src/core/SkPathPriv.h"
 #include "src/core/SkRectPriv.h"
diff --git a/tests/PathOpsAngleIdeas.cpp b/tests/PathOpsAngleIdeas.cpp
index d9939bb..1330e0c 100644
--- a/tests/PathOpsAngleIdeas.cpp
+++ b/tests/PathOpsAngleIdeas.cpp
@@ -9,18 +9,18 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkTArray.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkOpAngle.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkArenaAlloc.h"
 #include "src/base/SkRandom.h"
 #include "src/base/SkTSort.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpAngle.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsAngleTest.cpp b/tests/PathOpsAngleTest.cpp
index 7ffd52a..74fffc3 100644
--- a/tests/PathOpsAngleTest.cpp
+++ b/tests/PathOpsAngleTest.cpp
@@ -9,17 +9,17 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkTemplates.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkOpAngle.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkArenaAlloc.h"
 #include "src/base/SkFloatBits.h"
 #include "src/base/SkRandom.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpAngle.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsAsWindingTest.cpp b/tests/PathOpsAsWindingTest.cpp
index 2535235..da3c8ae 100644
--- a/tests/PathOpsAsWindingTest.cpp
+++ b/tests/PathOpsAsWindingTest.cpp
@@ -11,8 +11,8 @@
 #include "include/core/SkRect.h"
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/utils/SkParsePath.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "tests/Test.h"
 
 #include <initializer_list>
diff --git a/tests/PathOpsBattles.cpp b/tests/PathOpsBattles.cpp
index 0573ca6..7b27a85 100644
--- a/tests/PathOpsBattles.cpp
+++ b/tests/PathOpsBattles.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 #include "include/core/SkPath.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/base/SkFloatBits.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/Test.h"
diff --git a/tests/PathOpsBoundsTest.cpp b/tests/PathOpsBoundsTest.cpp
index 3f20a79..1fe39d3 100644
--- a/tests/PathOpsBoundsTest.cpp
+++ b/tests/PathOpsBoundsTest.cpp
@@ -7,11 +7,11 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkRect.h"
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkPathOpsBounds.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsBuildUseTest.cpp b/tests/PathOpsBuildUseTest.cpp
index 603044d..b98fe7c 100644
--- a/tests/PathOpsBuildUseTest.cpp
+++ b/tests/PathOpsBuildUseTest.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 #include "include/core/SkPath.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/base/SkFloatBits.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/Test.h"
diff --git a/tests/PathOpsBuilderConicTest.cpp b/tests/PathOpsBuilderConicTest.cpp
index 60b757e..8d9cd03 100644
--- a/tests/PathOpsBuilderConicTest.cpp
+++ b/tests/PathOpsBuilderConicTest.cpp
@@ -12,8 +12,8 @@
 #include "include/core/SkRect.h"
 #include "include/core/SkRegion.h"
 #include "include/core/SkScalar.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/utils/SkParsePath.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "src/base/SkFloatBits.h"
 #include "src/base/SkRandom.h"
 #include "tests/PathOpsExtendedTest.h"
diff --git a/tests/PathOpsBuilderTest.cpp b/tests/PathOpsBuilderTest.cpp
index 1ab316e..54d7e98 100644
--- a/tests/PathOpsBuilderTest.cpp
+++ b/tests/PathOpsBuilderTest.cpp
@@ -8,7 +8,7 @@
 #include "include/core/SkPath.h"
 #include "include/core/SkPathTypes.h"
 #include "include/core/SkRect.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/base/SkFloatBits.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/Test.h"
diff --git a/tests/PathOpsConicIntersectionTest.cpp b/tests/PathOpsConicIntersectionTest.cpp
index 9e2f0b2..2d2ad08 100644
--- a/tests/PathOpsConicIntersectionTest.cpp
+++ b/tests/PathOpsConicIntersectionTest.cpp
@@ -7,12 +7,12 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/core/SkGeometry.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
@@ -76,7 +76,7 @@
 #include "include/core/SkCanvas.h"
 #include "include/core/SkPaint.h"
 #include "include/core/SkString.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsRect.h"
 
 static void writePng(const SkConic& c, const SkConic ch[2], const char* name) {
     const int scale = 10;
diff --git a/tests/PathOpsConicLineIntersectionTest.cpp b/tests/PathOpsConicLineIntersectionTest.cpp
index 1a7912d..7e0f7be 100644
--- a/tests/PathOpsConicLineIntersectionTest.cpp
+++ b/tests/PathOpsConicLineIntersectionTest.cpp
@@ -8,13 +8,13 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkReduceOrder.h"
 #include "src/core/SkGeometry.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsConicQuadIntersectionTest.cpp b/tests/PathOpsConicQuadIntersectionTest.cpp
index 1204122..5fe0771 100644
--- a/tests/PathOpsConicQuadIntersectionTest.cpp
+++ b/tests/PathOpsConicQuadIntersectionTest.cpp
@@ -6,11 +6,11 @@
  */
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkReduceOrder.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsCubicConicIntersectionTest.cpp b/tests/PathOpsCubicConicIntersectionTest.cpp
index 8af6261..3772208 100644
--- a/tests/PathOpsCubicConicIntersectionTest.cpp
+++ b/tests/PathOpsCubicConicIntersectionTest.cpp
@@ -6,11 +6,11 @@
  */
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkReduceOrder.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsCubicIntersectionTest.cpp b/tests/PathOpsCubicIntersectionTest.cpp
index ab51edc..d11f36b 100644
--- a/tests/PathOpsCubicIntersectionTest.cpp
+++ b/tests/PathOpsCubicIntersectionTest.cpp
@@ -8,14 +8,14 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
-#include "modules/pathops/src/SkReduceOrder.h"
 #include "src/core/SkGeometry.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsTypes.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsCubicIntersectionTestData.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
diff --git a/tests/PathOpsCubicIntersectionTestData.cpp b/tests/PathOpsCubicIntersectionTestData.cpp
index e910156..4e383b9 100644
--- a/tests/PathOpsCubicIntersectionTestData.cpp
+++ b/tests/PathOpsCubicIntersectionTestData.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsCubicIntersectionTestData.h"
 
 #include <array>
diff --git a/tests/PathOpsCubicLineIntersectionIdeas.cpp b/tests/PathOpsCubicLineIntersectionIdeas.cpp
index 1a30a24..3cee422 100644
--- a/tests/PathOpsCubicLineIntersectionIdeas.cpp
+++ b/tests/PathOpsCubicLineIntersectionIdeas.cpp
@@ -6,10 +6,10 @@
  */
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
 #include "src/base/SkRandom.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsCubicLineIntersectionTest.cpp b/tests/PathOpsCubicLineIntersectionTest.cpp
index 9011f57..a7d03d6 100644
--- a/tests/PathOpsCubicLineIntersectionTest.cpp
+++ b/tests/PathOpsCubicLineIntersectionTest.cpp
@@ -6,12 +6,12 @@
  */
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkReduceOrder.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsCubicQuadIntersectionTest.cpp b/tests/PathOpsCubicQuadIntersectionTest.cpp
index e74a03b..167b2b1 100644
--- a/tests/PathOpsCubicQuadIntersectionTest.cpp
+++ b/tests/PathOpsCubicQuadIntersectionTest.cpp
@@ -6,11 +6,11 @@
  */
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkReduceOrder.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsCubicReduceOrderTest.cpp b/tests/PathOpsCubicReduceOrderTest.cpp
index 1d7d4a3..d7d1981 100644
--- a/tests/PathOpsCubicReduceOrderTest.cpp
+++ b/tests/PathOpsCubicReduceOrderTest.cpp
@@ -7,9 +7,9 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkMath.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkReduceOrder.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsCubicIntersectionTestData.h"
 #include "tests/PathOpsQuadIntersectionTestData.h"
 #include "tests/PathOpsTestCommon.h"
diff --git a/tests/PathOpsDCubicTest.cpp b/tests/PathOpsDCubicTest.cpp
index 899200e..23d163b 100644
--- a/tests/PathOpsDCubicTest.cpp
+++ b/tests/PathOpsDCubicTest.cpp
@@ -6,8 +6,8 @@
  */
 #include "include/core/SkSpan.h"
 #include "include/private/base/SkFloatingPoint.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsDLineTest.cpp b/tests/PathOpsDLineTest.cpp
index 54d4300..0c5521f 100644
--- a/tests/PathOpsDLineTest.cpp
+++ b/tests/PathOpsDLineTest.cpp
@@ -6,9 +6,9 @@
  */
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsDPointTest.cpp b/tests/PathOpsDPointTest.cpp
index 7d8f4fa..50c29e9 100644
--- a/tests/PathOpsDPointTest.cpp
+++ b/tests/PathOpsDPointTest.cpp
@@ -6,8 +6,8 @@
  */
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsDRectTest.cpp b/tests/PathOpsDRectTest.cpp
index 53e6a62..bbb7581 100644
--- a/tests/PathOpsDRectTest.cpp
+++ b/tests/PathOpsDRectTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsDVectorTest.cpp b/tests/PathOpsDVectorTest.cpp
index 4dfc209..529c57f 100644
--- a/tests/PathOpsDVectorTest.cpp
+++ b/tests/PathOpsDVectorTest.cpp
@@ -7,8 +7,8 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsDebug.cpp b/tests/PathOpsDebug.cpp
index 7ea55d9..513f3f8 100644
--- a/tests/PathOpsDebug.cpp
+++ b/tests/PathOpsDebug.cpp
@@ -8,26 +8,26 @@
 #include "include/core/SkPath.h"
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkMath.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkOpAngle.h"
-#include "modules/pathops/src/SkOpCoincidence.h"
-#include "modules/pathops/src/SkOpContour.h"
-#include "modules/pathops/src/SkOpSegment.h"
-#include "modules/pathops/src/SkOpSpan.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsCurve.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
-#include "modules/pathops/src/SkPathOpsTSect.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
 #include "src/base/SkArenaAlloc.h"
 #include "src/base/SkFloatBits.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpAngle.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsTSect.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsDebug.h"
 
 #include <algorithm>
diff --git a/tests/PathOpsExtendedTest.cpp b/tests/PathOpsExtendedTest.cpp
index 18e726e..46a0571 100644
--- a/tests/PathOpsExtendedTest.cpp
+++ b/tests/PathOpsExtendedTest.cpp
@@ -23,9 +23,9 @@
 #include "include/private/base/SkMutex.h"
 #include "include/private/base/SkTDArray.h"
 #include "include/utils/SkParsePath.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
 #include "src/base/SkFloatBits.h"
 #include "src/core/SkPathPriv.h"
+#include "src/pathops/SkPathOpsDebug.h"
 #include "tests/PathOpsDebug.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/PathOpsThreadedCommon.h"
diff --git a/tests/PathOpsExtendedTest.h b/tests/PathOpsExtendedTest.h
index f34b058..72086dc 100644
--- a/tests/PathOpsExtendedTest.h
+++ b/tests/PathOpsExtendedTest.h
@@ -8,7 +8,7 @@
 #define PathOpsExtendedTest_DEFINED
 
 #include "include/core/SkBitmap.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 
 #include <cstddef>
 
diff --git a/tests/PathOpsFuzz763Test.cpp b/tests/PathOpsFuzz763Test.cpp
index 67ca90b..b60e9ee 100644
--- a/tests/PathOpsFuzz763Test.cpp
+++ b/tests/PathOpsFuzz763Test.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 #include "include/core/SkPath.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/base/SkFloatBits.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsInverseTest.cpp b/tests/PathOpsInverseTest.cpp
index 412650a..fd7de6d 100644
--- a/tests/PathOpsInverseTest.cpp
+++ b/tests/PathOpsInverseTest.cpp
@@ -7,7 +7,7 @@
 #include "include/core/SkPath.h"
 #include "include/core/SkPathTypes.h"
 #include "include/core/SkString.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsIssue3651.cpp b/tests/PathOpsIssue3651.cpp
index 7c7b69c..64f4940 100644
--- a/tests/PathOpsIssue3651.cpp
+++ b/tests/PathOpsIssue3651.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 #include "include/core/SkPath.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/base/SkFloatBits.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsLineIntersectionTest.cpp b/tests/PathOpsLineIntersectionTest.cpp
index 9e757f4..1322c86 100644
--- a/tests/PathOpsLineIntersectionTest.cpp
+++ b/tests/PathOpsLineIntersectionTest.cpp
@@ -6,9 +6,9 @@
  */
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsLineParametetersTest.cpp b/tests/PathOpsLineParametetersTest.cpp
index ba6f921..0d9facd 100644
--- a/tests/PathOpsLineParametetersTest.cpp
+++ b/tests/PathOpsLineParametetersTest.cpp
@@ -6,9 +6,9 @@
  */
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkLineParameters.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkLineParameters.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsOpCircleThreadedTest.cpp b/tests/PathOpsOpCircleThreadedTest.cpp
index 4c3ee9e..c57cb78 100644
--- a/tests/PathOpsOpCircleThreadedTest.cpp
+++ b/tests/PathOpsOpCircleThreadedTest.cpp
@@ -10,9 +10,9 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkString.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsDebug.h"
 #include "tests/PathOpsDebug.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/PathOpsThreadedCommon.h"
diff --git a/tests/PathOpsOpCubicThreadedTest.cpp b/tests/PathOpsOpCubicThreadedTest.cpp
index 693be72..739b389 100644
--- a/tests/PathOpsOpCubicThreadedTest.cpp
+++ b/tests/PathOpsOpCubicThreadedTest.cpp
@@ -9,9 +9,9 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkString.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsDebug.h"
 #include "tests/PathOpsDebug.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/PathOpsThreadedCommon.h"
diff --git a/tests/PathOpsOpLoopThreadedTest.cpp b/tests/PathOpsOpLoopThreadedTest.cpp
index 3c6d164..f1849c3 100644
--- a/tests/PathOpsOpLoopThreadedTest.cpp
+++ b/tests/PathOpsOpLoopThreadedTest.cpp
@@ -9,8 +9,8 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkString.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "tests/PathOpsDebug.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/PathOpsThreadedCommon.h"
diff --git a/tests/PathOpsOpRectThreadedTest.cpp b/tests/PathOpsOpRectThreadedTest.cpp
index 6d18ed4..52b9ea9 100644
--- a/tests/PathOpsOpRectThreadedTest.cpp
+++ b/tests/PathOpsOpRectThreadedTest.cpp
@@ -9,9 +9,9 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkString.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsDebug.h"
 #include "tests/PathOpsDebug.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/PathOpsThreadedCommon.h"
diff --git a/tests/PathOpsOpTest.cpp b/tests/PathOpsOpTest.cpp
index 4672375..c48924a 100644
--- a/tests/PathOpsOpTest.cpp
+++ b/tests/PathOpsOpTest.cpp
@@ -11,14 +11,14 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkString.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkDebug.h"
 #include "include/utils/SkParsePath.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
 #include "src/base/SkFloatBits.h"
 #include "src/core/SkGeometry.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
 #include "tests/PathOpsDebug.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/PathOpsTestCommon.h"
diff --git a/tests/PathOpsQuadIntersectionTest.cpp b/tests/PathOpsQuadIntersectionTest.cpp
index 3878e0c..87afa0c 100644
--- a/tests/PathOpsQuadIntersectionTest.cpp
+++ b/tests/PathOpsQuadIntersectionTest.cpp
@@ -6,13 +6,13 @@
  */
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
-#include "modules/pathops/src/SkReduceOrder.h"
 #include "src/base/SkFloatBits.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTypes.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsQuadIntersectionTestData.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
diff --git a/tests/PathOpsQuadLineIntersectionTest.cpp b/tests/PathOpsQuadLineIntersectionTest.cpp
index fb0562a..9222b5f 100644
--- a/tests/PathOpsQuadLineIntersectionTest.cpp
+++ b/tests/PathOpsQuadLineIntersectionTest.cpp
@@ -6,11 +6,11 @@
  */
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkReduceOrder.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsQuadLineIntersectionThreadedTest.cpp b/tests/PathOpsQuadLineIntersectionThreadedTest.cpp
index 403b68d..bea6103 100644
--- a/tests/PathOpsQuadLineIntersectionThreadedTest.cpp
+++ b/tests/PathOpsQuadLineIntersectionThreadedTest.cpp
@@ -8,11 +8,11 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkTDArray.h"
 #include "include/private/base/SkTemplates.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkReduceOrder.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/PathOpsThreadedCommon.h"
diff --git a/tests/PathOpsQuadReduceOrderTest.cpp b/tests/PathOpsQuadReduceOrderTest.cpp
index 12920ee..956c04c 100644
--- a/tests/PathOpsQuadReduceOrderTest.cpp
+++ b/tests/PathOpsQuadReduceOrderTest.cpp
@@ -7,8 +7,8 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
 #include "include/private/base/SkMath.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkReduceOrder.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsQuadIntersectionTestData.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
diff --git a/tests/PathOpsSimplifyFailTest.cpp b/tests/PathOpsSimplifyFailTest.cpp
index 3834fd4..c4ee599 100644
--- a/tests/PathOpsSimplifyFailTest.cpp
+++ b/tests/PathOpsSimplifyFailTest.cpp
@@ -8,7 +8,7 @@
 #include "include/core/SkPathTypes.h"
 #include "include/core/SkPoint.h"
 #include "include/core/SkScalar.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/base/SkFloatBits.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/Test.h"
diff --git a/tests/PathOpsSimplifyTest.cpp b/tests/PathOpsSimplifyTest.cpp
index d0d75d0..4386244 100644
--- a/tests/PathOpsSimplifyTest.cpp
+++ b/tests/PathOpsSimplifyTest.cpp
@@ -10,9 +10,9 @@
 #include "include/core/SkRect.h"
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsDebug.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/base/SkFloatBits.h"
+#include "src/pathops/SkPathOpsDebug.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsSkpTest.cpp b/tests/PathOpsSkpTest.cpp
index c64f164..102bbb9 100644
--- a/tests/PathOpsSkpTest.cpp
+++ b/tests/PathOpsSkpTest.cpp
@@ -6,7 +6,7 @@
  */
 #include "include/core/SkPath.h"
 #include "include/core/SkPathTypes.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/base/SkFloatBits.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/Test.h"
diff --git a/tests/PathOpsTSectDebug.h b/tests/PathOpsTSectDebug.h
index a05d9c9..c2224d5 100644
--- a/tests/PathOpsTSectDebug.h
+++ b/tests/PathOpsTSectDebug.h
@@ -7,7 +7,7 @@
 #ifndef PathOpsTSectDebug_DEFINED
 #define PathOpsTSectDebug_DEFINED
 
-#include "modules/pathops/src/SkPathOpsTSect.h"
+#include "src/pathops/SkPathOpsTSect.h"
 
 
 #endif  // PathOpsTSectDebug_DEFINED
diff --git a/tests/PathOpsTestCommon.cpp b/tests/PathOpsTestCommon.cpp
index 094d85d..c3fffa2 100644
--- a/tests/PathOpsTestCommon.cpp
+++ b/tests/PathOpsTestCommon.cpp
@@ -9,17 +9,17 @@
 #include "include/core/SkPathTypes.h"
 #include "include/core/SkPoint.h"
 #include "include/core/SkTypes.h"
-#include "modules/pathops/src/SkPathOpsBounds.h"
-#include "modules/pathops/src/SkPathOpsConic.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
-#include "modules/pathops/src/SkPathOpsRect.h"
-#include "modules/pathops/src/SkPathOpsTSect.h"
-#include "modules/pathops/src/SkPathOpsTypes.h"
-#include "modules/pathops/src/SkReduceOrder.h"
 #include "src/base/SkTSort.h"
 #include "src/core/SkPathPriv.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsTSect.h"
+#include "src/pathops/SkPathOpsTypes.h"
+#include "src/pathops/SkReduceOrder.h"
 #include "tests/PathOpsTestCommon.h"
 
 #include <cmath>
diff --git a/tests/PathOpsTestCommon.h b/tests/PathOpsTestCommon.h
index b7628dd..4e1179c 100644
--- a/tests/PathOpsTestCommon.h
+++ b/tests/PathOpsTestCommon.h
@@ -9,7 +9,7 @@
 
 #include "include/core/SkScalar.h"
 #include "include/private/base/SkTArray.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsPoint.h"
 
 class SkPath;
 struct SkDConic;
diff --git a/tests/PathOpsThreadedCommon.h b/tests/PathOpsThreadedCommon.h
index 369ed03..ec7235d 100644
--- a/tests/PathOpsThreadedCommon.h
+++ b/tests/PathOpsThreadedCommon.h
@@ -9,8 +9,8 @@
 
 #include "include/core/SkBitmap.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/include/SkPathOps.h"
 
 #include <cstring>
 #include <string>
diff --git a/tests/PathOpsThreeWayTest.cpp b/tests/PathOpsThreeWayTest.cpp
index 76d5cd3..6af5160 100644
--- a/tests/PathOpsThreeWayTest.cpp
+++ b/tests/PathOpsThreeWayTest.cpp
@@ -7,10 +7,10 @@
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkMalloc.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/src/SkIntersections.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsLine.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
 #include "tests/PathOpsTestCommon.h"
 #include "tests/Test.h"
 
diff --git a/tests/PathOpsTightBoundsTest.cpp b/tests/PathOpsTightBoundsTest.cpp
index da9ef43..7a46c49 100644
--- a/tests/PathOpsTightBoundsTest.cpp
+++ b/tests/PathOpsTightBoundsTest.cpp
@@ -10,10 +10,10 @@
 #include "include/core/SkPaint.h"
 #include "include/core/SkPath.h"
 #include "include/core/SkRect.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTDArray.h"
-#include "modules/pathops/include/SkPathOps.h"
-#include "modules/pathops/src/SkPathOpsCommon.h"
 #include "src/base/SkRandom.h"
+#include "src/pathops/SkPathOpsCommon.h"
 #include "tests/PathOpsExtendedTest.h"
 #include "tests/PathOpsThreadedCommon.h"
 #include "tests/Test.h"
diff --git a/tests/PathOpsTypesTest.cpp b/tests/PathOpsTypesTest.cpp
index 421a5da..ab35f31 100644
--- a/tests/PathOpsTypesTest.cpp
+++ b/tests/PathOpsTypesTest.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "modules/pathops/src/SkPathOpsTypes.h"
+#include "src/pathops/SkPathOpsTypes.h"
 #include "tests/Test.h"
 
 #include <array>
diff --git a/tests/QuadRootsTest.cpp b/tests/QuadRootsTest.cpp
index b202a8f..3f13ee6 100644
--- a/tests/QuadRootsTest.cpp
+++ b/tests/QuadRootsTest.cpp
@@ -10,7 +10,7 @@
 #include "include/core/SkSpan.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkFloatingPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsQuad.h"
 #include "tests/Test.h"
 
 #include <algorithm>
diff --git a/tests/RoundRectTest.cpp b/tests/RoundRectTest.cpp
index 82d5a95..218b111 100644
--- a/tests/RoundRectTest.cpp
+++ b/tests/RoundRectTest.cpp
@@ -12,7 +12,7 @@
 #include "include/core/SkRect.h"
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
-#include "modules/pathops/include/SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 #include "src/base/SkRandom.h"
 #include "src/core/SkPointPriv.h"
 #include "src/core/SkRRectPriv.h"
diff --git a/tests/StrokerTest.cpp b/tests/StrokerTest.cpp
index 5c5fe47..df66e3a 100644
--- a/tests/StrokerTest.cpp
+++ b/tests/StrokerTest.cpp
@@ -12,13 +12,13 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
 #include "include/private/base/SkDebug.h"
-#include "modules/pathops/src/SkPathOpsCubic.h"
-#include "modules/pathops/src/SkPathOpsPoint.h"
-#include "modules/pathops/src/SkPathOpsQuad.h"
 #include "src/base/SkFloatBits.h"
 #include "src/base/SkRandom.h"
 #include "src/core/SkPointPriv.h"
 #include "src/core/SkStrokerPriv.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
 #include "tests/PathOpsCubicIntersectionTestData.h"
 #include "tests/PathOpsQuadIntersectionTestData.h"
 #include "tests/PathOpsTestCommon.h"
diff --git a/tools/fonts/TestSVGTypeface.cpp b/tools/fonts/TestSVGTypeface.cpp
index fc063f5..66c75d9 100644
--- a/tools/fonts/TestSVGTypeface.cpp
+++ b/tools/fonts/TestSVGTypeface.cpp
@@ -29,10 +29,10 @@
 #include "include/core/SkStream.h"
 #include "include/core/SkSurface.h"
 #include "include/encode/SkPngEncoder.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTDArray.h"
 #include "include/private/base/SkTemplates.h"
 #include "include/utils/SkNoDrawCanvas.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "modules/svg/include/SkSVGDOM.h"
 #include "modules/svg/include/SkSVGNode.h"
 #include "src/base/SkUtils.h"
diff --git a/tools/fonts/TestSVGTypeface.h b/tools/fonts/TestSVGTypeface.h
index 6d20387..a2f4793 100644
--- a/tools/fonts/TestSVGTypeface.h
+++ b/tools/fonts/TestSVGTypeface.h
@@ -20,9 +20,9 @@
 #include "include/core/SkString.h"
 #include "include/core/SkTypeface.h"
 #include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkMutex.h"
 #include "include/private/base/SkTArray.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "src/core/SkTHash.h"
 
 #include <memory>
diff --git a/tools/viewer/AndroidShadowsSlide.cpp b/tools/viewer/AndroidShadowsSlide.cpp
index 094a0ab..db3a386 100644
--- a/tools/viewer/AndroidShadowsSlide.cpp
+++ b/tools/viewer/AndroidShadowsSlide.cpp
@@ -10,9 +10,9 @@
 #include "include/core/SkPath.h"
 #include "include/core/SkPoint3.h"
 #include "include/core/SkRRect.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/utils/SkCamera.h"
 #include "include/utils/SkShadowUtils.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "src/base/SkUTF.h"
 #include "src/core/SkBlurMask.h"
 #include "tools/ToolUtils.h"
diff --git a/tools/viewer/DegenerateQuadsSlide.cpp b/tools/viewer/DegenerateQuadsSlide.cpp
index 32e77a9..9310834 100644
--- a/tools/viewer/DegenerateQuadsSlide.cpp
+++ b/tools/viewer/DegenerateQuadsSlide.cpp
@@ -9,8 +9,8 @@
 #include "include/core/SkPaint.h"
 #include "include/core/SkPathEffect.h"
 #include "include/effects/SkDashPathEffect.h"
+#include "include/pathops/SkPathOps.h"
 #include "include/private/base/SkTPin.h"
-#include "modules/pathops/include/SkPathOps.h"
 #include "src/gpu/ganesh/geometry/GrQuad.h"
 #include "src/gpu/ganesh/ops/QuadPerEdgeAA.h"
 #include "tools/viewer/ClickHandlerSlide.h"