Web Inspector: Allow showing a context menu on all mouse events.
https://bugs.webkit.org/show_bug.cgi?id=124747

Reviewed by Joseph Pecoraro.

Source/WebCore:

Add a new InspectorFrontendHost::dispatchEventAsContextMenuEvent(Event*) method
to let the inspector front-end dispatch a native contextmenu event that will allow
for a context menu to be shown from within a non-contextmenu event handler.

* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
Check that we're dealing with a mouse event, get the frame for the event target
and the event's location to call ContextMenuController::showContextMenuAt()
which will handle the new contextmenu event dispatch to the original event target.

* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:

Source/WebInspectorUI:

Automatically dispatch a contextmenu event in case WebInspector.ContextMenu.prototype.show()
is called outside of a contextmenu event handler and would therefore not show the expected
context menu (except in the Remote Web Inspector where this already works).

* UserInterface/ContextMenu.js:
(WebInspector.ContextMenu.prototype.show):
Check whether the event is a contextmenu event, and if not, add an event listener for a manually
dispatched contextmenu event such that we may then call InspectorFrontendHost.showContextMenu()
in a contextmenu event handler.

(WebInspector.ContextMenu.prototype.handleEvent):
Call InspectorFrontendHost.showContextMenu() now that we received the manually dispatched
contextmenu event.


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