Reland "Take GrContext private, GrDDLContext inherit from GrRecordingContext"

This reverts commit 89bdc90ac877dc8cd49c86c35a20d9df0d3b9016.

Reason for revert: Fix metal

Original change's description:
> Revert "Take GrContext private, GrDDLContext inherit from GrRecordingContext"
>
> This reverts commit d2daa94edeca88281796524fae45f38f11a7bef2.
>
> Reason for revert: Metaru
>
> Original change's description:
> > Take GrContext private, GrDDLContext inherit from GrRecordingContext
> >
> > Woo!
> >
> > Change-Id: I8d201b709343dc18cad31ea740575285dd035f35
> > Docs-Preview: https://skia.org/?cl=317436
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317436
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Adlai Holler <adlai@google.com>
>
> TBR=bsalomon@google.com,robertphillips@google.com,adlai@google.com
>
> Change-Id: I9b58dee285fbdc49ebc8e76df5da0fe224cf9787
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318758
> Reviewed-by: Adlai Holler <adlai@google.com>
> Commit-Queue: Adlai Holler <adlai@google.com>

TBR=bsalomon@google.com,robertphillips@google.com,adlai@google.com


Change-Id: Id4b10795193a904cd4ed8c36e60e74abe3b6702a
Docs-Preview: https://skia.org/?cl=318759
Cq-Include-Trybots: luci.skia.skia.primary:Build-Mac10.15.5-Clang-arm64-Debug-iOS_Metal,Build-Mac-Clang-x86_64-Debug-Metal
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318759
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Adlai Holler <adlai@google.com>
diff --git a/experimental/skottiekit/skottiekit_bindings.cpp b/experimental/skottiekit/skottiekit_bindings.cpp
index b115fc3..a8f5807 100644
--- a/experimental/skottiekit/skottiekit_bindings.cpp
+++ b/experimental/skottiekit/skottiekit_bindings.cpp
@@ -31,7 +31,7 @@
 #ifdef SK_GL
 #include "include/core/SkImageInfo.h"
 #include "include/gpu/GrBackendSurface.h"
-#include "include/gpu/GrContext.h"
+#include "include/gpu/GrDirectContext.h"
 #include "include/gpu/gl/GrGLInterface.h"
 #include "include/gpu/gl/GrGLTypes.h"
 
@@ -214,6 +214,7 @@
 }
 
 #ifdef SK_GL
+// TODO: Migrate this to GrDirectContext.
 sk_sp<GrContext> MakeGrContext(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context)
 {
     EMSCRIPTEN_RESULT r = emscripten_webgl_make_context_current(context);
@@ -221,10 +222,10 @@
         printf("failed to make webgl context current %d\n", r);
         return nullptr;
     }
-    // setup GrContext
+    // setup GrDirectContext
     auto interface = GrGLMakeNativeInterface();
     // setup contexts
-    sk_sp<GrContext> grContext(GrContext::MakeGL(interface));
+    sk_sp<GrContext> grContext(GrDirectContext::MakeGL(interface));
     return grContext;
 }
 
diff --git a/experimental/wasm-skp-debugger/debugger_bindings.cpp b/experimental/wasm-skp-debugger/debugger_bindings.cpp
index 2f751c6..f64d4a1 100644
--- a/experimental/wasm-skp-debugger/debugger_bindings.cpp
+++ b/experimental/wasm-skp-debugger/debugger_bindings.cpp
@@ -33,7 +33,7 @@
 
 #ifdef SK_GL
 #include "include/gpu/GrBackendSurface.h"
-#include "include/gpu/GrContext.h"
+#include "include/gpu/GrDirectContext.h"
 #include "include/gpu/gl/GrGLInterface.h"
 #include "include/gpu/gl/GrGLTypes.h"
 
@@ -436,7 +436,7 @@
         return nullptr;
     }
     // setup contexts
-    sk_sp<GrContext> grContext(GrContext::MakeGL(interface));
+    sk_sp<GrContext> grContext(GrDirectContext::MakeGL(interface));
     return grContext;
 }
 
diff --git a/gn/gpu.gni b/gn/gpu.gni
index 2c91236..48e270c 100644
--- a/gn/gpu.gni
+++ b/gn/gpu.gni
@@ -13,7 +13,6 @@
   "$_include/gpu/GrBackendSurface.h",
   "$_include/gpu/GrBackendSurfaceMutableState.h",
   "$_include/gpu/GrConfig.h",
