Title: [277389] trunk/Source/WebKit
- Revision
- 277389
- Author
- wenson_hs...@apple.com
- Date
- 2021-05-12 14:08:35 -0700 (Wed, 12 May 2021)
Log Message
Plumb some more metadata to QuickLook when revealing images
https://bugs.webkit.org/show_bug.cgi?id=225709
rdar://77864866
Reviewed by Devin Rousso.
Add plumbing to supply QuickLook with some additional information about the image URL and current page URL when
revealing images.
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::handleContextMenuRevealImage):
* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):
* UIProcess/mac/WKImageExtractionPreviewController.h:
* UIProcess/mac/WKImageExtractionPreviewController.mm:
(-[WKImageExtractionPreviewItem initWithFileURL:title:imageURL:pageURL:]):
(-[WKImageExtractionPreviewItem dealloc]):
(-[WKImageExtractionPreviewItem previewItemURL]):
(-[WKImageExtractionPreviewItem previewOptions]):
(-[WKImageExtractionPreviewController initWithPage:fileURL:title:imageURL:]):
Rename the `URL` argument to `fileURL`, to avoid confusion with the new `imageURL` that's passed in. Note that
this is temporary, since we'll adopt new QuickLook SPI on macOS once the fix for rdar://74299451 is available.
(-[WKImageExtractionPreviewItem initWithURL:title:]): Deleted.
(-[WKImageExtractionPreviewController initWithPage:url:title:]): Deleted.
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (277388 => 277389)
--- trunk/Source/WebKit/ChangeLog 2021-05-12 21:06:35 UTC (rev 277388)
+++ trunk/Source/WebKit/ChangeLog 2021-05-12 21:08:35 UTC (rev 277389)
@@ -1,3 +1,33 @@
+2021-05-12 Wenson Hsieh <wenson_hs...@apple.com>
+
+ Plumb some more metadata to QuickLook when revealing images
+ https://bugs.webkit.org/show_bug.cgi?id=225709
+ rdar://77864866
+
+ Reviewed by Devin Rousso.
+
+ Add plumbing to supply QuickLook with some additional information about the image URL and current page URL when
+ revealing images.
+
+ * UIProcess/Cocoa/WebPageProxyCocoa.mm:
+ (WebKit::WebPageProxy::handleContextMenuRevealImage):
+ * UIProcess/ios/WKActionSheetAssistant.h:
+ * UIProcess/ios/WKActionSheetAssistant.mm:
+ (-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):
+ * UIProcess/mac/WKImageExtractionPreviewController.h:
+ * UIProcess/mac/WKImageExtractionPreviewController.mm:
+ (-[WKImageExtractionPreviewItem initWithFileURL:title:imageURL:pageURL:]):
+ (-[WKImageExtractionPreviewItem dealloc]):
+ (-[WKImageExtractionPreviewItem previewItemURL]):
+ (-[WKImageExtractionPreviewItem previewOptions]):
+ (-[WKImageExtractionPreviewController initWithPage:fileURL:title:imageURL:]):
+
+ Rename the `URL` argument to `fileURL`, to avoid confusion with the new `imageURL` that's passed in. Note that
+ this is temporary, since we'll adopt new QuickLook SPI on macOS once the fix for rdar://74299451 is available.
+
+ (-[WKImageExtractionPreviewItem initWithURL:title:]): Deleted.
+ (-[WKImageExtractionPreviewController initWithPage:url:title:]): Deleted.
+
2021-05-12 Aditya Keerthi <akeer...@apple.com>
REGRESSION (r275297): Unexpected autofocus when switching tabs
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (277388 => 277389)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2021-05-12 21:06:35 UTC (rev 277388)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2021-05-12 21:08:35 UTC (rev 277389)
@@ -614,7 +614,7 @@
if (!result.imageBitmap)
return;
- revealExtractedImageInPreviewPanel(*result.imageBitmap, result.toolTipText);
+ revealExtractedImageInPreviewPanel(*result.imageBitmap, result.toolTipText, URL { URL { }, result.absoluteImageURL });
}
#endif // ENABLE(IMAGE_EXTRACTION)
Modified: trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.h (277388 => 277389)
--- trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.h 2021-05-12 21:06:35 UTC (rev 277388)
+++ trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.h 2021-05-12 21:08:35 UTC (rev 277389)
@@ -81,9 +81,9 @@
- (void)actionSheetAssistant:(WKActionSheetAssistant *)assistant shareElementWithImage:(UIImage *)image rect:(CGRect)boundingRect;
#if ENABLE(IMAGE_EXTRACTION)
- (BOOL)actionSheetAssistant:(WKActionSheetAssistant *)assistant shouldIncludeImageExtractionActionForElement:(_WKActivatedElementInfo *)element;
-- (void)actionSheetAssistant:(WKActionSheetAssistant *)assistant handleImageExtraction:(UIImage *)image title:(NSString *)title;
+- (void)actionSheetAssistant:(WKActionSheetAssistant *)assistant handleImageExtraction:(UIImage *)image imageURL:(NSURL *)imageURL title:(NSString *)title;
- (BOOL)actionSheetAssistant:(WKActionSheetAssistant *)assistant shouldIncludeRevealImageActionForElement:(_WKActivatedElementInfo *)element;
-- (void)actionSheetAssistant:(WKActionSheetAssistant *)assistant handleRevealImage:(UIImage *)image title:(NSString *)title;
+- (void)actionSheetAssistant:(WKActionSheetAssistant *)assistant handleRevealImage:(UIImage *)image imageURL:(NSURL *)imageURL title:(NSString *)title;
#endif
@end
Modified: trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm (277388 => 277389)
--- trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm 2021-05-12 21:06:35 UTC (rev 277388)
+++ trunk/Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm 2021-05-12 21:08:35 UTC (rev 277389)
@@ -1016,12 +1016,12 @@
break;
case _WKElementActionTypeImageExtraction:
#if ENABLE(IMAGE_EXTRACTION)
- [delegate actionSheetAssistant:self handleImageExtraction:element.image title:element.title];
+ [delegate actionSheetAssistant:self handleImageExtraction:element.image imageURL:element.imageURL title:element.title];
#endif
break;
case _WKElementActionTypeRevealImage:
#if ENABLE(IMAGE_EXTRACTION)
- [delegate actionSheetAssistant:self handleRevealImage:element.image title:element.title];
+ [delegate actionSheetAssistant:self handleRevealImage:element.image imageURL:element.imageURL title:element.title];
#endif
break;
default:
Modified: trunk/Source/WebKit/UIProcess/mac/WKImageExtractionPreviewController.h (277388 => 277389)
--- trunk/Source/WebKit/UIProcess/mac/WKImageExtractionPreviewController.h 2021-05-12 21:06:35 UTC (rev 277388)
+++ trunk/Source/WebKit/UIProcess/mac/WKImageExtractionPreviewController.h 2021-05-12 21:08:35 UTC (rev 277389)
@@ -34,11 +34,11 @@
}
@interface WKImageExtractionPreviewItem : NSObject <QLPreviewItem>
-- (instancetype)initWithURL:(NSURL *)url title:(NSString *)title;
+- (instancetype)initWithFileURL:(NSURL *)fileURL title:(NSString *)title imageURL:(NSURL *)imageURL pageURL:(NSURL *)pageURL;
@end
@interface WKImageExtractionPreviewController : NSObject <QLPreviewPanelDelegate, QLPreviewPanelDataSource>
-- (instancetype)initWithPage:(WebKit::WebPageProxy&)page url:(NSURL *)url title:(NSString *)title;
+- (instancetype)initWithPage:(WebKit::WebPageProxy&)page fileURL:(NSURL *)fileURL title:(NSString *)title imageURL:(NSURL *)imageURL;
@end
#endif // PLATFORM(MAC) && ENABLE(IMAGE_EXTRACTION)
Modified: trunk/Source/WebKit/UIProcess/mac/WKImageExtractionPreviewController.mm (277388 => 277389)
--- trunk/Source/WebKit/UIProcess/mac/WKImageExtractionPreviewController.mm 2021-05-12 21:06:35 UTC (rev 277388)
+++ trunk/Source/WebKit/UIProcess/mac/WKImageExtractionPreviewController.mm 2021-05-12 21:08:35 UTC (rev 277389)
@@ -34,17 +34,21 @@
#import <wtf/WeakPtr.h>
@implementation WKImageExtractionPreviewItem {
- RetainPtr<NSURL> _url;
+ RetainPtr<NSURL> _fileURL;
RetainPtr<NSString> _title;
+ RetainPtr<NSURL> _imageURL;
+ RetainPtr<NSURL> _pageURL;
}
-- (instancetype)initWithURL:(NSURL *)url title:(NSString *)title
+- (instancetype)initWithFileURL:(NSURL *)fileURL title:(NSString *)title imageURL:(NSURL *)imageURL pageURL:(NSURL *)pageURL
{
if (!(self = [super init]))
return nil;
- _url = url;
+ _fileURL = fileURL;
_title = adoptNS([title copy]);
+ _imageURL = imageURL;
+ _pageURL = pageURL;
return self;
}
@@ -51,7 +55,7 @@
- (void)dealloc
{
- FileSystem::deleteFile([_url path]);
+ FileSystem::deleteFile([_fileURL path]);
[super dealloc];
}
@@ -60,7 +64,7 @@
- (NSURL *)previewItemURL
{
- return _url.get();
+ return _fileURL.get();
}
- (NSString *)previewItemTitle
@@ -68,6 +72,19 @@
return _title.get();
}
+- (NSDictionary *)previewOptions
+{
+ if (!_imageURL && !_pageURL)
+ return nil;
+
+ auto previewOptions = adoptNS([[NSMutableDictionary alloc] initWithCapacity:2]);
+ if (_imageURL)
+ [previewOptions setObject:_imageURL.get() forKey:@"imageURL"];
+ if (_pageURL)
+ [previewOptions setObject:_pageURL.get() forKey:@"pageURL"];
+ return previewOptions.autorelease();
+}
+
@end
@implementation WKImageExtractionPreviewController {
@@ -75,14 +92,16 @@
RetainPtr<WKImageExtractionPreviewItem> _previewItem;
}
-- (instancetype)initWithPage:(WebKit::WebPageProxy&)page url:(NSURL *)url title:(NSString *)title
+- (instancetype)initWithPage:(WebKit::WebPageProxy&)page fileURL:(NSURL *)fileURL title:(NSString *)title imageURL:(NSURL *)imageURL
{
if (!(self = [super init]))
return nil;
_page = makeWeakPtr(page);
- _previewItem = adoptNS([[WKImageExtractionPreviewItem alloc] initWithURL:url title:title]);
+ // FIXME: We should turn `_previewItem` into a QLItem once the fix for rdar://74299451 is available.
+ _previewItem = adoptNS([[WKImageExtractionPreviewItem alloc] initWithFileURL:fileURL title:title imageURL:imageURL pageURL:URL { URL { }, page.currentURL() }]);
+
return self;
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes