Bug 150374

Summary: ASSERT when right clicking on SVG Image generating Share menu - can break Web Inspector
Product: WebKit Reporter: Joseph Pecoraro <joepeck>
Component: WebKit2Assignee: Joseph Pecoraro <joepeck>
Status: RESOLVED FIXED    
Severity: Normal CC: bburg, beidson, commit-queue, timothy
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
[PATCH] Proposed Fix none

Description Joseph Pecoraro 2015-10-20 15:15:39 PDT
* SUMMARY
ASSERT when right clicking on SVG Image generating Share menu - can break Web Inspector.

* TEST PAGE
<img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'><rect width='100' height='100' style='fill:red'/></svg>">

* STEPS TO REPRODUCE (ASSERT)
1. Open test page
2. Right click SVG
  => ASSERT

* STEPS TO REPRODUCE (Break Inspector)
1. Inspect test page
2. Show image resource for the svg image
3. Right click image content in inspector
  => Uncaught exception, broken inspector (cannot click anywhere else anymore)

* NOTES
ASSERTION FAILED: m_nsMenuItem
Source/WebKit2/Shared/mac/NativeContextMenuItem.mm(40) : WebKit::NativeContextMenuItem::NativeContextMenuItem(const WebCore::ContextMenuItem &)
1   0x106fa4ae0 WTFCrash
2   0x109482585 WebKit::NativeContextMenuItem::NativeContextMenuItem(WebCore::ContextMenuItem const&)
3   0x1094825dd WebKit::NativeContextMenuItem::NativeContextMenuItem(WebCore::ContextMenuItem const&)
4   0x1098ecab7 std::_Unique_if<WebKit::NativeContextMenuItem>::_Single_object std::make_unique<WebKit::NativeContextMenuItem, WebCore::ContextMenuItem const&>(WebCore::ContextMenuItem const&&&)
5   0x1098ec3e8 WebKit::WebContextMenuItem::WebContextMenuItem(WebCore::ContextMenuItem const&)
6   0x1098ec68d WebKit::WebContextMenuItem::WebContextMenuItem(WebCore::ContextMenuItem const&)
7   0x1098f2443 WebKit::WebContextMenuItem::create(WebCore::ContextMenuItem const&)
8   0x1098f02fc WebKit::WebContextMenuProxyMac::showContextMenu()
9   0x109ade489 WebKit::WebPageProxy::internalShowContextMenu(WebKit::ContextMenuContextData const&, WebKit::UserData const&)
10  0x109ade26c WebKit::WebPageProxy::showContextMenu(WebKit::ContextMenuContextData const&, WebKit::UserData const&)
11  0x109b787c5 void IPC::callMemberFunctionImpl<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WebKit::ContextMenuContextData const&, WebKit::UserData const&), std::__1::tuple<WebKit::ContextMenuContextData, WebKit::UserData>, 0ul, 1ul>(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebKit::ContextMenuContextData const&, WebKit::UserData const&), std::__1::tuple<WebKit::ContextMenuContextData, WebKit::UserData>&&, std::index_sequence<0ul, 1ul>)
12  0x109b78538 void IPC::callMemberFunction<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WebKit::ContextMenuContextData const&, WebKit::UserData const&), std::__1::tuple<WebKit::ContextMenuContextData, WebKit::UserData>, std::make_index_sequence<2ul> >(std::__1::tuple<WebKit::ContextMenuContextData, WebKit::UserData>&&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebKit::ContextMenuContextData const&, WebKit::UserData const&))
13  0x109b60f52 void IPC::handleMessage<Messages::WebPageProxy::ShowContextMenu, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WebKit::ContextMenuContextData const&, WebKit::UserData const&)>(IPC::MessageDecoder&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebKit::ContextMenuContextData const&, WebKit::UserData const&))
14  0x109b55dda WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
...
Comment 1 Joseph Pecoraro 2015-10-20 15:20:58 PDT
Created attachment 263620 [details]
[PATCH] Proposed Fix
Comment 2 BJ Burg 2015-10-20 15:31:02 PDT
Comment on attachment 263620 [details]
[PATCH] Proposed Fix

r=me

Would have been easier to catch in review if ContextMenuItem was nullable (a pointer).
Comment 3 WebKit Commit Bot 2015-10-20 16:16:37 PDT
Comment on attachment 263620 [details]
[PATCH] Proposed Fix

Clearing flags on attachment: 263620

Committed r191363: <http://trac.webkit.org/changeset/191363>
Comment 4 WebKit Commit Bot 2015-10-20 16:16:44 PDT
All reviewed patches have been landed.  Closing bug.