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

Unified Diff: chrome/renderer/resources/extensions/web_view.js

Issue 12326168: Move <webview> API to chrome layer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge with ToT Created 7 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/resources/extensions/web_view.js
diff --git a/chrome/renderer/resources/extensions/web_view.js b/chrome/renderer/resources/extensions/web_view.js
index 43c6dc4624b2a5acb8ddedc7a314296176eab96f..f51336d79f6d0164614ad0ed5fb174a04fcb95cc 100644
--- a/chrome/renderer/resources/extensions/web_view.js
+++ b/chrome/renderer/resources/extensions/web_view.js
@@ -126,6 +126,8 @@ function WebView(node) {
enumerable: true
});
+ this.setupExecuteScript_();
+
for (var eventName in WEB_VIEW_EVENTS) {
this.setupEvent_(eventName, WEB_VIEW_EVENTS[eventName]);
}
@@ -171,6 +173,24 @@ WebView.prototype.handleObjectMutation_ = function(mutation) {
}
};
+WebView.prototype.setupExecuteScript_ = function() {
+ var node = this.node_;
+ var callbackMap = new Array();
+ var self = this;
+ node['executeScript'] = function(injectDetails, resultCallback) {
+ var result = self.objectNode_.executeScript(injectDetails);
+ callbackMap[result] = resultCallback;
+ };
+ this.objectNode_.addEventListener('-internal-scriptresponse', function(e) {
+ var detail = JSON.parse(e.detail);
+ if (callbackMap[detail.requestId]) {
+ console.log(detail.result);
+ callbackMap[detail.requestId].apply(self.node_, detail.result);
+ delete callbackMap[detail.requestId];
+ }
+ });
+};
+
/**
* @private
*/
« no previous file with comments | « chrome/renderer/chrome_content_renderer_client.cc ('k') | chrome/test/data/extensions/platform_apps/web_view/main.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698