Index: third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp b/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp |
index 53f34f2648dd984097a3c7e1c1baab1f54dd2c32..7a2320d42f8449905d80b17e73966796ce72d721 100644 |
--- a/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp |
@@ -104,6 +104,19 @@ ImageBuffer::~ImageBuffer() |
ImageBuffer::s_globalGPUMemoryUsage -= m_gpuMemoryUsage; |
} |
+bool ImageBuffer::canCreateImageBuffer(const IntSize& size) |
+{ |
+ if (size.isEmpty()) |
+ return false; |
+ CheckedNumeric<int> area = size.width(); |
+ area *= size.height(); |
+ if (!area.IsValid() || area.ValueOrDie() > MaxCanvasArea) |
+ return false; |
+ if (size.width() > MaxSkiaDim || size.height() > MaxSkiaDim) |
+ return false; |
+ return true; |
+} |
+ |
SkCanvas* ImageBuffer::canvas() const |
{ |
return m_surface->canvas(); |