-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:] gives a software rendering of the view, which flattens transforms, even when the view is on-screen and the render server can capture the unflattened layers.
<rdar://problem/20282863>
Created attachment 249358 [details] Have the render server capture a layer tree snapshot if the view is on-screen
Comment on attachment 249358 [details] Have the render server capture a layer tree snapshot if the view is on-screen (Anders had some comments on IRC).
Comment on attachment 249358 [details] Have the render server capture a layer tree snapshot if the view is on-screen View in context: https://bugs.webkit.org/attachment.cgi?id=249358&action=review > Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:2518 > + std::unique_ptr<WebCore::IOSurface> surface = WebCore::IOSurface::create(WebCore::expandedIntSize(WebCore::FloatSize(imageSize)), WebCore::ColorSpaceDeviceRGB); Please use auto here. > Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:2521 > + completionHandler(surface->createImage().autorelease()); Please don't autorelease the image.
Fixed in <http://trac.webkit.org/r181910>.
iOS EWS is still broken: https://webkit-queues.appspot.com/results/5624952967397376 In file included from /Volumes/Data/EWS/WebKit/Source/WebCore/platform/ios/LegacyTileCache.mm:38: /Volumes/Data/EWS/WebKit/Source/WebCore/platform/spi/cocoa/QuartzCoreSPI.h:121:118: error: unknown type name 'IOSurfaceRef' EXTERN_C void CARenderServerRenderLayerWithTransform(mach_port_t server_port, uint32_t client_id, uint64_t layer_id, IOSurfaceRef iosurface, int32_t ox, int32_t oy, const CATransform3D *matrix);
(In reply to comment #6) > iOS EWS is still broken: > https://webkit-queues.appspot.com/results/5624952967397376 > > In file included from > /Volumes/Data/EWS/WebKit/Source/WebCore/platform/ios/LegacyTileCache.mm:38: > /Volumes/Data/EWS/WebKit/Source/WebCore/platform/spi/cocoa/QuartzCoreSPI.h: > 121:118: error: unknown type name 'IOSurfaceRef' > EXTERN_C void CARenderServerRenderLayerWithTransform(mach_port_t > server_port, uint32_t client_id, uint64_t layer_id, IOSurfaceRef iosurface, > int32_t ox, int32_t oy, const CATransform3D *matrix); Tried to fix that in <http://trac.webkit.org/r181931>.
That broke the Mac build (all open source ones at least).
And again in <http://trac.webkit.org/r181933>.