Allow the UIDelegate to customize an image preview rdar://problem/21657424
Created attachment 256030 [details] Patch
Comment on attachment 256030 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=256030&action=review > Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:60 > +- (void)_webView:(WKWebView *)webView willPreviewImageWithURL:(NSURL *)imageURL; > +- (void)_webView:(WKWebView *)webView commitPreviewedImageWithURL:(NSURL *)imageURL; Please add WK_AVAILABLE macros. > Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3216 > + id<WKUIDelegatePrivate> uiDelegate = static_cast<id <WKUIDelegatePrivate>>([_webView UIDelegate]); space after id > Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3237 > + if (absoluteImageURL.isEmpty() || !WebCore::protocolIsInHTTPFamily(absoluteImageURL)) At some point we should consider data: URL images. > Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3241 > + NSURL *targetURL = [NSURL _web_URLWithWTFString:_positionInformation.imageURL]; No real need for the temporary, just like below. > Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3252 > + id<WKUIDelegatePrivate> uiDelegate = static_cast<id <WKUIDelegatePrivate>>([_webView UIDelegate]); space after id > Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:2162 > + info.imageURL = [(NSURL *)element->document().completeURL(downcast<HTMLImageElement>(*element).src()) absoluteString]; What happens if it's a srcset image?
(In reply to comment #2) > Comment on attachment 256030 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=256030&action=review > > > Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:60 > > +- (void)_webView:(WKWebView *)webView willPreviewImageWithURL:(NSURL *)imageURL; > > +- (void)_webView:(WKWebView *)webView commitPreviewedImageWithURL:(NSURL *)imageURL; > > Please add WK_AVAILABLE macros. > Added. > > Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3216 > > + id<WKUIDelegatePrivate> uiDelegate = static_cast<id <WKUIDelegatePrivate>>([_webView UIDelegate]); > > space after id > Fixed. > > Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3237 > > + if (absoluteImageURL.isEmpty() || !WebCore::protocolIsInHTTPFamily(absoluteImageURL)) > > At some point we should consider data: URL images. > I added them! Still need to follow-up with Sam to make sure it's okay. > > Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3241 > > + NSURL *targetURL = [NSURL _web_URLWithWTFString:_positionInformation.imageURL]; > > No real need for the temporary, just like below. > Fixed. > > Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3252 > > + id<WKUIDelegatePrivate> uiDelegate = static_cast<id <WKUIDelegatePrivate>>([_webView UIDelegate]); > > space after id > Fixed. > > Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:2162 > > + info.imageURL = [(NSURL *)element->document().completeURL(downcast<HTMLImageElement>(*element).src()) absoluteString]; > > What happens if it's a srcset image? Good eye! They were broken. I fixed them by getting the URL from the RenderImage's CachedImage instead. http://trac.webkit.org/changeset/186236