-  "$_include/gpu/GrContext.h",
   "$_include/gpu/GrContextOptions.h",
   "$_include/gpu/GrContextThreadSafeProxy.h",
   "$_include/gpu/GrDirectContext.h",
@@ -22,6 +21,7 @@
   "$_include/gpu/GrTypes.h",
 
   # Private includes
+  "$_include/private/GrContext.h",
   "$_include/private/GrContext_Base.h",
   "$_include/private/GrGLTypesPriv.h",
   "$_include/private/GrImageContext.h",
diff --git a/include/gpu/GrDirectContext.h b/include/gpu/GrDirectContext.h
index a37bf0b..ccaa2fc 100644
--- a/include/gpu/GrDirectContext.h
+++ b/include/gpu/GrDirectContext.h
@@ -8,7 +8,7 @@
 #ifndef GrDirectContext_DEFINED
 #define GrDirectContext_DEFINED
 
-#include "include/gpu/GrContext.h"
+#include "include/private/GrContext.h"
 
 class GrAtlasManager;
 class GrSmallPathAtlasMgr;
diff --git a/include/gpu/GrContext.h b/include/private/GrContext.h
similarity index 93%
rename from include/gpu/GrContext.h
rename to include/private/GrContext.h
index 0a96abc..d645b60 100644
--- a/include/gpu/GrContext.h
+++ b/include/private/GrContext.h
@@ -49,62 +49,6 @@
 
 class SK_API GrContext : public GrRecordingContext {
 public:
-#ifndef SK_DISABLE_LEGACY_CONTEXT_FACTORIES
-
-#ifdef SK_GL
-    /**
-     * Creates a GrContext for a backend context. If no GrGLInterface is provided then the result of
-     * GrGLMakeNativeInterface() is used if it succeeds.
-     */
-    static sk_sp<GrContext> MakeGL(sk_sp<const GrGLInterface>, const GrContextOptions&);
-    static sk_sp<GrContext> MakeGL(sk_sp<const GrGLInterface>);
-    static sk_sp<GrContext> MakeGL(const GrContextOptions&);
-    static sk_sp<GrContext> MakeGL();
-#endif
-
-#ifdef SK_VULKAN
-    /**
-     * The Vulkan context (VkQueue, VkDevice, VkInstance) must be kept alive until the returned
-     * GrContext is destroyed. This also means that any objects created with this GrContext (e.g.
-     * SkSurfaces, SkImages, etc.) must also be released as they may hold refs on the GrContext.
-     * Once all these objects and the GrContext are released, then it is safe to delete the vulkan
-     * objects.
-     */
-    static sk_sp<GrContext> MakeVulkan(const GrVkBackendContext&, const GrContextOptions&);
-    static sk_sp<GrContext> MakeVulkan(const GrVkBackendContext&);
-#endif
-
-#ifdef SK_METAL
-    /**
-     * Makes a GrContext which uses Metal as the backend. The device parameter is an MTLDevice
-     * and queue is an MTLCommandQueue which should be used by the backend. These objects must
-     * have a ref on them which can be transferred to Ganesh which will release the ref when the
-     * GrContext is destroyed.
-     */
-    static sk_sp<GrContext> MakeMetal(void* device, void* queue, const GrContextOptions& options);
-    static sk_sp<GrContext> MakeMetal(void* device, void* queue);
-#endif
-
-#ifdef SK_DIRECT3D
-    /**
-     * Makes a GrContext which uses Direct3D as the backend. The Direct3D context
-     * must be kept alive until the returned GrContext is first destroyed or abandoned.
-     */
-    static sk_sp<GrContext> MakeDirect3D(const GrD3DBackendContext&,
-                                         const GrContextOptions& options);
-    static sk_sp<GrContext> MakeDirect3D(const GrD3DBackendContext&);
-#endif
-
-#ifdef SK_DAWN
-    static sk_sp<GrContext> MakeDawn(const wgpu::Device& device, const GrContextOptions& options);
-    static sk_sp<GrContext> MakeDawn(const wgpu::Device& device);
-#endif
-
-    static sk_sp<GrContext> MakeMock(const GrMockOptions*, const GrContextOptions&);
-    static sk_sp<GrContext> MakeMock(const GrMockOptions*);
-
-#endif // SK_DISABLE_LEGACY_CONTEXT_FACTORIES
-
     ~GrContext() override;
 
     // TODO: Remove this from public after migrating Chrome.
diff --git a/modules/canvaskit/canvaskit_bindings.cpp b/modules/canvaskit/canvaskit_bindings.cpp
index 5df3eed..6535f1b 100644
--- a/modules/canvaskit/canvaskit_bindings.cpp
+++ b/modules/canvaskit/canvaskit_bindings.cpp
@@ -150,21 +150,21 @@
     GrGLenum pixFormat;
 };
 
