Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(556)

Side by Side Diff: chrome/renderer/resources/extensions/chrome_web_view.js

Issue 989173005: Fixed the <webview> context menu bug. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/renderer/resources/extensions/chrome_web_view_experimental.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 var WebViewImpl = require('webView').WebViewImpl;
12 11
13 var CHROME_WEB_VIEW_EVENTS = { 12 var CHROME_WEB_VIEW_EVENTS = {
14 'contextmenu': { 13 'contextmenu': {
15 evt: CreateEvent('chromeWebViewInternal.contextmenu'), 14 evt: CreateEvent('chromeWebViewInternal.contextmenu'),
16 cancelable: true, 15 cancelable: true,
17 customHandler: function(handler, event, webViewEvent) { 16 fields: ['items'],
18 handler.webViewImpl.maybeHandleContextMenu(event, webViewEvent); 17 handler: 'handleContextMenu'
19 },
20 fields: ['items']
21 } 18 }
22 }; 19 };
23 20
24 /** 21 /**
25 * Calls to show contextmenu right away instead of dispatching a 'contextmenu' 22 * Calls to show contextmenu right away instead of dispatching a 'contextmenu'
26 * event. 23 * event.
27 * 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
28 * contextmenu API. 25 * contextmenu API.
29 */ 26 */
30 WebViewImpl.prototype.maybeHandleContextMenu = function(e, webViewEvent) { 27 WebViewEvents.prototype.handleContextMenu = function(event) {
31 var requestId = e.requestId; 28 var requestId = event.requestId;
32 // Setting |params| = undefined will show the context menu unmodified, hence 29 // Setting |params| = undefined will show the context menu unmodified, hence
33 // the 'contextmenu' API is disabled for stable channel. 30 // the 'contextmenu' API is disabled for stable channel.
34 var params = undefined; 31 var params = undefined;
35 ChromeWebView.showContextMenu(this.guest.getId(), requestId, params); 32 ChromeWebView.showContextMenu(this.view.guest.getId(), requestId, params);
36 }; 33 };
37 34
38 // Exposes |CHROME_WEB_VIEW_EVENTS| when the ChromeWebView API is available. 35 // Exposes |CHROME_WEB_VIEW_EVENTS| when the ChromeWebView API is available.
39 (function() { 36 (function() {
40 for (var eventName in CHROME_WEB_VIEW_EVENTS) { 37 for (var eventName in CHROME_WEB_VIEW_EVENTS) {
41 WebViewEvents.EVENTS[eventName] = CHROME_WEB_VIEW_EVENTS[eventName]; 38 WebViewEvents.EVENTS[eventName] = CHROME_WEB_VIEW_EVENTS[eventName];
42 } 39 }
43 })(); 40 })();
OLDNEW
« no previous file with comments | « no previous file | chrome/renderer/resources/extensions/chrome_web_view_experimental.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698