RESOLVED FIXED 143023
Transforms are flattened in snapshots of on-screen WKWebViews
https://bugs.webkit.org/show_bug.cgi?id=143023
Summary Transforms are flattened in snapshots of on-screen WKWebViews
mitz
Reported 2015-03-24 15:26:15 PDT
-[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.
Attachments
Have the render server capture a layer tree snapshot if the view is on-screen (4.64 KB, patch)
2015-03-24 15:39 PDT, mitz
no flags
mitz
Comment 1 2015-03-24 15:27:59 PDT
mitz
Comment 2 2015-03-24 15:39:10 PDT
Created attachment 249358 [details] Have the render server capture a layer tree snapshot if the view is on-screen
Tim Horton
Comment 3 2015-03-24 15:45:16 PDT
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).
Anders Carlsson
Comment 4 2015-03-24 15:45:55 PDT
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.
mitz
Comment 5 2015-03-24 15:48:50 PDT
Alexey Proskuryakov
Comment 6 2015-03-24 22:06:42 PDT
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);
mitz
Comment 7 2015-03-24 22:13:51 PDT
(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>.
Alexey Proskuryakov
Comment 8 2015-03-24 22:29:31 PDT
That broke the Mac build (all open source ones at least).
mitz
Comment 9 2015-03-24 22:30:07 PDT
Note You need to log in before you can comment on or make changes to this bug.