Source/WebCore/ChangeLog

 12020-12-10 Wenson Hsieh <wenson_hsieh@apple.com>
 2
 3 REGRESSION (r270458): Canvas painting is broken when enabling GPU process for DOM
 4 https://bugs.webkit.org/show_bug.cgi?id=219760
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Use `ImageBuffer::logicalSize` instead of `ImageBuffer::backendSize` when overriding the CanvasBase's size, upon
 9 changing image buffers. When enabling GPU process for canvas, `ImageBufferShareableIOSurfaceBackend::backendSize`
 10 is empty because the actual IOSurface backend exists in the GPU process; using the backendSize instead of the
 11 logical size here would otherwise cause us to always set CanvasBase's size to `(0, 0)`.
 12
 13 * html/CanvasBase.cpp:
 14 (WebCore::CanvasBase::setImageBuffer const):
 15
1162020-12-10 Wenson Hsieh <wenson_hsieh@apple.com>
217
318 [GPU Process] Crash when loading drinktrade.com

Source/WebCore/html/CanvasBase.cpp

@@RefPtr<ImageBuffer> CanvasBase::setImageBuffer(RefPtr<ImageBuffer>&& buffer) con
191191 returnBuffer = std::exchange(m_imageBuffer, WTFMove(buffer));
192192 }
193193
194  if (m_imageBuffer && m_size != m_imageBuffer->backendSize())
195  m_size = m_imageBuffer->backendSize();
 194 if (m_imageBuffer && m_size != m_imageBuffer->logicalSize())
 195 m_size = m_imageBuffer->logicalSize();
196196
197197 size_t previousMemoryCost = m_imageBufferCost;
198198 m_imageBufferCost = memoryCost();