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

Reply via email to