diff --git a/src/core/SkClipStack.cpp b/src/core/SkClipStack.cpp
index 4e53d8b..e39aeee 100644
--- a/src/core/SkClipStack.cpp
+++ b/src/core/SkClipStack.cpp
@@ -859,7 +859,7 @@
     return back->getGenID();
 }
 
-#ifdef SK_DEVELOPER
+#ifdef SK_DEBUG
 void SkClipStack::Element::dump() const {
     static const char* kTypeStrings[] = {
         "empty",
diff --git a/src/core/SkGraphics.cpp b/src/core/SkGraphics.cpp
index e263fde..d7022b7 100644
--- a/src/core/SkGraphics.cpp
+++ b/src/core/SkGraphics.cpp
@@ -50,7 +50,7 @@
     SkCpu::CacheRuntimeFeatures();
     SkOpts::Init();
 
-#ifdef SK_DEVELOPER
+#ifdef SK_DEBUG
     skRTConfRegistry().possiblyDumpFile();
     skRTConfRegistry().validate();
     if (skRTConfRegistry().hasNonDefault()) {
diff --git a/src/core/SkResourceCache.cpp b/src/core/SkResourceCache.cpp
index fa3cb9d..e465132 100644
--- a/src/core/SkResourceCache.cpp
+++ b/src/core/SkResourceCache.cpp
@@ -544,15 +544,6 @@
 
 SK_DECLARE_STATIC_MUTEX(gMutex);
 static SkResourceCache* gResourceCache = nullptr;
-static void cleanup_gResourceCache() {
-    // We'll clean this up in our own tests, but disable for clients.
-    // Chrome seems to have funky multi-process things going on in unit tests that
-    // makes this unsafe to delete when the main process atexit()s.
-    // SkLazyPtr does the same sort of thing.
-#if SK_DEVELOPER
-    delete gResourceCache;
-#endif
-}
 
 /** Must hold gMutex when calling. */
 static SkResourceCache* get_cache() {
@@ -564,7 +555,6 @@
 #else
         gResourceCache = new SkResourceCache(SK_DEFAULT_IMAGE_CACHE_LIMIT);
 #endif
-        atexit(cleanup_gResourceCache);
     }
     return gResourceCache;
 }
diff --git a/src/core/SkStream.cpp b/src/core/SkStream.cpp
index 6dbde4d..e2b3e64 100644
--- a/src/core/SkStream.cpp
+++ b/src/core/SkStream.cpp
@@ -817,7 +817,7 @@
 
 void SkDebugWStream::newline()
 {
-#if defined(SK_DEBUG) || defined(SK_DEVELOPER)
+#if defined(SK_DEBUG)
     SkDebugf("\n");
     fBytesWritten++;
 #endif
@@ -825,7 +825,7 @@
 
 bool SkDebugWStream::write(const void* buffer, size_t size)
 {
-#if defined(SK_DEBUG) || defined(SK_DEVELOPER)
+#if defined(SK_DEBUG)
     char* s = new char[size+1];
     memcpy(s, buffer, size);
     s[size] = 0;
diff --git a/src/gpu/GrLayerCache.cpp b/src/gpu/GrLayerCache.cpp
index 8bdc3fb..b14423a 100644
--- a/src/gpu/GrLayerCache.cpp
+++ b/src/gpu/GrLayerCache.cpp
@@ -523,7 +523,7 @@
     }
 }
 
-#ifdef SK_DEVELOPER
+#ifdef SK_DEBUG
 void GrLayerCache::writeLayersToDisk(const SkString& dirName) {
 
     if (fAtlas) {
diff --git a/src/gpu/GrLayerCache.h b/src/gpu/GrLayerCache.h
index b341cb2..2fa9271 100644
--- a/src/gpu/GrLayerCache.h
+++ b/src/gpu/GrLayerCache.h
@@ -352,7 +352,7 @@
 
     SkDEBUGCODE(void validate() const;)
 
-#ifdef SK_DEVELOPER
+#ifdef SK_DEBUG
     void writeLayersToDisk(const SkString& dirName);
 #endif
 
diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h
index c6f0f22..b6bc7ba 100644
--- a/src/gpu/gl/GrGLGpu.h
+++ b/src/gpu/gl/GrGLGpu.h
@@ -28,7 +28,7 @@
 class GrNonInstancedMesh;
 class GrSwizzle;
 
-#ifdef SK_DEVELOPER
+#ifdef SK_DEBUG
 #define PROGRAM_CACHE_STATS
 #endif
 
diff --git a/src/gpu/vk/GrVkResourceProvider.h b/src/gpu/vk/GrVkResourceProvider.h
index 4853bf1..86aa5bc 100644
--- a/src/gpu/vk/GrVkResourceProvider.h
+++ b/src/gpu/vk/GrVkResourceProvider.h
@@ -83,7 +83,7 @@
 
 private:
 
-#ifdef SK_DEVELOPER
+#ifdef SK_DEBUG
 #define GR_PIPELINE_STATE_CACHE_STATS
 #endif
 
diff --git a/src/utils/SkDumpCanvas.cpp b/src/utils/SkDumpCanvas.cpp
index 9530f86..e916bd0 100644
--- a/src/utils/SkDumpCanvas.cpp
+++ b/src/utils/SkDumpCanvas.cpp
@@ -7,7 +7,7 @@
 
 #include "SkDumpCanvas.h"
 
-#ifdef SK_DEVELOPER
+#ifdef SK_DEBUG
 #include "SkData.h"
 #include "SkPatchUtils.h"
 #include "SkPicture.h"
