Chromium Code Reviews| Index: chrome/renderer/resources/extensions/chrome_web_view.js |
| diff --git a/chrome/renderer/resources/extensions/chrome_web_view.js b/chrome/renderer/resources/extensions/chrome_web_view.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4453526dcb80319b0ddf714f688b21215a8ad3ef |
| --- /dev/null |
| +++ b/chrome/renderer/resources/extensions/chrome_web_view.js |
| @@ -0,0 +1,44 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +// This module implements chrome-specific <webview> API. |
| + |
| +var ChromeWebView = require('chromeWebViewInternal').ChromeWebView; |
| +var EventBindings = require('event_bindings'); |
| +var WebViewInternal = require('webView').WebViewInternal |
| + |
| +var CreateEvent = require('webViewEvents').CreateEvent; |
|
lazyboy
2014/09/11 21:23:26
nit: This one got unsorted :)
lfg
2014/09/11 21:28:27
Done.
|
| + |
| +var CHROME_WEB_VIEW_EVENTS = { |
| + 'contextmenu': { |
| + evt: CreateEvent('chromeWebViewInternal.contextmenu'), |
| + cancelable: true, |
| + customHandler: function(handler, event, webViewEvent) { |
| + handler.webViewInternal.maybeHandleContextMenu(event, webViewEvent); |
| + }, |
| + fields: ['items'] |
| + } |
| +}; |
| + |
| +/** |
| + * Implemented when the ChromeWebView API is available. |
| + * @private |
| + */ |
| +WebViewInternal.prototype.maybeGetChromeWebViewEvents = function() { |
| + return CHROME_WEB_VIEW_EVENTS; |
| +}; |
| + |
| +/** |
| + * Calls to show contextmenu right away instead of dispatching a 'contextmenu' |
| + * event. |
| + * This will be overridden in chrome_web_view_experimental.js to implement |
| + * contextmenu API. |
| + */ |
| +WebViewInternal.prototype.maybeHandleContextMenu = function(e, webViewEvent) { |
| + var requestId = e.requestId; |
| + // Setting |params| = undefined will show the context menu unmodified, hence |
| + // the 'contextmenu' API is disabled for stable channel. |
| + var params = undefined; |
| + ChromeWebView.showContextMenu(this.guestInstanceId, requestId, params); |
| +}; |