diff --git a/gm/overdrawcanvas.cpp b/gm/overdrawcanvas.cpp
index 8cd6325..b24d0b6 100644
--- a/gm/overdrawcanvas.cpp
+++ b/gm/overdrawcanvas.cpp
@@ -24,9 +24,8 @@
 #define WIDTH 500
 #define HEIGHT 500
 
-// These are treated as RGBA_premul
-static const uint32_t kOverdrawColors[6] = {
-        0x00000000, 0x5f00005f, 0x2f2f0000, 0x2f002f00, 0x3f00003f, 0x7f00007f,
+static const SkColor kOverdrawColors[6] = {
+    0x00000000, 0x5fff0000, 0x2f0000ff, 0x2f00ff00, 0x3fff0000, 0x7fff0000,
 };
 
 
@@ -52,7 +51,7 @@
 
     // Draw overdraw colors to the canvas.  The color filter will convert counts to colors.
     SkPaint paint;
-    paint.setColorFilter(SkOverdrawColorFilter::Make(kOverdrawColors));
+    paint.setColorFilter(SkOverdrawColorFilter::MakeWithSkColors(kOverdrawColors));
     canvas->drawImage(counts.get(), 0.0f, 0.0f, &paint);
     canvas->drawString("This is some text:", 180, 300, SkFont(), SkPaint());
 }
diff --git a/include/effects/SkOverdrawColorFilter.h b/include/effects/SkOverdrawColorFilter.h
index 514c7c5..1588162 100644
--- a/include/effects/SkOverdrawColorFilter.h
+++ b/include/effects/SkOverdrawColorFilter.h
@@ -23,10 +23,6 @@
 public:
     static constexpr int kNumColors = 6;
 
-    // DEPRECATED
-    // For historical reasons, this version of Make() assumes the array is RGBA-premul
-    static sk_sp<SkColorFilter> Make(const uint32_t colors[kNumColors]);
-
     static sk_sp<SkColorFilter> MakeWithSkColors(const SkColor colors[kNumColors]) {
         return sk_sp<SkColorFilter>(new SkOverdrawColorFilter(colors));
     }
diff --git a/src/effects/SkOverdrawColorFilter.cpp b/src/effects/SkOverdrawColorFilter.cpp
index 35664e48..3cf6d4c 100644
--- a/src/effects/SkOverdrawColorFilter.cpp
+++ b/src/effects/SkOverdrawColorFilter.cpp
@@ -43,26 +43,6 @@
 )";
 #endif
 
-#ifdef SK_PMCOLOR_IS_BGRA
-static uint32_t swizzle_rb(uint32_t c) {
-    // c is not SkColor per-se, but these macros will correctly swap r/b channels
-    return SkColorSetARGB(SkColorGetA(c), SkColorGetB(c), SkColorGetG(c), SkColorGetR(c));
-}
-#endif
-
-// Legacy factory, will go away
-sk_sp<SkColorFilter> SkOverdrawColorFilter::Make(const uint32_t rgba[kNumColors]) {
-    SkColor colors[kNumColors];
-    for (int i = 0; i < kNumColors; ++i) {
-#ifdef SK_PMCOLOR_IS_BGRA
-        colors[i] = SkUnPreMultiply::PMColorToColor(swizzle_rb(rgba[i]));
-#else
-        colors[i] = SkUnPreMultiply::PMColorToColor(rgba[i]);
-#endif
-    }
-    return MakeWithSkColors(colors);
-}
-
 static void convert_to_pm4f(SkPMColor4f dst[], const SkColor src[]) {
     for (int i = 0; i < SkOverdrawColorFilter::kNumColors; ++i) {
         dst[i] = SkColor4f::FromColor(src[i]).premul();
