ASSERT when right clicking on SVG Image generating Share menu - can break Web Inspector
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Oct 2015 23:15:57 +0000 (23:15 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Oct 2015 23:15:57 +0000 (23:15 +0000)
https://bugs.webkit.org/show_bug.cgi?id=150374

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-10-20
Reviewed by Brian Burg.

When there is no absolute URL or downloadable media URL no system share
menu is created, but we were still appending the null context menu to
the list of context menu items.

* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::shareMenuItem):
Bail early if the context menu is null.

(WebKit::WebContextMenuProxyMac::showContextMenu):
Only append the share context menu item if it is non-null.
This matches ContextMenuController.cpp in WebCore.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@191363 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm

index 98b600bd168e44bbf197228e0cce8e44f45dfaa9..3fca7dc7e5bb04fae028167b466dc9e2ba5363c7 100644 (file)
@@ -1,3 +1,22 @@
+2015-10-20  Joseph Pecoraro  <pecoraro@apple.com>
+
+        ASSERT when right clicking on SVG Image generating Share menu - can break Web Inspector
+        https://bugs.webkit.org/show_bug.cgi?id=150374
+
+        Reviewed by Brian Burg.
+
+        When there is no absolute URL or downloadable media URL no system share
+        menu is created, but we were still appending the null context menu to
+        the list of context menu items.
+
+        * UIProcess/mac/WebContextMenuProxyMac.mm:
+        (WebKit::WebContextMenuProxyMac::shareMenuItem):
+        Bail early if the context menu is null.
+
+        (WebKit::WebContextMenuProxyMac::showContextMenu):
+        Only append the share context menu item if it is non-null.
+        This matches ContextMenuController.cpp in WebCore.
+
 2015-10-20  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r191306.
index f47c3f56d90462a4a47e4a947bbb7768502f6a65..05ac812a040ef2651f10284c38ee139f1ad59393 100644 (file)
@@ -341,6 +341,8 @@ ContextMenuItem WebContextMenuProxyMac::shareMenuItem()
         image = adoptNS([[NSImage alloc] initWithData:[NSData dataWithBytes:(unsigned char*)hitTestData.imageSharedMemory->data() length:hitTestData.imageSize]]);
 
     ContextMenuItem item = ContextMenuItem::shareMenuItem(absoluteLinkURL, downloadableMediaURL, image.get(), m_context.selectedText());
+    if (item.isNull())
+        return item;
 
     NSMenuItem *nsItem = item.platformDescription();
 
@@ -397,7 +399,9 @@ void WebContextMenuProxyMac::showContextMenu()
         }
 
 #if ENABLE(SERVICE_CONTROLS)
-        proposedAPIItems.append(WebContextMenuItem::create(shareMenuItem()));
+        ContextMenuItem shareItem = shareMenuItem();
+        if (!shareItem.isNull())
+            proposedAPIItems.append(WebContextMenuItem::create(shareItem));
 #endif
     }