| Index: include/core/SkImageDecoder.h | 
| diff --git a/include/core/SkImageDecoder.h b/include/core/SkImageDecoder.h | 
| index 144878c1668e74c46922df17ea988f4176e0afb3..30323b59ee56df2cf7f9ad3ac79d7f5833cbd3ea 100644 | 
| --- a/include/core/SkImageDecoder.h | 
| +++ b/include/core/SkImageDecoder.h | 
| @@ -10,11 +10,14 @@ | 
|  | 
| #include "SkBitmap.h" | 
| #include "SkImage.h" | 
| +#include "SkPngChunkReader.h" | 
| #include "SkRect.h" | 
| #include "SkRefCnt.h" | 
| #include "SkTRegistry.h" | 
| #include "SkTypes.h" | 
|  | 
| +//#define SK_LEGACY_PEEKER | 
| + | 
| class SkStream; | 
| class SkStreamRewindable; | 
|  | 
| @@ -126,23 +129,20 @@ public: | 
| */ | 
| bool getRequireUnpremultipliedColors() const { return fRequireUnpremultipliedColors; } | 
|  | 
| -    /** \class Peeker | 
| - | 
| -        Base class for optional callbacks to retrieve meta/chunk data out of | 
| -        an image as it is being decoded. | 
| -    */ | 
| -    class Peeker : public SkRefCnt { | 
| +#ifdef SK_LEGACY_PEEKER | 
| +    // Android subclasses SkImageDecoder::Peeker, which has been changed into SkPngChunkReader. | 
| +    // Temporarily use this class until Android can be updated to directly inherit from | 
| +    // SkPngChunkReader. | 
| +    class Peeker : public SkPngChunkReader { | 
| public: | 
| -        /** Return true to continue decoding, or false to indicate an error, which | 
| -            will cause the decoder to not return the image. | 
| -        */ | 
| +        bool readChunk(const char tag[], const void* data, size_t length) final { | 
| +            return this->peek(tag, data, length); | 
| +        } | 
| virtual bool peek(const char tag[], const void* data, size_t length) = 0; | 
| -    private: | 
| -        typedef SkRefCnt INHERITED; | 
| }; | 
| - | 
| -    Peeker* getPeeker() const { return fPeeker; } | 
| -    Peeker* setPeeker(Peeker*); | 
| +#endif | 
| +    SkPngChunkReader* getPeeker() const { return fPeeker; } | 
| +    SkPngChunkReader* setPeeker(SkPngChunkReader*); | 
|  | 
| /** | 
| *  By default, the codec will try to comply with the "pref" colortype | 
| @@ -229,8 +229,8 @@ public: | 
| to allocate the memory from a cache, volatile memory, or even from | 
| an existing bitmap's memory. | 
|  | 
| -        If a Peeker is installed via setPeeker, it may be used to peek into | 
| -        meta data during the decode. | 
| +        If an SkPngChunkReader is installed via setPeeker, it may be used to | 
| +        peek into meta data during the decode. | 
| */ | 
| Result decode(SkStream*, SkBitmap* bitmap, SkColorType pref, Mode); | 
| Result decode(SkStream* stream, SkBitmap* bitmap, Mode mode) { | 
| @@ -350,7 +350,7 @@ protected: | 
| SkColorType getPrefColorType(SrcDepth, bool hasAlpha) const; | 
|  | 
| private: | 
| -    Peeker*                 fPeeker; | 
| +    SkPngChunkReader*       fPeeker; | 
| SkBitmap::Allocator*    fAllocator; | 
| int                     fSampleSize; | 
| SkColorType             fDefaultPref;   // use if fUsePrefTable is false | 
|  |