| Index: Source/platform/graphics/ImageSource.cpp
 | 
| diff --git a/Source/platform/graphics/ImageSource.cpp b/Source/platform/graphics/ImageSource.cpp
 | 
| index febfecb721eb5749ec4a472cbbc18f8500017355..e8c9ca0088d7a95f07e43ea47f20fb09fef5fbec 100644
 | 
| --- a/Source/platform/graphics/ImageSource.cpp
 | 
| +++ b/Source/platform/graphics/ImageSource.cpp
 | 
| @@ -48,16 +48,6 @@ size_t ImageSource::clearCacheExceptFrame(size_t clearExceptFrame)
 | 
|      return m_decoder ? m_decoder->clearCacheExceptFrame(clearExceptFrame) : 0;
 | 
|  }
 | 
|  
 | 
| -bool ImageSource::initialized() const
 | 
| -{
 | 
| -    return m_decoder;
 | 
| -}
 | 
| -
 | 
| -void ImageSource::resetDecoder()
 | 
| -{
 | 
| -    m_decoder.clear();
 | 
| -}
 | 
| -
 | 
|  void ImageSource::setData(SharedBuffer& data, bool allDataReceived)
 | 
|  {
 | 
|      // Create a decoder by sniffing the encoded data. If insufficient data bytes are available to
 | 
| @@ -95,7 +85,7 @@ IntSize ImageSource::frameSizeAtIndex(size_t index, RespectImageOrientationEnum
 | 
|          return IntSize();
 | 
|  
 | 
|      IntSize size = m_decoder->frameSizeAtIndex(index);
 | 
| -    if ((shouldRespectOrientation == RespectImageOrientation) && m_decoder->orientation().usesWidthAsHeight())
 | 
| +    if ((shouldRespectOrientation == RespectImageOrientation) && m_decoder->orientationAtIndex(index).usesWidthAsHeight())
 | 
|          return IntSize(size.height(), size.width());
 | 
|  
 | 
|      return size;
 | 
| @@ -113,26 +103,15 @@ int ImageSource::repetitionCount()
 | 
|  
 | 
|  size_t ImageSource::frameCount() const
 | 
|  {
 | 
| -    return m_decoder ? m_decoder->frameCount() : 0;
 | 
| +    int count = m_decoder ? m_decoder->frameCount() : 0;
 | 
| +    return count;
 | 
|  }
 | 
|  
 | 
|  PassRefPtr<NativeImageSkia> ImageSource::createFrameAtIndex(size_t index)
 | 
|  {
 | 
|      if (!m_decoder)
 | 
|          return nullptr;
 | 
| -
 | 
| -    ImageFrame* buffer = m_decoder->frameBufferAtIndex(index);
 | 
| -    if (!buffer || buffer->status() == ImageFrame::FrameEmpty)
 | 
| -        return nullptr;
 | 
| -
 | 
| -    // Zero-height images can cause problems for some ports.  If we have an
 | 
| -    // empty image dimension, just bail.
 | 
| -    if (size().isEmpty())
 | 
| -        return nullptr;
 | 
| -
 | 
| -    // Return the buffer contents as a native image.  For some ports, the data
 | 
| -    // is already in a native container, and this just increments its refcount.
 | 
| -    return buffer->asNewNativeImage();
 | 
| +    return m_decoder->createFrameAtIndex(index);
 | 
|  }
 | 
|  
 | 
|  float ImageSource::frameDurationAtIndex(size_t index) const
 | 
| @@ -150,9 +129,9 @@ float ImageSource::frameDurationAtIndex(size_t index) const
 | 
|      return duration;
 | 
|  }
 | 
|  
 | 
| -ImageOrientation ImageSource::orientationAtIndex(size_t) const
 | 
| +ImageOrientation ImageSource::orientationAtIndex(size_t index) const
 | 
|  {
 | 
| -    return m_decoder ? m_decoder->orientation() : DefaultImageOrientation;
 | 
| +    return m_decoder ? m_decoder->orientationAtIndex(index) : DefaultImageOrientation;
 | 
|  }
 | 
|  
 | 
|  bool ImageSource::frameHasAlphaAtIndex(size_t index) const
 | 
| 
 |