| 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; | |
| 206 FrameNameChangedEvent.addListener(function(e) { | 207 FrameNameChangedEvent.addListener(function(e) { |
| 207 self.webViewInternal.onFrameNameChanged(e.name); | 208 this.webViewInternal.onFrameNameChanged(e.name); |
| 208 }, {instanceId: self.viewInstanceId}); | 209 }.bind(this), {instanceId: this.viewInstanceId}); |
| 210 }; |
| 211 |
| 212 WebViewEvents.prototype.setupPluginDestroyedEvent = function() { |
| 213 PluginDestroyedEvent.addListener(function(e) { |
| 214 this.webViewInternal.onPluginDestroyed(); |
| 215 }.bind(this), {instanceId: this.viewInstanceId}); |
| 209 }; | 216 }; |
| 210 | 217 |
| 211 WebViewEvents.prototype.setupWebRequestEvents = function() { | 218 WebViewEvents.prototype.setupWebRequestEvents = function() { |
| 212 var self = this; | 219 var self = this; |
| 213 var request = {}; | 220 var request = {}; |
| 214 var createWebRequestEvent = function(webRequestEvent) { | 221 var createWebRequestEvent = function(webRequestEvent) { |
| 215 return function() { | 222 return function() { |
| 216 if (!self[webRequestEvent.name]) { | 223 if (!self[webRequestEvent.name]) { |
| 217 self[webRequestEvent.name] = | 224 self[webRequestEvent.name] = |
| 218 new WebRequestEvent( | 225 new WebRequestEvent( |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 } | 604 } |
| 598 }; | 605 }; |
| 599 | 606 |
| 600 WebViewEvents.prototype.handleSizeChangedEvent = function( | 607 WebViewEvents.prototype.handleSizeChangedEvent = function( |
| 601 event, webViewEvent) { | 608 event, webViewEvent) { |
| 602 this.webViewInternal.onSizeChanged(webViewEvent); | 609 this.webViewInternal.onSizeChanged(webViewEvent); |
| 603 }; | 610 }; |
| 604 | 611 |
| 605 exports.WebViewEvents = WebViewEvents; | 612 exports.WebViewEvents = WebViewEvents; |
| 606 exports.CreateEvent = CreateEvent; | 613 exports.CreateEvent = CreateEvent; |
| OLD | NEW |