Stop benching PNG buildTileIndex by default

It leaks memory and kills the bots. Supply an option to run it for
local comparison.

BUG=skia:4360
BUG=skia:3418

Review URL: https://codereview.chromium.org/1396613007
diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp
index b16fb13..781c09f 100644
--- a/bench/nanobench.cpp
+++ b/bench/nanobench.cpp
@@ -111,6 +111,7 @@
 DEFINE_int32(flushEvery, 10, "Flush --outResultsFile every Nth run.");
 DEFINE_bool(resetGpuContext, true, "Reset the GrContext before running each test.");
 DEFINE_bool(gpuStats, false, "Print GPU stats after each gpu benchmark?");
+DEFINE_bool(pngBuildTileIndex, false, "If supported, use png buildTileIndex/decodeSubset.");
 
 static SkString humanize(double ms) {
     if (FLAGS_verbose) return SkStringPrintf("%llu", (uint64_t)(ms*1e6));
@@ -508,8 +509,8 @@
  */
 static bool run_subset_bench(const SkString& path, bool useCodec) {
     static const char* const exts[] = {
-        "jpg", "jpeg", "png",
-        "JPG", "JPEG", "PNG",
+        "jpg", "jpeg",
+        "JPG", "JPEG",
     };
 
     for (uint32_t i = 0; i < SK_ARRAY_COUNT(exts); i++) {
@@ -518,7 +519,18 @@
         }
     }
 
-    return !useCodec && (path.endsWith("webp") || path.endsWith("WEBP"));
+    // Test png in SkCodec, and optionally on SkImageDecoder. SkImageDecoder is
+    // disabled by default because it leaks memory.
+    // skbug.com/4360
+    if ((useCodec || FLAGS_pngBuildTileIndex) && (path.endsWith("png") || path.endsWith("PNG"))) {
+        return true;
+    }
+
+    if (!useCodec && (path.endsWith("webp") || path.endsWith("WEBP"))) {
+        return true;
+    }
+
+    return false;
 }
 
 /*