| Index: dm/DM.cpp
 | 
| diff --git a/dm/DM.cpp b/dm/DM.cpp
 | 
| index 154f8aa846ea2c9fa3f2e7a3aeced180802aa2be..becea6ca6cf00c2c6eae2c548ec4692cd850628b 100644
 | 
| --- a/dm/DM.cpp
 | 
| +++ b/dm/DM.cpp
 | 
| @@ -327,116 +327,12 @@
 | 
|      }
 | 
|  }
 | 
|  
 | 
| -static bool brd_color_type_supported(SkBitmapRegionDecoderInterface::Strategy strategy,
 | 
| -        CodecSrc::DstColorType dstColorType) {
 | 
| -    switch (strategy) {
 | 
| -        case SkBitmapRegionDecoderInterface::kCanvas_Strategy:
 | 
| -            if (CodecSrc::kGetFromCanvas_DstColorType == dstColorType) {
 | 
| -                return true;
 | 
| -            }
 | 
| -            return false;
 | 
| -        case SkBitmapRegionDecoderInterface::kOriginal_Strategy:
 | 
| -            switch (dstColorType) {
 | 
| -                case CodecSrc::kGetFromCanvas_DstColorType:
 | 
| -                case CodecSrc::kIndex8_Always_DstColorType:
 | 
| -                case CodecSrc::kGrayscale_Always_DstColorType:
 | 
| -                    return true;
 | 
| -                default:
 | 
| -                    return false;
 | 
| -            }
 | 
| -        default:
 | 
| -            SkASSERT(false);
 | 
| -            return false;
 | 
| -    }
 | 
| -}
 | 
| -
 | 
| -static void push_brd_src(Path path, SkBitmapRegionDecoderInterface::Strategy strategy,
 | 
| -        CodecSrc::DstColorType dstColorType, BRDSrc::Mode mode, uint32_t sampleSize) {
 | 
| -    SkString folder;
 | 
| -    switch (strategy) {
 | 
| -        case SkBitmapRegionDecoderInterface::kCanvas_Strategy:
 | 
| -            folder.append("brd_canvas");
 | 
| -            break;
 | 
| -        case SkBitmapRegionDecoderInterface::kOriginal_Strategy:
 | 
| -            folder.append("brd_sample");
 | 
| -            break;
 | 
| -        default:
 | 
| -            SkASSERT(false);
 | 
| -            return;
 | 
| -    }
 | 
| -
 | 
| -    switch (mode) {
 | 
| -        case BRDSrc::kFullImage_Mode:
 | 
| -            break;
 | 
| -        case BRDSrc::kDivisor_Mode:
 | 
| -            folder.append("_divisor");
 | 
| -            break;
 | 
| -        default:
 | 
| -            SkASSERT(false);
 | 
| -            return;
 | 
| -    }
 | 
| -
 | 
| -    switch (dstColorType) {
 | 
| -        case CodecSrc::kGetFromCanvas_DstColorType:
 | 
| -            break;
 | 
| -        case CodecSrc::kIndex8_Always_DstColorType:
 | 
| -            folder.append("_kIndex");
 | 
| -            break;
 | 
| -        case CodecSrc::kGrayscale_Always_DstColorType:
 | 
| -            folder.append("_kGray");
 | 
| -            break;
 | 
| -        default:
 | 
| -            SkASSERT(false);
 | 
| -            return;
 | 
| -    }
 | 
| -
 | 
| -    if (1 != sampleSize) {
 | 
| -        folder.appendf("_%.3f", BRDSrc::GetScale(sampleSize));
 | 
| -    }
 | 
| -
 | 
| -    BRDSrc* src = new BRDSrc(path, strategy, mode, dstColorType, sampleSize);
 | 
| -    push_src("image", folder, src);
 | 
| -}
 | 
| -
 | 
| -static void push_brd_srcs(Path path) {
 | 
| -
 | 
| -    const SkBitmapRegionDecoderInterface::Strategy strategies[] = {
 | 
| -            SkBitmapRegionDecoderInterface::kCanvas_Strategy,
 | 
| -            SkBitmapRegionDecoderInterface::kOriginal_Strategy
 | 
| -    };
 | 
| -
 | 
| -    // We will only test to one backend (8888), but we will test all of the
 | 
| -    // color types that we need to decode to on this backend.
 | 
| -    const CodecSrc::DstColorType dstColorTypes[] = {
 | 
| -        CodecSrc::kGetFromCanvas_DstColorType,
 | 
| -        CodecSrc::kIndex8_Always_DstColorType,
 | 
| -        CodecSrc::kGrayscale_Always_DstColorType,
 | 
| -    };
 | 
| -
 | 
| -    const BRDSrc::Mode modes[] = {
 | 
| -        BRDSrc::kFullImage_Mode,
 | 
| -        BRDSrc::kDivisor_Mode
 | 
| -    };
 | 
| -
 | 
| -    const uint32_t sampleSizes[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
 | 
| -
 | 
| -    for (SkBitmapRegionDecoderInterface::Strategy strategy : strategies) {
 | 
| -        for (CodecSrc::DstColorType dstColorType : dstColorTypes) {
 | 
| -            if (brd_color_type_supported(strategy, dstColorType)) {
 | 
| -                for (BRDSrc::Mode mode : modes) {
 | 
| -                    for (uint32_t sampleSize : sampleSizes) {
 | 
| -                        push_brd_src(path, strategy, dstColorType, mode, sampleSize);
 | 
| -                    }
 | 
| -                }
 | 
| -            }
 | 
| -        }
 | 
| -    }
 | 
| -}
 | 
| -
 | 
| -static bool brd_supported(const char* ext) {
 | 
| +static bool codec_supported(const char* ext) {
 | 
| +    // FIXME: Once other versions of SkCodec are available, we can add them to this
 | 
| +    // list (and eventually we can remove this check once they are all supported).
 | 
|      static const char* const exts[] = {
 | 
| -        "jpg", "jpeg", "png", "webp",
 | 
| -        "JPG", "JPEG", "PNG", "WEBP",
 | 
| +        "bmp", "gif", "jpg", "jpeg", "png", "ico", "wbmp", "webp",
 | 
| +        "BMP", "GIF", "JPG", "JPEG", "PNG", "ICO", "WBMP", "WEBP",
 | 
|      };
 | 
|  
 | 
|      for (uint32_t i = 0; i < SK_ARRAY_COUNT(exts); i++) {
 | 
| @@ -475,9 +371,8 @@
 | 
|                      SkString path = SkOSPath::Join(flag, file.c_str());
 | 
|                      push_src("image", "decode", new ImageSrc(path)); // Decode entire image
 | 
|                      push_src("image", "subset", new ImageSrc(path, 2)); // Decode into 2x2 subsets
 | 
| -                    push_codec_srcs(path);
 | 
| -                    if (brd_supported(exts[j])) {
 | 
| -                        push_brd_srcs(path);
 | 
| +                    if (codec_supported(exts[j])) {
 | 
| +                        push_codec_srcs(path);
 | 
|                      }
 | 
|                  }
 | 
|              }
 | 
| @@ -486,7 +381,6 @@
 | 
|              push_src("image", "decode", new ImageSrc(flag)); // Decode entire image.
 | 
|              push_src("image", "subset", new ImageSrc(flag, 2)); // Decode into 2 x 2 subsets
 | 
|              push_codec_srcs(flag);
 | 
| -            push_brd_srcs(flag);
 | 
|          }
 | 
|      }
 | 
|  }
 | 
| 
 |