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..041569411573da4dd3bec03a614fe11a660ed3b3 |
| --- /dev/null |
| +++ b/chrome/renderer/resources/extensions/chrome_web_view.js |
| @@ -0,0 +1,47 @@ |
| +// 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 WebViewInternal = require('webView').WebViewInternal |
|
lazyboy
2014/09/11 20:02:04
nit: Sort these.
lfg
2014/09/11 21:17:20
Done.
|
| +var ChromeWebView = require('chromeWebViewInternal').ChromeWebView; |
| +var EventBindings = require('event_bindings'); |
| + |
| +var CreateEvent = function(name) { |
|
lazyboy
2014/09/11 20:02:04
Use the one defined in web_view_events.js
var Crea
lfg
2014/09/11 21:17:20
Done.
|
| + var eventOpts = {supportsListeners: true, supportsFilters: true}; |
| + return new EventBindings.Event(name, undefined, eventOpts); |
| +}; |
| + |
| +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 web_view_experimental.js to implement contextmenu |
|
lazyboy
2014/09/11 20:02:04
s/web_view_experimental/chrome_web_view_experiment
lfg
2014/09/11 21:17:20
Done.
|
| + * 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); |
| +}; |