We should not send the ImageBuffer to GPUP if it's created in-process. We should let ImageBuffer::draw() extract a NativeImage of it first. Then GraphicsContext::drawNativeImage() sends this NativeImage to GPUP.
Created attachment 415795 [details] Patch
This patch allows drawing the test case in bug 218871. The drawing of the PDF still happens in WebP. We draw the PDF to an ImageBuffer first and then draw this ImageBuffer to the canvas.
Comment on attachment 415795 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=415795&action=review > Source/WebCore/platform/graphics/GraphicsContextImpl.h:42 > + virtual bool canRecordDrawImageBuffer(const ImageBuffer&) const { return true; } It seems like this should just be `canDrawImageBuffer` instead, since it's on the GraphicsContextImpl (of which DisplayList::Recorder is one particular implementation).
Created attachment 415796 [details] Patch
Committed r270605: <https://trac.webkit.org/changeset/270605> All reviewed patches have been landed. Closing bug and clearing flags on attachment 415796 [details].
<rdar://problem/72155021>
*** Bug 218871 has been marked as a duplicate of this bug. ***