When allocating the buffers in TransparencyWin for an OpaqueCompositeLayer, there are two allocations: one for the ImageBuffer, and one for the SkBitmap OwnedBuffers::m_referenceBitmap. If the allocation is small enough for the first one to pass, but big enough for the second one to fail, Chrome will crash in referenceCanvas.drawBitmap() in TransparencyWin::setupLayerForOpaqueCompositeLayer(). Reproduction URL: http://www.vandaag.be See http://crbug.com/28851.
Created attachment 46910 [details] Fix for TransparencyWin crash
Created attachment 46911 [details] Fix for crash v.2 (added bug ID)
Created attachment 46912 [details] Fix for crash v.3 (added *correct* bug ID. (I hate Bugzilla.))
This looks good to me (but I'm not a WebKit reviewer).
Comment on attachment 46912 [details] Fix for crash v.3 (added *correct* bug ID. (I hate Bugzilla.)) r=me.
Landed as r53480, closing bug.