| 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 // 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'); |
| 11 var MessagingNatives = requireNative('messaging_natives'); | 11 var MessagingNatives = requireNative('messaging_natives'); |
| 12 var WebRequestEvent = require('webRequestInternal').WebRequestEvent; | 12 var WebRequestEvent = require('webRequestInternal').WebRequestEvent; |
| 13 var WebRequestSchema = | 13 var WebRequestSchema = |
| 14 requireNative('schema_registry').GetSchema('webRequest'); | 14 requireNative('schema_registry').GetSchema('webRequest'); |
| 15 var WebView = require('webViewInternal').WebView; | 15 var WebView = require('webViewInternal').WebView; |
| 16 | 16 |
| 17 var CreateEvent = function(name) { | 17 var CreateEvent = function(name) { |
| 18 var eventOpts = {supportsListeners: true, supportsFilters: true}; | 18 var eventOpts = {supportsListeners: true, supportsFilters: true}; |
| 19 return new EventBindings.Event(name, undefined, eventOpts); | 19 return new EventBindings.Event(name, undefined, eventOpts); |
| 20 }; | 20 }; |
| 21 | 21 |
| 22 var FrameNameChangedEvent = CreateEvent('webViewInternal.onFrameNameChanged'); | 22 var FrameNameChangedEvent = CreateEvent('webViewInternal.onFrameNameChanged'); |
| 23 var PluginDestroyedEvent = CreateEvent('webViewInternal.onPluginDestroyed'); |
| 23 var WebRequestMessageEvent = CreateEvent('webViewInternal.onMessage'); | 24 var WebRequestMessageEvent = CreateEvent('webViewInternal.onMessage'); |
| 24 | 25 |
| 25 // WEB_VIEW_EVENTS is a map of stable <webview> DOM event names to their | 26 // WEB_VIEW_EVENTS is a map of stable <webview> DOM event names to their |
| 26 // associated extension event descriptor objects. | 27 // associated extension event descriptor objects. |
| 27 // An event listener will be attached to the extension event |evt| specified in | 28 // An event listener will be attached to the extension event |evt| specified in |
| 28 // the descriptor. | 29 // the descriptor. |
| 29 // |fields| specifies the public-facing fields in the DOM event that are | 30 // |fields| specifies the public-facing fields in the DOM event that are |
| 30 // accessible to <webview> developers. | 31 // accessible to <webview> developers. |
| 31 // |customHandler| allows a handler function to be called each time an extension | 32 // |customHandler| allows a handler function to be called each time an extension |
| 32 // event is caught by its event listener. The DOM event should be dispatched | 33 // event is caught by its event listener. The DOM event should be dispatched |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 // Constructor. | 186 // Constructor. |
| 186 function WebViewEvents(webViewInternal, viewInstanceId) { | 187 function WebViewEvents(webViewInternal, viewInstanceId) { |
| 187 this.webViewInternal = webViewInternal; | 188 this.webViewInternal = webViewInternal; |
| 188 this.viewInstanceId = viewInstanceId; | 189 this.viewInstanceId = viewInstanceId; |
| 189 this.setup(); | 190 this.setup(); |
| 190 } | 191 } |
| 191 | 192 |
| 192 // Sets up events. | 193 // Sets up events. |
| 193 WebViewEvents.prototype.setup = function() { | 194 WebViewEvents.prototype.setup = function() { |
| 194 this.setupFrameNameChangedEvent(); | 195 this.setupFrameNameChangedEvent(); |
| 196 this.setupPluginDestroyedEvent(); |
| 195 this.setupWebRequestEvents(); | 197 this.setupWebRequestEvents(); |
| 196 this.webViewInternal.setupExperimentalContextMenus(); | 198 this.webViewInternal.setupExperimentalContextMenus(); |
| 197 | 199 |
| 198 var events = this.getEvents(); | 200 var events = this.getEvents(); |
| 199 for (var eventName in events) { | 201 for (var eventName in events) { |
| 200 this.setupEvent(eventName, events[eventName]); | 202 this.setupEvent(eventName, events[eventName]); |
| 201 } | 203 } |
| 202 }; | 204 }; |
| 203 | 205 |
| 204 WebViewEvents.prototype.setupFrameNameChangedEvent = function() { | 206 WebViewEvents.prototype.setupFrameNameChangedEvent = function() { |
| 205 var self = this; | 207 var self = this; |
| 206 FrameNameChangedEvent.addListener(function(e) { | 208 FrameNameChangedEvent.addListener(function(e) { |
| 207 self.webViewInternal.onFrameNameChanged(e.name); | 209 self.webViewInternal.onFrameNameChanged(e.name); |
| 208 }, {instanceId: self.viewInstanceId}); | 210 }, {instanceId: self.viewInstanceId}); |
| 209 }; | 211 }; |
| 210 | 212 |
| 213 WebViewEvents.prototype.setupPluginDestroyedEvent = function() { |
| 214 var self = this; |
| 215 PluginDestroyedEvent.addListener(function(e) { |
| 216 self.webViewInternal.onPluginDestroyed(); |
| 217 }, {instanceId: self.viewInstanceId}); |
| 218 }; |
| 219 |
| 211 WebViewEvents.prototype.setupWebRequestEvents = function() { | 220 WebViewEvents.prototype.setupWebRequestEvents = function() { |
| 212 var self = this; | 221 var self = this; |
| 213 var request = {}; | 222 var request = {}; |
| 214 var createWebRequestEvent = function(webRequestEvent) { | 223 var createWebRequestEvent = function(webRequestEvent) { |
| 215 return function() { | 224 return function() { |
| 216 if (!self[webRequestEvent.name]) { | 225 if (!self[webRequestEvent.name]) { |
| 217 self[webRequestEvent.name] = | 226 self[webRequestEvent.name] = |
| 218 new WebRequestEvent( | 227 new WebRequestEvent( |
| 219 'webViewInternal.' + webRequestEvent.name, | 228 'webViewInternal.' + webRequestEvent.name, |
| 220 webRequestEvent.parameters, | 229 webRequestEvent.parameters, |
| (...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 } | 606 } |
| 598 }; | 607 }; |
| 599 | 608 |
| 600 WebViewEvents.prototype.handleSizeChangedEvent = function( | 609 WebViewEvents.prototype.handleSizeChangedEvent = function( |
| 601 event, webViewEvent) { | 610 event, webViewEvent) { |
| 602 this.webViewInternal.onSizeChanged(webViewEvent); | 611 this.webViewInternal.onSizeChanged(webViewEvent); |
| 603 }; | 612 }; |
| 604 | 613 |
| 605 exports.WebViewEvents = WebViewEvents; | 614 exports.WebViewEvents = WebViewEvents; |
| 606 exports.CreateEvent = CreateEvent; | 615 exports.CreateEvent = CreateEvent; |
| OLD | NEW |