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..99b3984170d2e3626eb45155ed6546bdf332f876 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() > kMaxCanvasArea) |
+ return false; |
+ if (size.width() > kMaxSkiaDim || size.height() > kMaxSkiaDim) |
+ return false; |
+ return true; |
+} |
+ |
SkCanvas* ImageBuffer::canvas() const |
{ |
return m_surface->canvas(); |