Title: [175780] trunk/Source/WebKit2
- Revision
- 175780
- Author
- [email protected]
- Date
- 2014-11-08 12:27:13 -0800 (Sat, 08 Nov 2014)
Log Message
WKActionMenuController methods should be more careful to use the best
WebHitTestResult
https://bugs.webkit.org/show_bug.cgi?id=138536
-and corresponding-
rdar://problem/18919195
Reviewed by Tim Horton.
This patch re-names _hitTestResultForStage to _webHitTestResult. The method no
longer takes a stage since that value is really not necessary to determine the
correct WebHitTestResult. This patch also makes all spots in this file that access
a WebHitTestResult go through _webHitTestResult to ensure that they get the most
up-to-date option.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController _openURLFromActionMenu:]):
(-[WKActionMenuController _addToReadingListFromActionMenu:]):
(-[WKActionMenuController _previewURLFromActionMenu:]):
(-[WKActionMenuController _defaultMenuItemsForVideo]):
(-[WKActionMenuController _copyVideoURL:]):
(-[WKActionMenuController _saveVideoToDownloads:]):
(-[WKActionMenuController _saveImageToDownloads:]):
(-[WKActionMenuController _defaultMenuItems]):
(-[WKActionMenuController _updateActionMenuItemsForStage:]):
(imageForResource:name::switch): Deleted.
(-[WKActionMenuController _defaultMenuItems:]): Deleted.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (175779 => 175780)
--- trunk/Source/WebKit2/ChangeLog 2014-11-08 19:07:50 UTC (rev 175779)
+++ trunk/Source/WebKit2/ChangeLog 2014-11-08 20:27:13 UTC (rev 175780)
@@ -1,5 +1,34 @@
2014-11-08 Beth Dakin <[email protected]>
+ WKActionMenuController methods should be more careful to use the best
+ WebHitTestResult
+ https://bugs.webkit.org/show_bug.cgi?id=138536
+ -and corresponding-
+ rdar://problem/18919195
+
+ Reviewed by Tim Horton.
+
+ This patch re-names _hitTestResultForStage to _webHitTestResult. The method no
+ longer takes a stage since that value is really not necessary to determine the
+ correct WebHitTestResult. This patch also makes all spots in this file that access
+ a WebHitTestResult go through _webHitTestResult to ensure that they get the most
+ up-to-date option.
+ * UIProcess/mac/WKActionMenuController.mm:
+ (-[WKActionMenuController willOpenMenu:withEvent:]):
+ (-[WKActionMenuController _openURLFromActionMenu:]):
+ (-[WKActionMenuController _addToReadingListFromActionMenu:]):
+ (-[WKActionMenuController _previewURLFromActionMenu:]):
+ (-[WKActionMenuController _defaultMenuItemsForVideo]):
+ (-[WKActionMenuController _copyVideoURL:]):
+ (-[WKActionMenuController _saveVideoToDownloads:]):
+ (-[WKActionMenuController _saveImageToDownloads:]):
+ (-[WKActionMenuController _defaultMenuItems]):
+ (-[WKActionMenuController _updateActionMenuItemsForStage:]):
+ (imageForResource:name::switch): Deleted.
+ (-[WKActionMenuController _defaultMenuItems:]): Deleted.
+
+2014-11-08 Beth Dakin <[email protected]>
+
Implement action menu support for videos
https://bugs.webkit.org/show_bug.cgi?id=138534
-and corresponding-
Modified: trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm (175779 => 175780)
--- trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm 2014-11-08 19:07:50 UTC (rev 175779)
+++ trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm 2014-11-08 20:27:13 UTC (rev 175780)
@@ -210,7 +210,7 @@
// Action menus for text should highlight the text so that it is clear what the action menu actions
// will apply to. If the text is already selected, the menu will use the existing selection.
- RefPtr<WebHitTestResult> hitTestResult = [self _hitTestResultForStage:MenuUpdateStage::MenuNeedsUpdate];
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
if (!hitTestResult->isSelected())
_page->selectLastActionMenuRange();
}
@@ -289,13 +289,13 @@
- (void)_openURLFromActionMenu:(id)sender
{
- WebHitTestResult* hitTestResult = _page->lastMouseMoveHitTestResult();
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
[[NSWorkspace sharedWorkspace] openURL:[NSURL _web_URLWithWTFString:hitTestResult->absoluteLinkURL()]];
}
- (void)_addToReadingListFromActionMenu:(id)sender
{
- WebHitTestResult* hitTestResult = _page->lastMouseMoveHitTestResult();
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
NSSharingService *service = [NSSharingService sharingServiceNamed:NSSharingServiceNameAddToSafariReadingList];
[service performWithItems:@[ [NSURL _web_URLWithWTFString:hitTestResult->absoluteLinkURL()] ]];
}
@@ -312,7 +312,7 @@
if (_previewPopover)
return;
- WebHitTestResult* hitTestResult = _page->lastMouseMoveHitTestResult();
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
NSURL *url = "" _web_URLWithWTFString:hitTestResult->absoluteLinkURL()];
NSRect originRect = hitTestResult->elementBoundingBox();
[self _createPreviewPopoverForURL:url originRect:originRect];
@@ -398,7 +398,7 @@
RetainPtr<NSMenuItem> copyVideoURLItem = [self _createActionMenuItemForTag:kWKContextActionItemTagCopyVideoURL];
RetainPtr<NSMenuItem> saveToDownloadsItem;
- RefPtr<WebHitTestResult> hitTestResult = WebHitTestResult::create(_hitTestResult.hitTestResult);
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
if (hitTestResult->isDownloadableMedia())
saveToDownloadsItem = [self _createActionMenuItemForTag:kWKContextActionItemTagSaveVideoToDownloads];
else
@@ -417,7 +417,7 @@
- (void)_copyVideoURL:(id)sender
{
- RefPtr<WebHitTestResult> hitTestResult = WebHitTestResult::create(_hitTestResult.hitTestResult);
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
[[NSPasteboard generalPasteboard] clearContents];
[[NSPasteboard generalPasteboard] writeObjects:@[ hitTestResult->absoluteMediaURL() ]];
@@ -425,7 +425,7 @@
- (void)_saveVideoToDownloads:(id)sender
{
- RefPtr<WebHitTestResult> hitTestResult = WebHitTestResult::create(_hitTestResult.hitTestResult);
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
_page->process().context().download(_page, hitTestResult->absoluteMediaURL());
}
@@ -467,7 +467,7 @@
- (void)_saveImageToDownloads:(id)sender
{
- WebHitTestResult* hitTestResult = _page->lastMouseMoveHitTestResult();
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
_page->process().context().download(_page, hitTestResult->absoluteImageURL());
}
@@ -825,27 +825,20 @@
return [[NSBundle bundleForClass:[WKView class]] imageForResource:name];
}
-- (PassRefPtr<WebHitTestResult>)_hitTestResultForStage:(MenuUpdateStage)stage
+- (PassRefPtr<WebHitTestResult>)_webHitTestResult
{
RefPtr<WebHitTestResult> hitTestResult;
- switch (stage) {
- case MenuUpdateStage::PrepareForMenu:
+ if (_state == ActionMenuState::Ready)
+ hitTestResult = WebHitTestResult::create(_hitTestResult.hitTestResult);
+ else
hitTestResult = _page->lastMouseMoveHitTestResult();
- break;
- case MenuUpdateStage::MenuNeedsUpdate:
- if (_state == ActionMenuState::Ready)
- hitTestResult = WebHitTestResult::create(_hitTestResult.hitTestResult);
- else
- hitTestResult = _page->lastMouseMoveHitTestResult();
- break;
- }
return hitTestResult.release();
}
-- (NSArray *)_defaultMenuItems:(MenuUpdateStage)stage
+- (NSArray *)_defaultMenuItems
{
- RefPtr<WebHitTestResult> hitTestResult = [self _hitTestResultForStage:stage];
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
if (!hitTestResult) {
_type = kWKActionMenuNone;
return _state != ActionMenuState::Ready ? @[ [NSMenuItem separatorItem] ] : @[ ];
@@ -902,8 +895,8 @@
{
[_wkView.actionMenu removeAllItems];
- NSArray *menuItems = [self _defaultMenuItems:stage];
- RefPtr<WebHitTestResult> hitTestResult = [self _hitTestResultForStage:stage];
+ NSArray *menuItems = [self _defaultMenuItems];
+ RefPtr<WebHitTestResult> hitTestResult = [self _webHitTestResult];
if ([_wkView respondsToSelector:@selector(_actionMenuItemsForHitTestResult:defaultActionMenuItems:)])
menuItems = [_wkView _actionMenuItemsForHitTestResult:toAPI(hitTestResult.get()) defaultActionMenuItems:menuItems];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes