Chromium Code Reviews| Index: chrome/renderer/resources/extensions/chrome_web_view_experimental.js |
| diff --git a/chrome/renderer/resources/extensions/chrome_web_view_experimental.js b/chrome/renderer/resources/extensions/chrome_web_view_experimental.js |
| index f3db4bb6949b98550b80df981ce51c94acacbf7e..5cc694da8051ae4e940fa22618dfefbe7536ef61 100644 |
| --- a/chrome/renderer/resources/extensions/chrome_web_view_experimental.js |
| +++ b/chrome/renderer/resources/extensions/chrome_web_view_experimental.js |
| @@ -19,6 +19,9 @@ var idGeneratorNatives = requireNative('id_generator'); |
| var MessagingNatives = requireNative('messaging_natives'); |
| var utils = require('utils'); |
| var WebViewImpl = require('webView').WebViewImpl; |
| +var WebRequestEvent = require('webRequestInternal').WebRequestEvent; |
| +var DeclarativeContentSchema = |
| + requireNative('schema_registry').GetSchema('declarativeContent'); |
| function GetUniqueSubEventName(eventName) { |
| return eventName + '/' + idGeneratorNatives.GetNextId(); |
| @@ -175,3 +178,37 @@ WebViewImpl.prototype.setupExperimentalContextMenus = function() { |
| enumerable: true |
| }); |
| }; |
| + |
| +WebViewImpl.prototype.maybeSetupExperimentalChromeWebViewEvents = function( |
| + request) { |
| + var createDeclarativeContentEvent = function(declarativeContentEvent) { |
| + return function() { |
| + if (!this[declarativeContentEvent.name]) { |
| + this[declarativeContentEvent.name] = |
| + new WebRequestEvent( |
|
Fady Samuel
2014/12/09 22:09:47
Use EventBindings.Event instead: https://code.goog
Xi Han
2014/12/10 14:57:12
Updated.
|
| + 'webViewInternal.declarativeContent.' + |
| + declarativeContentEvent.name, |
| + declarativeContentEvent.parameters, |
| + declarativeContentEvent.extraParameters, |
| + declarativeContentEvent.options, |
| + this.viewInstanceId); |
| + } |
| + return this[declarativeContentEvent.name]; |
| + }.bind(this); |
| + }.bind(this); |
| + |
| + for (var i = 0; i < DeclarativeContentSchema.events.length; ++i) { |
| + var eventSchema = DeclarativeContentSchema.events[i]; |
| + var declarativeContentEvent = createDeclarativeContentEvent(eventSchema); |
| + Object.defineProperty( |
| + request, |
| + eventSchema.name, |
| + { |
| + get: declarativeContentEvent, |
| + enumerable: true |
| + } |
| + ); |
| + } |
| + return request; |
| +}; |
| + |