-sk_sp<GrContext> MakeGrContext(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context)
+sk_sp<GrDirectContext> MakeGrContext(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context)
 {
     EMSCRIPTEN_RESULT r = emscripten_webgl_make_context_current(context);
     if (r < 0) {
         printf("failed to make webgl context current %d\n", r);
         return nullptr;
     }
-    // setup GrContext
+    // setup GrDirectContext
     auto interface = GrGLMakeNativeInterface();
     // setup contexts
-    sk_sp<GrContext> grContext(GrContext::MakeGL(interface));
-    return grContext;
+    sk_sp<GrDirectContext> dContext(GrDirectContext::MakeGL(interface));
+    return dContext;
 }
 
-sk_sp<SkSurface> MakeOnScreenGLSurface(sk_sp<GrContext> grContext, int width, int height,
+sk_sp<SkSurface> MakeOnScreenGLSurface(sk_sp<GrDirectContext> dContext, int width, int height,
                                        sk_sp<SkColorSpace> colorSpace) {
     // WebGL should already be clearing the color and stencil buffers, but do it again here to
     // ensure Skia receives them in the expected state.
@@ -172,7 +172,7 @@
     glClearColor(0, 0, 0, 0);
     glClearStencil(0);
     glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
-    grContext->resetContext(kRenderTarget_GrGLBackendState | kMisc_GrGLBackendState);
+    dContext->resetContext(kRenderTarget_GrGLBackendState | kMisc_GrGLBackendState);
 
     // The on-screen canvas is FBO 0. Wrap it in a Skia render target so Skia can render to it.
     GrGLFramebufferInfo info;
@@ -187,15 +187,15 @@
     const auto colorSettings = ColorSettings(colorSpace);
     info.fFormat = colorSettings.pixFormat;
     GrBackendRenderTarget target(width, height, sampleCnt, stencil, info);
-    sk_sp<SkSurface> surface(SkSurface::MakeFromBackendRenderTarget(grContext.get(), target,
+    sk_sp<SkSurface> surface(SkSurface::MakeFromBackendRenderTarget(dContext.get(), target,
         kBottomLeft_GrSurfaceOrigin, colorSettings.colorType, colorSpace, nullptr));
     return surface;
 }
 
-sk_sp<SkSurface> MakeRenderTarget(sk_sp<GrContext> grContext, int width, int height) {
+sk_sp<SkSurface> MakeRenderTarget(sk_sp<GrDirectContext> dContext, int width, int height) {
     SkImageInfo info = SkImageInfo::MakeN32(width, height, SkAlphaType::kPremul_SkAlphaType);
 
-    sk_sp<SkSurface> surface(SkSurface::MakeRenderTarget(grContext.get(),
+    sk_sp<SkSurface> surface(SkSurface::MakeRenderTarget(dContext.get(),
                              SkBudgeted::kYes,
                              info, 0,
                              kBottomLeft_GrSurfaceOrigin,
@@ -203,8 +203,8 @@
     return surface;
 }
 
-sk_sp<SkSurface> MakeRenderTarget(sk_sp<GrContext> grContext, SimpleImageInfo sii) {
-    sk_sp<SkSurface> surface(SkSurface::MakeRenderTarget(grContext.get(),
+sk_sp<SkSurface> MakeRenderTarget(sk_sp<GrDirectContext> dContext, SimpleImageInfo sii) {
+    sk_sp<SkSurface> surface(SkSurface::MakeRenderTarget(dContext.get(),
                              SkBudgeted::kYes,
                              toSkImageInfo(sii), 0,
                              kBottomLeft_GrSurfaceOrigin,
@@ -736,8 +736,8 @@
     function("setCurrentContext", &emscripten_webgl_make_context_current);
     function("MakeGrContext", &MakeGrContext);
     function("MakeOnScreenGLSurface", &MakeOnScreenGLSurface);
-    function("MakeRenderTarget", select_overload<sk_sp<SkSurface>(sk_sp<GrContext>, int, int)>(&MakeRenderTarget));
-    function("MakeRenderTarget", select_overload<sk_sp<SkSurface>(sk_sp<GrContext>, SimpleImageInfo)>(&MakeRenderTarget));
+    function("MakeRenderTarget", select_overload<sk_sp<SkSurface>(sk_sp<GrDirectContext>, int, int)>(&MakeRenderTarget));
+    function("MakeRenderTarget", select_overload<sk_sp<SkSurface>(sk_sp<GrDirectContext>, SimpleImageInfo)>(&MakeRenderTarget));
 
     constant("gpu", true);
 #endif
@@ -908,22 +908,26 @@
     }), allow_raw_pointers());
 
 #ifdef SK_GL
-    class_<GrContext>("GrContext")
-        .smart_ptr<sk_sp<GrContext>>("sk_sp<GrContext>")
-        .function("getResourceCacheLimitBytes", optional_override([](GrContext& self)->size_t {
+    class_<GrDirectContext>("GrDirectContext")
+        .smart_ptr<sk_sp<GrDirectContext>>("sk_sp<GrDirectContext>")
+        .function("getResourceCacheLimitBytes",
+                optional_override([](GrDirectContext& self)->size_t {
             int maxResources = 0;// ignored
             size_t currMax = 0;
             self.getResourceCacheLimits(&maxResources, &currMax);
             return currMax;
         }))
-        .function("getResourceCacheUsageBytes", optional_override([](GrContext& self)->size_t {
+        .function("getResourceCacheUsageBytes",
+                optional_override([](GrDirectContext& self)->size_t {
             int usedResources = 0;// ignored
             size_t currUsage = 0;
             self.getResourceCacheUsage(&usedResources, &currUsage);
             return currUsage;
         }))
-        .function("releaseResourcesAndAbandonContext", &GrContext::releaseResourcesAndAbandonContext)
-        .function("setResourceCacheLimitBytes", optional_override([](GrContext& self, size_t maxResourceBytes)->void {
+        .function("releaseResourcesAndAbandonContext",
+                &GrDirectContext::releaseResourcesAndAbandonContext)
+        .function("setResourceCacheLimitBytes",
+                optional_override([](GrDirectContext& self, size_t maxResourceBytes)->void {
             int maxResources = 0;
             size_t currMax = 0; // ignored
             self.getResourceCacheLimits(&maxResources, &currMax);
diff --git a/modules/canvaskit/viewer_bindings.cpp b/modules/canvaskit/viewer_bindings.cpp
index c73408e..02e0206 100644
--- a/modules/canvaskit/viewer_bindings.cpp
+++ b/modules/canvaskit/viewer_bindings.cpp
@@ -9,7 +9,6 @@
 #include <emscripten/bind.h>
 #include "include/core/SkCanvas.h"
 #include "include/core/SkSurface.h"
-#include "include/gpu/GrContext.h"
 #include "tools/skui/InputState.h"
 #include "tools/skui/ModifierKey.h"
 #include "tools/viewer/SKPSlide.h"
diff --git a/site/user/api/skcanvas_creation.md b/site/user/api/skcanvas_creation.md
index 8a6cdfc..769fba9 100644
--- a/site/user/api/skcanvas_creation.md
+++ b/site/user/api/skcanvas_creation.md
@@ -84,7 +84,7 @@
 
 <!--?prettify lang=cc?-->
 
-    #include "GrContext.h"
+    #include "GrDirectContext.h"
     #include "gl/GrGLInterface.h"
     #include "SkData.h"
     #include "SkImage.h"
diff --git a/src/gpu/GrDDLContext.cpp b/src/gpu/GrDDLContext.cpp
index 2eb4697..183bc8f 100644
--- a/src/gpu/GrDDLContext.cpp
+++ b/src/gpu/GrDDLContext.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "include/gpu/GrContext.h"
+#include "include/gpu/GrRecordingContext.h"
 #include "src/core/SkLRUCache.h"
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrContextThreadSafeProxyPriv.h"
@@ -18,7 +18,7 @@
  * The DDL Context is the one in effect during DDL Recording. It isn't backed by a GrGPU and
  * cannot allocate any GPU resources.
  */
-class GrDDLContext final : public GrContext {
+class GrDDLContext final : public GrRecordingContext {
 public:
     GrDDLContext(sk_sp<GrContextThreadSafeProxy> proxy)
         : INHERITED(std::move(proxy)) {
@@ -31,21 +31,7 @@
         INHERITED::abandonContext();
     }
 
-    void releaseResourcesAndAbandonContext() override {
-        SkASSERT(0); // abandoning in a DDL Recorder doesn't make a whole lot of sense
-        INHERITED::releaseResourcesAndAbandonContext();
-    }
-
-    void freeGpuResources() override {
-        // freeing resources in a DDL Recorder doesn't make a whole lot of sense but some of
-        // our tests do it anyways
-    }
-
 private:
-    // TODO: Here we're pretending this isn't derived from GrContext. Switch this to be derived from
-    // GrRecordingContext!
-    GrDirectContext* asDirectContext() override { return nullptr; }
-
     bool init() override {
         if (!INHERITED::init()) {
             return false;
@@ -58,16 +44,6 @@
         return true;
     }
 
-    GrAtlasManager* onGetAtlasManager() override {
-        SkASSERT(0);   // the DDL Recorders should never invoke this
-        return nullptr;
-    }
-
-    GrSmallPathAtlasMgr* onGetSmallPathAtlasMgr() override {
-        SkASSERT(0);  // DDL recorders should never invoke this
-        return nullptr;
-    }
-
     // Add to the set of unique program infos required by this DDL
     void recordProgramInfo(const GrProgramInfo* programInfo) final {
         if (!programInfo) {
@@ -149,7 +125,7 @@
 
     ProgramInfoMap fProgramInfoMap;
 
-    using INHERITED = GrContext;
+    using INHERITED = GrRecordingContext;
 };
 
 sk_sp<GrRecordingContext> GrRecordingContextPriv::MakeDDL(sk_sp<GrContextThreadSafeProxy> proxy) {
diff --git a/src/gpu/GrDirectContext.cpp b/src/gpu/GrDirectContext.cpp
index 6f04a5f..84b6c59 100644
--- a/src/gpu/GrDirectContext.cpp
+++ b/src/gpu/GrDirectContext.cpp
@@ -138,27 +138,6 @@
 }
 
 #ifdef SK_GL
-/*************************************************************************************************/
-#ifndef SK_DISABLE_LEGACY_CONTEXT_FACTORIES
-
-sk_sp<GrContext> GrContext::MakeGL(sk_sp<const GrGLInterface> glInterface) {
-    return GrDirectContext::MakeGL(std::move(glInterface));
-}
-
-sk_sp<GrContext> GrContext::MakeGL(const GrContextOptions& options) {
-    return GrDirectContext::MakeGL(options);
-}
-
-sk_sp<GrContext> GrContext::MakeGL() {
-    return GrDirectContext::MakeGL();
-}
-
-sk_sp<GrContext> GrContext::MakeGL(sk_sp<const GrGLInterface> glInterface,
-                                   const GrContextOptions& options) {
-    return GrDirectContext::MakeGL(std::move(glInterface), options);
-}
-
-#endif
 
 /*************************************************************************************************/
 sk_sp<GrDirectContext> GrDirectContext::MakeGL(sk_sp<const GrGLInterface> glInterface) {
@@ -228,20 +207,6 @@
 #endif
 
 /*************************************************************************************************/
-#ifndef SK_DISABLE_LEGACY_CONTEXT_FACTORIES
-
-sk_sp<GrContext> GrContext::MakeMock(const GrMockOptions* mockOptions) {
-    return GrDirectContext::MakeMock(mockOptions);
-}
-
-sk_sp<GrContext> GrContext::MakeMock(const GrMockOptions* mockOptions,
-                                     const GrContextOptions& options) {
-    return GrDirectContext::MakeMock(mockOptions, options);
-}
-
-#endif
-
-/*************************************************************************************************/
 sk_sp<GrDirectContext> GrDirectContext::MakeMock(const GrMockOptions* mockOptions) {
     GrContextOptions defaultOptions;
     return MakeMock(mockOptions, defaultOptions);
@@ -261,20 +226,6 @@
 
 #ifdef SK_VULKAN
 /*************************************************************************************************/
-#ifndef SK_DISABLE_LEGACY_CONTEXT_FACTORIES
-
-sk_sp<GrContext> GrContext::MakeVulkan(const GrVkBackendContext& backendContext) {
-    return GrDirectContext::MakeVulkan(backendContext);
-}
-
-sk_sp<GrContext> GrContext::MakeVulkan(const GrVkBackendContext& backendContext,
-                                       const GrContextOptions& options) {
-    return GrDirectContext::MakeVulkan(backendContext, options);
-}
-
-#endif
-
-/*************************************************************************************************/
 sk_sp<GrDirectContext> GrDirectContext::MakeVulkan(const GrVkBackendContext& backendContext) {
     GrContextOptions defaultOptions;
     return MakeVulkan(backendContext, defaultOptions);
@@ -295,19 +246,6 @@
 
 #ifdef SK_METAL
 /*************************************************************************************************/
-#ifndef SK_DISABLE_LEGACY_CONTEXT_FACTORIES
-
-sk_sp<GrContext> GrContext::MakeMetal(void* device, void* queue) {
-    return GrDirectContext::MakeMetal(device, queue);
-}
-
-sk_sp<GrContext> GrContext::MakeMetal(void* device, void* queue, const GrContextOptions& options) {
-    return GrDirectContext::MakeMetal(device, queue, options);
-}
-
-#endif
-
-/*************************************************************************************************/
 sk_sp<GrDirectContext> GrDirectContext::MakeMetal(void* device, void* queue) {
     GrContextOptions defaultOptions;
     return MakeMetal(device, queue, defaultOptions);
@@ -328,20 +266,6 @@
 
 #ifdef SK_DIRECT3D
 /*************************************************************************************************/
-#ifndef SK_DISABLE_LEGACY_CONTEXT_FACTORIES
-
-sk_sp<GrContext> GrContext::MakeDirect3D(const GrD3DBackendContext& backendContext) {
-    return GrDirectContext::MakeDirect3D(backendContext);
-}
-
-sk_sp<GrContext> GrContext::MakeDirect3D(const GrD3DBackendContext& backendContext,
-                                         const GrContextOptions& options) {
-    return GrDirectContext::MakeDirect3D(backendContext, options);
-}
-
-#endif
-
-/*************************************************************************************************/
 sk_sp<GrDirectContext> GrDirectContext::MakeDirect3D(const GrD3DBackendContext& backendContext) {
     GrContextOptions defaultOptions;
     return MakeDirect3D(backendContext, defaultOptions);
@@ -362,19 +286,6 @@
 
 #ifdef SK_DAWN
 /*************************************************************************************************/
-#ifndef SK_DISABLE_LEGACY_CONTEXT_FACTORIES
-
-sk_sp<GrContext> GrContext::MakeDawn(const wgpu::Device& device) {
-    return GrDirectContext::MakeDawn(device);
-}
-
-sk_sp<GrContext> GrContext::MakeDawn(const wgpu::Device& device, const GrContextOptions& options) {
-    return GrDirectContext::MakeDawn(device, options);
-}
-
-#endif
-
-/*************************************************************************************************/
 sk_sp<GrDirectContext> GrDirectContext::MakeDawn(const wgpu::Device& device) {
     GrContextOptions defaultOptions;
     return MakeDawn(device, defaultOptions);
diff --git a/tools/fiddle/fiddle_main.h b/tools/fiddle/fiddle_main.h
index 4f94cea..d80e866 100644
--- a/tools/fiddle/fiddle_main.h
+++ b/tools/fiddle/fiddle_main.h
@@ -13,7 +13,7 @@
     #include "include/core/SkPictureRecorder.h"
     #include "include/core/SkStream.h"
     #include "include/core/SkSurface.h"
-    #include "include/gpu/GrContext.h"
+    #include "include/gpu/GrDirectContext.h"
     #include "include/gpu/gl/GrGLAssembleInterface.h"
     #include "include/gpu/gl/GrGLInterface.h"
 #else