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

Side by Side Diff: extensions/renderer/resources/web_view_events.js

Issue 564913003: Moving web_view.js to extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
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 // Event management for WebViewInternal. 5 // Event management for WebViewInternal.
6 6
7 var DeclarativeWebRequestSchema = 7 var DeclarativeWebRequestSchema =
8 requireNative('schema_registry').GetSchema('declarativeWebRequest'); 8 requireNative('schema_registry').GetSchema('declarativeWebRequest');
9 var EventBindings = require('event_bindings'); 9 var EventBindings = require('event_bindings');
10 var IdGenerator = requireNative('id_generator'); 10 var IdGenerator = requireNative('id_generator');
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 fields: [] 43 fields: []
44 }, 44 },
45 'consolemessage': { 45 'consolemessage': {
46 evt: CreateEvent('webViewInternal.onConsoleMessage'), 46 evt: CreateEvent('webViewInternal.onConsoleMessage'),
47 fields: ['level', 'message', 'line', 'sourceId'] 47 fields: ['level', 'message', 'line', 'sourceId']
48 }, 48 },
49 'contentload': { 49 'contentload': {
50 evt: CreateEvent('webViewInternal.onContentLoad'), 50 evt: CreateEvent('webViewInternal.onContentLoad'),
51 fields: [] 51 fields: []
52 }, 52 },
53 'contextmenu': {
54 evt: CreateEvent('chromeWebViewInternal.contextmenu'),
55 cancelable: true,
56 customHandler: function(handler, event, webViewEvent) {
57 handler.handleContextMenu(event, webViewEvent);
58 },
59 fields: ['items']
60 },
61 'dialog': { 53 'dialog': {
62 cancelable: true, 54 cancelable: true,
63 customHandler: function(handler, event, webViewEvent) { 55 customHandler: function(handler, event, webViewEvent) {
64 handler.handleDialogEvent(event, webViewEvent); 56 handler.handleDialogEvent(event, webViewEvent);
65 }, 57 },
66 evt: CreateEvent('webViewInternal.onDialog'), 58 evt: CreateEvent('webViewInternal.onDialog'),
67 fields: ['defaultPromptText', 'messageText', 'messageType', 'url'] 59 fields: ['defaultPromptText', 'messageText', 'messageType', 'url']
68 }, 60 },
69 'exit': { 61 'exit': {
70 evt: CreateEvent('webViewInternal.onExit'), 62 evt: CreateEvent('webViewInternal.onExit'),
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 } 268 }
277 269
278 this.webViewInternal.setRequestPropertyOnWebViewNode(request); 270 this.webViewInternal.setRequestPropertyOnWebViewNode(request);
279 }; 271 };
280 272
281 WebViewEvents.prototype.getEvents = function() { 273 WebViewEvents.prototype.getEvents = function() {
282 var experimentalEvents = this.webViewInternal.maybeGetExperimentalEvents(); 274 var experimentalEvents = this.webViewInternal.maybeGetExperimentalEvents();
283 for (var eventName in experimentalEvents) { 275 for (var eventName in experimentalEvents) {
284 WEB_VIEW_EVENTS[eventName] = experimentalEvents[eventName]; 276 WEB_VIEW_EVENTS[eventName] = experimentalEvents[eventName];
285 } 277 }
278 var chromeEvents = this.webViewInternal.maybeGetChromeWebViewEvents();
279 for (var eventName in chromeEvents) {
280 WEB_VIEW_EVENTS[eventName] = chromeEvents[eventName];
281 }
286 return WEB_VIEW_EVENTS; 282 return WEB_VIEW_EVENTS;
287 }; 283 };
288 284
289 WebViewEvents.prototype.setupEvent = function(name, info) { 285 WebViewEvents.prototype.setupEvent = function(name, info) {
290 info.evt.addListener(function(e) { 286 info.evt.addListener(function(e) {
291 var details = {bubbles:true}; 287 var details = {bubbles:true};
292 if (info.cancelable) { 288 if (info.cancelable) {
293 details.cancelable = true; 289 details.cancelable = true;
294 } 290 }
295 var webViewEvent = new Event(name, details); 291 var webViewEvent = new Event(name, details);
296 $Array.forEach(info.fields, function(field) { 292 $Array.forEach(info.fields, function(field) {
297 if (e[field] !== undefined) { 293 if (e[field] !== undefined) {
298 webViewEvent[field] = e[field]; 294 webViewEvent[field] = e[field];
299 } 295 }
300 }.bind(this)); 296 }.bind(this));
301 if (info.customHandler) { 297 if (info.customHandler) {
302 info.customHandler(this, e, webViewEvent); 298 info.customHandler(this, e, webViewEvent);
303 return; 299 return;
304 } 300 }
305 this.webViewInternal.dispatchEvent(webViewEvent); 301 this.webViewInternal.dispatchEvent(webViewEvent);
306 }.bind(this), {instanceId: this.viewInstanceId}); 302 }.bind(this), {instanceId: this.viewInstanceId});
307 303
308 this.webViewInternal.setupEventProperty(name); 304 this.webViewInternal.setupEventProperty(name);
309 }; 305 };
310 306
311 307
312 // Event handlers.
313 WebViewEvents.prototype.handleContextMenu = function(e, webViewEvent) {
314 this.webViewInternal.maybeHandleContextMenu(e, webViewEvent);
315 };
316
317 WebViewEvents.prototype.handleDialogEvent = function(event, webViewEvent) { 308 WebViewEvents.prototype.handleDialogEvent = function(event, webViewEvent) {
318 var showWarningMessage = function(dialogType) { 309 var showWarningMessage = function(dialogType) {
319 var VOWELS = ['a', 'e', 'i', 'o', 'u']; 310 var VOWELS = ['a', 'e', 'i', 'o', 'u'];
320 var WARNING_MSG_DIALOG_BLOCKED = '<webview>: %1 %2 dialog was blocked.'; 311 var WARNING_MSG_DIALOG_BLOCKED = '<webview>: %1 %2 dialog was blocked.';
321 var article = (VOWELS.indexOf(dialogType.charAt(0)) >= 0) ? 'An' : 'A'; 312 var article = (VOWELS.indexOf(dialogType.charAt(0)) >= 0) ? 'An' : 'A';
322 var output = WARNING_MSG_DIALOG_BLOCKED.replace('%1', article); 313 var output = WARNING_MSG_DIALOG_BLOCKED.replace('%1', article);
323 output = output.replace('%2', dialogType); 314 output = output.replace('%2', dialogType);
324 window.console.warn(output); 315 window.console.warn(output);
325 }; 316 };
326 317
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 } 612 }
622 }; 613 };
623 614
624 WebViewEvents.prototype.handleSizeChangedEvent = function( 615 WebViewEvents.prototype.handleSizeChangedEvent = function(
625 event, webViewEvent) { 616 event, webViewEvent) {
626 this.webViewInternal.onSizeChanged(webViewEvent); 617 this.webViewInternal.onSizeChanged(webViewEvent);
627 }; 618 };
628 619
629 exports.WebViewEvents = WebViewEvents; 620 exports.WebViewEvents = WebViewEvents;
630 exports.CreateEvent = CreateEvent; 621 exports.CreateEvent = CreateEvent;
OLDNEW
« no previous file with comments | « extensions/renderer/resources/web_view_deny.js ('k') | extensions/renderer/resources/web_view_experimental.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698