Index: extensions/renderer/resources/guest_view/web_view/web_view_iframe.js |
diff --git a/extensions/renderer/resources/guest_view/web_view/web_view_iframe.js b/extensions/renderer/resources/guest_view/web_view/web_view_iframe.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bf099d23f923bc589d1ef0f0c70fae685f74bf93 |
--- /dev/null |
+++ b/extensions/renderer/resources/guest_view/web_view/web_view_iframe.js |
@@ -0,0 +1,30 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// This module provides --site-per-process overrides for WebView (<webview>). |
+// See web_view.js for details. |
+ |
+var IdGenerator = requireNative('id_generator'); |
+var WebViewImpl = require('webView').WebViewImpl; |
+// NOTE: Do not remove these, we implicitly depend on these in |
+// --site-per-process. |
+var GuestViewIframe = require('guestViewIframe'); |
+var GuestViewIframeContainer = require('guestViewIframeContainer'); |
+ |
+WebViewImpl.prototype.attachWindow$ = function(opt_guestInstanceId) { |
+ // If |opt_guestInstanceId| was provided, then a different existing guest is |
+ // being attached to this webview, and the current one will get destroyed. |
+ if (opt_guestInstanceId) { |
+ if (this.guest.getId() == opt_guestInstanceId) { |
+ return true; |
+ } |
+ this.guest.destroy(); |
+ this.guest = new GuestView('webview', opt_guestInstanceId); |
+ } |
+ |
+ var generatedId = IdGenerator.GetNextId(); |
+ // Generate an instance id for the container. |
+ this.onInternalInstanceId(generatedId); |
+ return true; |
+}; |