| Index: Source/core/html/HTMLCanvasElement.cpp
 | 
| diff --git a/Source/core/html/HTMLCanvasElement.cpp b/Source/core/html/HTMLCanvasElement.cpp
 | 
| index 8b0d798af50c69d4d865d79bbb35a37064fa7925..2af6357ee3c5723da4987014eac39bd764f150a7 100644
 | 
| --- a/Source/core/html/HTMLCanvasElement.cpp
 | 
| +++ b/Source/core/html/HTMLCanvasElement.cpp
 | 
| @@ -375,10 +375,10 @@ String HTMLCanvasElement::toEncodingMimeType(const String& mimeType)
 | 
|  
 | 
|  const AtomicString HTMLCanvasElement::imageSourceURL() const
 | 
|  {
 | 
| -    return AtomicString(toDataURLInternal("image/png", 0));
 | 
| +    return AtomicString(toDataURLInternal("image/png", 0, true));
 | 
|  }
 | 
|  
 | 
| -String HTMLCanvasElement::toDataURLInternal(const String& mimeType, const double* quality) const
 | 
| +String HTMLCanvasElement::toDataURLInternal(const String& mimeType, const double* quality, bool isSaving) const
 | 
|  {
 | 
|      if (m_size.isEmpty() || !buffer())
 | 
|          return String("data:,");
 | 
| @@ -391,8 +391,11 @@ String HTMLCanvasElement::toDataURLInternal(const String& mimeType, const double
 | 
|      if (imageData)
 | 
|          return ImageDataToDataURL(ImageDataBuffer(imageData->size(), imageData->data()), encodingMimeType, quality);
 | 
|  
 | 
| -    if (m_context)
 | 
| +    if (m_context && m_context->is3d()) {
 | 
| +        toWebGLRenderingContext(m_context.get())->setSavingImage(isSaving);
 | 
|          m_context->paintRenderingResultsToCanvas();
 | 
| +        toWebGLRenderingContext(m_context.get())->setSavingImage(false);
 | 
| +    }
 | 
|  
 | 
|      return buffer()->toDataURL(encodingMimeType, quality);
 | 
|  }
 | 
| 
 |