<webview>: Context menu API implementation CL.
commit6f9d2c65f825f2a68502333722910061ef9678e7
authorlazyboy@chromium.org <lazyboy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Mon, 10 Mar 2014 12:12:05 +0000 (10 12:12 +0000)
committerlazyboy@chromium.org <lazyboy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Mon, 10 Mar 2014 12:12:05 +0000 (10 12:12 +0000)
tree47b20dad077795b3e2ba15cef7d6eb5115fc9060
parentf6ca12ef10248c5fd648825e61695b2769c4ddc3
<webview>: Context menu API implementation CL.

Very Similar to chrome.contextMenus API, only applies to the <webview> that it is called upon.

var w = document.querySelector('webview');
w.contextMenus.OnClicked.addListener(function() { .. });
w.contextMenus.create({id: '1', title: 'one'});
w.contextMenus.update({id: '2', title: 'new', onclick: ...});
w.contextMenus.remove('1');
w.contextMenus.removeAll('1');

This CL adds the actual implementation to the previously exposed skeleton API.

Docs/snippets here:
https://docs.google.com/a/chromium.org/document/d/1AoMD6kF8ui1dikzTrwK-weVHegSqQaLV2zx4xJSh_fQ/edit

TBR=stevenjb@chromium.org
BUG=140315
Test=Can be tested inside a chrome apps <webview>.
<webview>.contextMenus.create(...) to create custom context menu items.
The API is similar to chrome.contextMenus API. Similarly .update,
.remove, .removeAll is also supported.
Click event handler can be specified as
<webview>.contextMenus.onClick.addListener(...).

Review URL: https://codereview.chromium.org/186213003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255917 0039d316-1c4b-4281-b951-d872f2087c98
27 files changed:
chrome/browser/apps/web_view_browsertest.cc
chrome/browser/extensions/api/context_menus/context_menus_api.cc
chrome/browser/extensions/api/context_menus/context_menus_api_helpers.h
chrome/browser/extensions/api/webview/webview_api.cc
chrome/browser/extensions/context_menu_matcher.cc
chrome/browser/extensions/context_menu_matcher.h
chrome/browser/extensions/event_names.cc
chrome/browser/extensions/event_names.h
chrome/browser/extensions/extension_context_menu_browsertest.cc
chrome/browser/extensions/menu_manager.cc
chrome/browser/extensions/menu_manager.h
chrome/browser/extensions/menu_manager_unittest.cc
chrome/browser/guestview/webview/context_menu_content_type_webview.cc
chrome/browser/guestview/webview/webview_guest.cc
chrome/browser/guestview/webview/webview_guest.h
chrome/browser/renderer_context_menu/render_view_context_menu.cc
chrome/browser/renderer_context_menu/render_view_context_menu.h
chrome/browser/renderer_context_menu/render_view_context_menu_test_util.cc
chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h
chrome/browser/ui/app_list/app_context_menu.cc
chrome/browser/ui/ash/launcher/launcher_context_menu.cc
chrome/renderer/resources/extensions/webview_custom_bindings.js
chrome/test/data/extensions/platform_apps/web_view/context_menus/basic/embedder.html [new file with mode: 0644]
chrome/test/data/extensions/platform_apps/web_view/context_menus/basic/embedder.js [new file with mode: 0644]
chrome/test/data/extensions/platform_apps/web_view/context_menus/basic/guest.js [new file with mode: 0644]
chrome/test/data/extensions/platform_apps/web_view/context_menus/basic/manifest.json [new file with mode: 0644]
chrome/test/data/extensions/platform_apps/web_view/context_menus/basic/test.js [new file with mode: 0644]