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

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

Issue 972313002: Make <webview> use out-of-process iframe architecture. (Closed) Base URL: ssh://saopaulo.wat/mnt/dev/shared/src@testoopif2z-better-chrome
Patch Set: some review comments addressed Created 5 years, 9 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: extensions/renderer/resources/guest_view/web_view/web_view.js
diff --git a/extensions/renderer/resources/guest_view/web_view/web_view.js b/extensions/renderer/resources/guest_view/web_view/web_view.js
index d1d367769a13f69ace45ac0717029eaa91edad3b..57dab2b4e9b697380e1e2b97ad261ab2bd31e51a 100644
--- a/extensions/renderer/resources/guest_view/web_view/web_view.js
+++ b/extensions/renderer/resources/guest_view/web_view/web_view.js
@@ -14,6 +14,11 @@ var WebViewConstants = require('webViewConstants').WebViewConstants;
var WebViewEvents = require('webViewEvents').WebViewEvents;
var WebViewInternal = require('webViewInternal').WebViewInternal;
+var IdGenerator = requireNative('id_generator');
+var GuestViewInternalNatives = requireNative('guest_view_internal');
+
+var LOG = function(msg) { window.console.log(msg); };
+
// Represents the internal state of <webview>.
function WebViewImpl(webviewElement) {
GuestViewContainer.call(this, webviewElement, 'webview');
@@ -59,6 +64,7 @@ WebViewImpl.prototype.onElementAttached = function() {
for (var i in this.attributes) {
this.attributes[i].dirty = true;
}
+ // FIXME: Not sure about this one.
for (var i in this.attributes) {
this.attributes[i].attach();
}
@@ -192,6 +198,37 @@ WebViewImpl.prototype.attachWindow = function(opt_guestInstanceId) {
this.guest = new GuestView('webview', opt_guestInstanceId);
}
+ /*
+ if (!this.internalInstanceId) {
+ return true;
+ }
+ */
+
+ LOG('Guest will start attach');
+ var generatedId = IdGenerator.GetNextId();
+ this.internalInstanceId = generatedId;
+
+ LOG('this.guest.getId() = ' + this.guest.getId());
+ window.console.log(this.getBrowserPluginElement());
+ var ret = GuestViewInternalNatives.AttachIframeGuest(
+ this.internalInstanceId, this.guest.getId(),
+ this.getBrowserPluginElement(), function(contentWindow) {
+ LOG(contentWindow);
+ this.guest.setContentWindow(contentWindow);
+ }.bind(this));
+
+ LOG('guestViewInternalNatives.AttachIframeGuest status: ' + ret);
+
+ window.setTimeout(function() {
+ LOG('<webview>: navigate');
+ var src =
+ this.attributes[WebViewConstants.ATTRIBUTE_SRC].getValue();
+ WebViewInternal.navigate(
+ this.guest.getId(), src);
+ }.bind(this), 0);
+
+ return true;
+ // Note: Following stuff IGNORED.
return GuestViewContainer.prototype.attachWindow.call(this);
};

Powered by Google App Engine
This is Rietveld 408576698