Diff
Modified: trunk/Source/WebCore/ChangeLog (181857 => 181858)
--- trunk/Source/WebCore/ChangeLog 2015-03-23 18:18:49 UTC (rev 181857)
+++ trunk/Source/WebCore/ChangeLog 2015-03-23 18:39:13 UTC (rev 181858)
@@ -1,3 +1,17 @@
+2015-03-23 Tim Horton <[email protected]>
+
+ Add a share item to the link action menu
+ https://bugs.webkit.org/show_bug.cgi?id=142961
+ <rdar://problem/19198374>
+
+ Reviewed by Beth Dakin.
+
+ * English.lproj/Localizable.strings:
+ Remove some now-unused strings.
+
+ * platform/spi/mac/NSMenuSPI.h:
+ Add some SPI.
+
2015-03-23 David Kilzer <[email protected]>
[iOS] Build fix: CoreText deprecated kCTFontSystemFontType
Modified: trunk/Source/WebCore/English.lproj/Localizable.strings (181857 => 181858)
--- trunk/Source/WebCore/English.lproj/Localizable.strings 2015-03-23 18:18:49 UTC (rev 181857)
+++ trunk/Source/WebCore/English.lproj/Localizable.strings 2015-03-23 18:39:13 UTC (rev 181858)
@@ -1093,9 +1093,6 @@
/* "Save to Downloads" action menu item in image menu */
"Save to Downloads (image action menu item)" = "Save to Downloads";
-/* "Share" action menu item in image menu */
-"Share (image action menu item)" = "Share";
-
/* "Copy" action menu item in text menu */
"Copy (text action menu item)" = "Copy";
@@ -1111,8 +1108,5 @@
/* "Copy" action menu item in video menu */
"Copy (video action menu item)" = "Copy";
-/* "Share" action menu item in video menu */
-"Share (video action menu item)" = "Share";
-
/* "Save to Downloads" action menu item in video menu */
"Save to Downloads (video action menu item)" = "Save to Downloads";
Modified: trunk/Source/WebCore/platform/spi/mac/NSMenuSPI.h (181857 => 181858)
--- trunk/Source/WebCore/platform/spi/mac/NSMenuSPI.h 2015-03-23 18:18:49 UTC (rev 181857)
+++ trunk/Source/WebCore/platform/spi/mac/NSMenuSPI.h 2015-03-23 18:39:13 UTC (rev 181858)
@@ -39,4 +39,5 @@
@interface NSMenuItem (Private)
+ (QLPreviewMenuItem *)standardQuickLookMenuItem;
++ (NSMenuItem *)standardShareMenuItemWithItems:(NSArray *)items;
@end
Modified: trunk/Source/WebKit/mac/ChangeLog (181857 => 181858)
--- trunk/Source/WebKit/mac/ChangeLog 2015-03-23 18:18:49 UTC (rev 181857)
+++ trunk/Source/WebKit/mac/ChangeLog 2015-03-23 18:39:13 UTC (rev 181858)
@@ -1,3 +1,25 @@
+2015-03-23 Tim Horton <[email protected]>
+
+ Add a share item to the link action menu
+ https://bugs.webkit.org/show_bug.cgi?id=142961
+ <rdar://problem/19198374>
+
+ Reviewed by Beth Dakin.
+
+ * WebView/WebActionMenuController.mm:
+ (-[WebActionMenuController _defaultMenuItemsForImage]):
+ (-[WebActionMenuController _defaultMenuItemsForVideo]):
+ (-[WebActionMenuController _createActionMenuItemForTag:]):
+ (-[WebActionMenuController _createShareActionMenuItemForTag:withItems:]):
+ Adopt -[NSMenuItem standardShareMenuItemWithItems].
+ All of the null-checking is unnecessary as it's impossible to enter
+ these functions with a null image/etc.
+ Also, remove a duplicate isDownloadableMedia check for the 'save to downloads' item.
+
+ (-[WebActionMenuController _defaultMenuItemsForLink]):
+ * WebView/WebUIDelegatePrivate.h:
+ Add a 'Share' item to the link menu.
+
2015-03-22 Alexey Proskuryakov <[email protected]>
Build fix.
Modified: trunk/Source/WebKit/mac/WebView/WebActionMenuController.mm (181857 => 181858)
--- trunk/Source/WebKit/mac/WebView/WebActionMenuController.mm 2015-03-23 18:18:49 UTC (rev 181857)
+++ trunk/Source/WebKit/mac/WebView/WebActionMenuController.mm 2015-03-23 18:39:13 UTC (rev 181858)
@@ -266,7 +266,10 @@
RetainPtr<NSMenuItem> openLinkItem = [self _createActionMenuItemForTag:WebActionMenuItemTagOpenLinkInDefaultBrowser];
RetainPtr<NSMenuItem> readingListItem = [self _createActionMenuItemForTag:WebActionMenuItemTagAddLinkToSafariReadingList];
- return @[ openLinkItem.get(), [NSMenuItem separatorItem], [NSMenuItem separatorItem], readingListItem.get() ];
+ NSURL *url = ""
+ RetainPtr<NSMenuItem> shareItem = [self _createShareActionMenuItemForTag:WebActionMenuItemTagShareLink withItems:@[ url ]];
+
+ return @[ openLinkItem.get(), shareItem.get(), [NSMenuItem separatorItem], readingListItem.get() ];
}
#pragma mark mailto: and tel: Link actions
@@ -306,18 +309,9 @@
if (!_webView.downloadDelegate)
[saveToDownloadsItem setEnabled:NO];
- RetainPtr<NSMenuItem> shareItem = [self _createActionMenuItemForTag:WebActionMenuItemTagShareImage];
- if (Image* image = _hitTestResult.image()) {
- RefPtr<SharedBuffer> buffer = image->data();
- if (buffer) {
- RetainPtr<NSData> nsData = [NSData dataWithBytes:buffer->data() length:buffer->size()];
- RetainPtr<NSImage> nsImage = adoptNS([[NSImage alloc] initWithData:nsData.get()]);
- _sharingServicePicker = adoptNS([[NSSharingServicePicker alloc] initWithItems:@[ nsImage.get() ]]);
- [_sharingServicePicker setDelegate:self];
- [shareItem setSubmenu:[_sharingServicePicker menu]];
- } else
- [shareItem setEnabled:NO];
- }
+ RefPtr<SharedBuffer> buffer = _hitTestResult.image()->data();
+ RetainPtr<NSImage> nsImage = adoptNS([[NSImage alloc] initWithData:[NSData dataWithBytes:buffer->data() length:buffer->size()]]);
+ RetainPtr<NSMenuItem> shareItem = [self _createShareActionMenuItemForTag:WebActionMenuItemTagShareImage withItems:@[ nsImage.get() ]];
return @[ copyImageItem.get(), addToPhotosItem.get(), saveToDownloadsItem.get(), shareItem.get() ];
}
@@ -428,15 +422,8 @@
if (!_hitTestResult.isDownloadableMedia() || !_webView.downloadDelegate)
[saveToDownloadsItem setEnabled:NO];
- RetainPtr<NSMenuItem> shareItem = [self _createActionMenuItemForTag:WebActionMenuItemTagShareVideo];
- NSString *urlToShare = _hitTestResult.absoluteMediaURL();
- if (!_hitTestResult.isDownloadableMedia()) {
- [saveToDownloadsItem setEnabled:NO];
- urlToShare = [_webView mainFrameURL];
- }
- _sharingServicePicker = adoptNS([[NSSharingServicePicker alloc] initWithItems:@[ urlToShare ]]);
- [_sharingServicePicker setDelegate:self];
- [shareItem setSubmenu:[_sharingServicePicker menu]];
+ String urlToShare = _hitTestResult.isDownloadableMedia() ? _hitTestResult.absoluteMediaURL() : [_webView mainFrameURL];
+ RetainPtr<NSMenuItem> shareItem = [self _createShareActionMenuItemForTag:WebActionMenuItemTagShareImage withItems:@[ urlToShare ]];
return @[ copyVideoURLItem.get(), [NSMenuItem separatorItem], saveToDownloadsItem.get(), shareItem.get() ];
}
@@ -701,11 +688,6 @@
image = [NSImage imageNamed:@"NSActionMenuSaveToDownloads"];
break;
- case WebActionMenuItemTagShareImage:
- title = WEB_UI_STRING_KEY("Share (image action menu item)", "Share (image action menu item)", "image action menu item");
- image = [NSImage imageNamed:@"NSActionMenuShare"];
- break;
-
case WebActionMenuItemTagCopyVideoURL:
selector = @selector(_copyVideoURL:);
title = WEB_UI_STRING_KEY("Copy", "Copy (video action menu item)", "video action menu item");
@@ -718,11 +700,6 @@
image = [NSImage imageNamed:@"NSActionMenuSaveToDownloads"];
break;
- case WebActionMenuItemTagShareVideo:
- title = WEB_UI_STRING_KEY("Share", "Share (video action menu item)", "video action menu item");
- image = [NSImage imageNamed:@"NSActionMenuShare"];
- break;
-
default:
ASSERT_NOT_REACHED();
return nil;
@@ -736,6 +713,17 @@
return item;
}
+- (RetainPtr<NSMenuItem>)_createShareActionMenuItemForTag:(uint32_t)tag withItems:(NSArray *)items
+{
+ RetainPtr<NSMenuItem> shareItem = [NSMenuItem standardShareMenuItemWithItems:items];
+ [shareItem setTag:tag];
+
+ NSSharingServicePicker *sharingServicePicker = [shareItem representedObject];
+ sharingServicePicker.delegate = self;
+
+ return shareItem;
+}
+
- (NSArray *)_defaultMenuItems
{
NSURL *url = ""
Modified: trunk/Source/WebKit/mac/WebView/WebUIDelegatePrivate.h (181857 => 181858)
--- trunk/Source/WebKit/mac/WebView/WebUIDelegatePrivate.h 2015-03-23 18:18:49 UTC (rev 181857)
+++ trunk/Source/WebKit/mac/WebView/WebUIDelegatePrivate.h 2015-03-23 18:39:13 UTC (rev 181858)
@@ -127,7 +127,8 @@
WebActionMenuItemTagShareImage,
WebActionMenuItemTagCopyVideoURL,
WebActionMenuItemTagSaveVideoToDownloads,
- WebActionMenuItemTagShareVideo
+ WebActionMenuItemTagShareVideo,
+ WebActionMenuItemTagShareLink
};
typedef enum {
Modified: trunk/Source/WebKit2/ChangeLog (181857 => 181858)
--- trunk/Source/WebKit2/ChangeLog 2015-03-23 18:18:49 UTC (rev 181857)
+++ trunk/Source/WebKit2/ChangeLog 2015-03-23 18:39:13 UTC (rev 181858)
@@ -1,3 +1,29 @@
+2015-03-23 Tim Horton <[email protected]>
+
+ Add a share item to the link action menu
+ https://bugs.webkit.org/show_bug.cgi?id=142961
+ <rdar://problem/19198374>
+
+ Reviewed by Beth Dakin.
+
+ * UIProcess/mac/WKActionMenuController.mm:
+ (-[WKActionMenuController _hitLinkURL]):
+ Factor out _hitLinkURL from various places.
+
+ (-[WKActionMenuController _openURLFromActionMenu:]):
+ (-[WKActionMenuController _addToReadingListFromActionMenu:]):
+ (-[WKActionMenuController _defaultMenuItemsForVideo]):
+ (-[WKActionMenuController _defaultMenuItemsForImage]):
+ (-[WKActionMenuController _createActionMenuItemForTag:]):
+ (-[WKActionMenuController _createShareActionMenuItemForTag:withItems:]):
+ Adopt -[NSMenuItem standardShareMenuItemWithItems].
+ All of the null-checking is unnecessary as it's impossible to enter
+ these functions with a null image/etc.
+
+ (-[WKActionMenuController _defaultMenuItemsForLink]):
+ * Shared/API/c/WKActionMenuItemTypes.h:
+ Add a 'Share' item to the link menu.
+
2015-03-23 Zan Dobersek <[email protected]>
[GTK] Use std::abs() in ClickCounter::currentClickCountForGdkButtonEvent()
Modified: trunk/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h (181857 => 181858)
--- trunk/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h 2015-03-23 18:18:49 UTC (rev 181857)
+++ trunk/Source/WebKit2/Shared/API/c/WKActionMenuItemTypes.h 2015-03-23 18:39:13 UTC (rev 181858)
@@ -47,7 +47,8 @@
kWKContextActionItemTagTextSuggestions,
kWKContextActionItemTagCopyVideoURL,
kWKContextActionItemTagSaveVideoToDownloads,
- kWKContextActionItemTagShareVideo
+ kWKContextActionItemTagShareVideo,
+ kWKContextActionItemTagShareLink
};
#ifdef __cplusplus
Modified: trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm (181857 => 181858)
--- trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm 2015-03-23 18:18:49 UTC (rev 181857)
+++ trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm 2015-03-23 18:39:13 UTC (rev 181858)
@@ -180,25 +180,30 @@
#pragma mark Link actions
+- (NSURL *)_hitLinkURL
+{
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
+ return [NSURL _web_URLWithWTFString:hitTestResult->absoluteLinkURL()];
+}
+
- (NSArray *)_defaultMenuItemsForLink
{
RetainPtr<NSMenuItem> openLinkItem = [self _createActionMenuItemForTag:kWKContextActionItemTagOpenLinkInDefaultBrowser];
RetainPtr<NSMenuItem> readingListItem = [self _createActionMenuItemForTag:kWKContextActionItemTagAddLinkToSafariReadingList];
+ RetainPtr<NSMenuItem> shareItem = [self _createShareActionMenuItemForTag:kWKContextActionItemTagShareLink withItems:@[ [self _hitLinkURL] ]];
- return @[ openLinkItem.get(), [NSMenuItem separatorItem], [NSMenuItem separatorItem], readingListItem.get() ];
+ return @[ openLinkItem.get(), shareItem.get(), [NSMenuItem separatorItem], readingListItem.get() ];
}
- (void)_openURLFromActionMenu:(id)sender
{
- RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
- [[NSWorkspace sharedWorkspace] openURL:[NSURL _web_URLWithWTFString:hitTestResult->absoluteLinkURL()]];
+ [[NSWorkspace sharedWorkspace] openURL:[self _hitLinkURL]];
}
- (void)_addToReadingListFromActionMenu:(id)sender
{
- RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
NSSharingService *service = [NSSharingService sharingServiceNamed:NSSharingServiceNameAddToSafariReadingList];
- [service performWithItems:@[ [NSURL _web_URLWithWTFString:hitTestResult->absoluteLinkURL()] ]];
+ [service performWithItems:@[ [self _hitLinkURL] ]];
}
#pragma mark Video actions
@@ -206,23 +211,12 @@
- (NSArray *)_defaultMenuItemsForVideo
{
RetainPtr<NSMenuItem> copyVideoURLItem = [self _createActionMenuItemForTag:kWKContextActionItemTagCopyVideoURL];
+ RetainPtr<NSMenuItem> saveToDownloadsItem = [self _createActionMenuItemForTag:kWKContextActionItemTagSaveVideoToDownloads];
RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
- RetainPtr<NSMenuItem> saveToDownloadsItem = [self _createActionMenuItemForTag:kWKContextActionItemTagSaveVideoToDownloads];
- RetainPtr<NSMenuItem> shareItem = [self _createActionMenuItemForTag:kWKContextActionItemTagShareVideo];
+ String urlToShare = hitTestResult->isDownloadableMedia() ? hitTestResult->absoluteMediaURL() : _page->mainFrame()->url();
+ RetainPtr<NSMenuItem> shareItem = [self _createShareActionMenuItemForTag:kWKContextActionItemTagShareVideo withItems:@[ urlToShare ]];
- String urlToShare = hitTestResult->absoluteMediaURL();
- if (!hitTestResult->isDownloadableMedia()) {
- [saveToDownloadsItem setEnabled:NO];
- urlToShare = _page->mainFrame()->url();
- }
-
- if (!urlToShare.isEmpty()) {
- _sharingServicePicker = adoptNS([[NSSharingServicePicker alloc] initWithItems:@[ urlToShare ]]);
- [_sharingServicePicker setDelegate:self];
- [shareItem setSubmenu:[_sharingServicePicker menu]];
- }
-
return @[ copyVideoURLItem.get(), [NSMenuItem separatorItem], saveToDownloadsItem.get(), shareItem.get() ];
}
@@ -264,14 +258,8 @@
else
addToPhotosItem = [NSMenuItem separatorItem];
RetainPtr<NSMenuItem> saveToDownloadsItem = [self _createActionMenuItemForTag:kWKContextActionItemTagSaveImageToDownloads];
- RetainPtr<NSMenuItem> shareItem = [self _createActionMenuItemForTag:kWKContextActionItemTagShareImage];
+ RetainPtr<NSMenuItem> shareItem = [self _createShareActionMenuItemForTag:kWKContextActionItemTagShareImage withItems:@[ [self _hitTestResultImage] ]];
- if (RetainPtr<NSImage> image = [self _hitTestResultImage]) {
- _sharingServicePicker = adoptNS([[NSSharingServicePicker alloc] initWithItems:@[ image.get() ]]);
- [_sharingServicePicker setDelegate:self];
- [shareItem setSubmenu:[_sharingServicePicker menu]];
- }
-
return @[ copyImageItem.get(), addToPhotosItem.get(), saveToDownloadsItem.get(), shareItem.get() ];
}
@@ -604,11 +592,6 @@
image = [NSImage imageNamed:@"NSActionMenuSaveToDownloads"];
break;
- case kWKContextActionItemTagShareImage:
- title = WEB_UI_STRING_KEY("Share (image action menu item)", "Share (image action menu item)", "image action menu item");
- image = [NSImage imageNamed:@"NSActionMenuShare"];
- break;
-
case kWKContextActionItemTagCopyText:
selector = @selector(_copySelection:);
title = WEB_UI_STRING_KEY("Copy", "Copy (text action menu item)", "text action menu item");
@@ -639,11 +622,6 @@
image = [NSImage imageNamed:@"NSActionMenuSaveToDownloads"];
break;
- case kWKContextActionItemTagShareVideo:
- title = WEB_UI_STRING_KEY("Share", "Share (video action menu item)", "video action menu item");
- image = [NSImage imageNamed:@"NSActionMenuShare"];
- break;
-
default:
ASSERT_NOT_REACHED();
return nil;
@@ -657,6 +635,17 @@
return item;
}
+- (RetainPtr<NSMenuItem>)_createShareActionMenuItemForTag:(uint32_t)tag withItems:(NSArray *)items
+{
+ RetainPtr<NSMenuItem> shareItem = [NSMenuItem standardShareMenuItemWithItems:items];
+ [shareItem setTag:tag];
+
+ NSSharingServicePicker *sharingServicePicker = [shareItem representedObject];
+ sharingServicePicker.delegate = self;
+
+ return shareItem;
+}
+
- (PassRefPtr<WebHitTestResult>)_webHitTestResult
{
RefPtr<WebHitTestResult> hitTestResult;