| Index: Source/core/platform/graphics/ImageBuffer.h | 
| diff --git a/Source/core/platform/graphics/ImageBuffer.h b/Source/core/platform/graphics/ImageBuffer.h | 
| index b4c0af9f3398dd1bf1c444c0504560a68ecf1f4a..32c7b0a34b0234185cdcccc09aedece2281691ac 100644 | 
| --- a/Source/core/platform/graphics/ImageBuffer.h | 
| +++ b/Source/core/platform/graphics/ImageBuffer.h | 
| @@ -43,6 +43,7 @@ | 
| #include "wtf/Vector.h" | 
|  | 
| class SkCanvas; | 
| +class SkSurface; | 
|  | 
| namespace WebKit { class WebLayer; } | 
|  | 
| @@ -104,6 +105,7 @@ public: | 
|  | 
| GraphicsContext* context() const; | 
|  | 
| +    PassRefPtr<Image> imageSnapshot() const; | 
| PassRefPtr<Image> copyImage(BackingStoreCopy = CopyBackingStore, ScaleBehavior = Scaled) const; | 
| // Give hints on the faster copyImage Mode, return DontCopyBackingStore if it supports the DontCopyBackingStore behavior | 
| // or return CopyBackingStore if it doesn't. | 
| @@ -132,6 +134,8 @@ public: | 
|  | 
| private: | 
| bool isValid() const; | 
| +    void createAcceleratedCanvas(const IntSize&, OwnPtr<Canvas2DLayerBridge>*, OpacityMode); | 
| +    void createNonPlatformCanvas(const IntSize&); | 
|  | 
| void draw(GraphicsContext*, const FloatRect&, const FloatRect& = FloatRect(0, 0, -1, -1), CompositeOperator = CompositeSourceOver, BlendMode = BlendModeNormal, bool useLowQualityScale = false); | 
| void drawPattern(GraphicsContext*, const FloatRect&, const FloatSize&, const FloatPoint&, CompositeOperator, const FloatRect&, BlendMode); | 
| @@ -145,6 +149,7 @@ private: | 
| IntSize m_logicalSize; | 
| float m_resolutionScale; | 
| OwnPtr<SkCanvas> m_canvas; | 
| +    OwnPtr<SkSurface> m_surface; | 
| OwnPtr<GraphicsContext> m_context; | 
| OwnPtr<Canvas2DLayerBridge> m_layerBridge; | 
|  | 
|  |