OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This module implements chrome-specific <webview> API. | 5 // This module implements chrome-specific <webview> API. |
6 | 6 |
7 var ChromeWebView = require('chromeWebViewInternal').ChromeWebView; | 7 var ChromeWebView = require('chromeWebViewInternal').ChromeWebView; |
8 var CreateEvent = require('guestViewEvents').CreateEvent; | 8 var CreateEvent = require('guestViewEvents').CreateEvent; |
9 var EventBindings = require('event_bindings'); | 9 var EventBindings = require('event_bindings'); |
10 var WebViewEvents = require('webViewEvents').WebViewEvents; | 10 var WebViewEvents = require('webViewEvents').WebViewEvents; |
11 | 11 |
12 var CHROME_WEB_VIEW_EVENTS = { | 12 var CHROME_WEB_VIEW_EVENTS = { |
13 'contextmenu': { | 13 'contextmenushown': { |
14 evt: CreateEvent('chromeWebViewInternal.contextmenu'), | 14 evt: CreateEvent('chromeWebViewInternal.contextmenu'), |
15 cancelable: true, | 15 cancelable: true, |
16 fields: ['items'], | 16 fields: ['items'], |
17 handler: 'handleContextMenu' | 17 handler: 'handleContextMenu' |
18 } | 18 } |
19 }; | 19 }; |
20 | 20 |
21 /** | 21 /** |
22 * Calls to show contextmenu right away instead of dispatching a 'contextmenu' | 22 * Calls to show contextmenu right away instead of dispatching a 'contextmenu' |
23 * event. | 23 * event. |
24 * This will be overridden in chrome_web_view_experimental.js to implement | 24 * This will be overridden in chrome_web_view_experimental.js to implement |
25 * contextmenu API. | 25 * contextmenu API. |
26 */ | 26 */ |
27 WebViewEvents.prototype.handleContextMenu = function(event) { | 27 WebViewEvents.prototype.handleContextMenu = function(event) { |
28 var requestId = event.requestId; | 28 var requestId = event.requestId; |
29 // Setting |params| = undefined will show the context menu unmodified, hence | 29 // Setting |params| = undefined will show the context menu unmodified, hence |
30 // the 'contextmenu' API is disabled for stable channel. | 30 // the 'contextmenu' API is disabled for stable channel. |
31 var params = undefined; | 31 var params = undefined; |
32 ChromeWebView.showContextMenu(this.view.guest.getId(), requestId, params); | 32 ChromeWebView.showContextMenu(this.view.guest.getId(), requestId, params); |
33 }; | 33 }; |
34 | 34 |
35 // Exposes |CHROME_WEB_VIEW_EVENTS| when the ChromeWebView API is available. | 35 // Exposes |CHROME_WEB_VIEW_EVENTS| when the ChromeWebView API is available. |
36 (function() { | 36 (function() { |
37 for (var eventName in CHROME_WEB_VIEW_EVENTS) { | 37 for (var eventName in CHROME_WEB_VIEW_EVENTS) { |
38 WebViewEvents.EVENTS[eventName] = CHROME_WEB_VIEW_EVENTS[eventName]; | 38 WebViewEvents.EVENTS[eventName] = CHROME_WEB_VIEW_EVENTS[eventName]; |
39 } | 39 } |
40 })(); | 40 })(); |
OLD | NEW |