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; |
+}; |
+ |