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

Side by Side Diff: extensions/renderer/resources/guest_view/web_view.js

Issue 926083002: Decouple web_view.js from attribute internals (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ignore_mutation
Patch Set: Rebased Created 5 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 unified diff | Download patch
« no previous file with comments | « no previous file | extensions/renderer/resources/guest_view/web_view_attributes.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This module implements WebView (<webview>) as a custom element that wraps a 5 // This module implements WebView (<webview>) as a custom element that wraps a
6 // BrowserPlugin object element. The object element is hidden within 6 // BrowserPlugin object element. The object element is hidden within
7 // the shadow DOM of the WebView element. 7 // the shadow DOM of the WebView element.
8 8
9 var DocumentNatives = requireNative('document_natives'); 9 var DocumentNatives = requireNative('document_natives');
10 var GuestView = require('guestView').GuestView; 10 var GuestView = require('guestView').GuestView;
11 var GuestViewContainer = require('guestViewContainer').GuestViewContainer; 11 var GuestViewContainer = require('guestViewContainer').GuestViewContainer;
12 var WebViewConstants = require('webViewConstants').WebViewConstants; 12 var WebViewConstants = require('webViewConstants').WebViewConstants;
13 var WebViewEvents = require('webViewEvents').WebViewEvents; 13 var WebViewEvents = require('webViewEvents').WebViewEvents;
14 var WebViewInternal = require('webViewInternal').WebViewInternal; 14 var WebViewInternal = require('webViewInternal').WebViewInternal;
15 15
16 // Represents the internal state of <webview>. 16 // Represents the internal state of <webview>.
17 function WebViewImpl(webviewElement) { 17 function WebViewImpl(webviewElement) {
18 GuestViewContainer.call(this, webviewElement, 'webview'); 18 GuestViewContainer.call(this, webviewElement, 'webview');
19 19
20 this.beforeFirstNavigation = true;
21
22 this.setupWebViewAttributes(); 20 this.setupWebViewAttributes();
23 this.setupElementProperties(); 21 this.setupElementProperties();
24 22
25 // on* Event handlers. 23 // on* Event handlers.
26 this.on = {}; 24 this.on = {};
27 new WebViewEvents(this, this.viewInstanceId); 25 new WebViewEvents(this, this.viewInstanceId);
28 } 26 }
29 27
30 WebViewImpl.prototype.__proto__ = GuestViewContainer.prototype; 28 WebViewImpl.prototype.__proto__ = GuestViewContainer.prototype;
31 29
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 }; 62 };
65 63
66 // Initiates navigation once the <webview> element is attached to the DOM. 64 // Initiates navigation once the <webview> element is attached to the DOM.
67 WebViewImpl.prototype.onElementAttached = function() { 65 WebViewImpl.prototype.onElementAttached = function() {
68 this.attributes[WebViewConstants.ATTRIBUTE_SRC].parse(); 66 this.attributes[WebViewConstants.ATTRIBUTE_SRC].parse();
69 }; 67 };
70 68
71 // Resets some state upon detaching <webview> element from the DOM. 69 // Resets some state upon detaching <webview> element from the DOM.
72 WebViewImpl.prototype.onElementDetached = function() { 70 WebViewImpl.prototype.onElementDetached = function() {
73 this.guest.destroy(); 71 this.guest.destroy();
74 this.beforeFirstNavigation = true; 72 for (var i in this.attributes) {
75 this.attributes[WebViewConstants.ATTRIBUTE_PARTITION].validPartitionId = 73 this.attributes[i].reset();
76 true; 74 }
77 }; 75 };
78 76
79 // Sets the <webview>.request property. 77 // Sets the <webview>.request property.
80 WebViewImpl.prototype.setRequestPropertyOnWebViewElement = function(request) { 78 WebViewImpl.prototype.setRequestPropertyOnWebViewElement = function(request) {
81 Object.defineProperty( 79 Object.defineProperty(
82 this.element, 80 this.element,
83 'request', 81 'request',
84 { 82 {
85 value: request, 83 value: request,
86 enumerable: true 84 enumerable: true
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 WebViewImpl.prototype.setupExperimentalContextMenus = function() {}; 259 WebViewImpl.prototype.setupExperimentalContextMenus = function() {};
262 WebViewImpl.prototype.maybeSetupExperimentalChromeWebViewEvents = 260 WebViewImpl.prototype.maybeSetupExperimentalChromeWebViewEvents =
263 function(request) { 261 function(request) {
264 return request; 262 return request;
265 }; 263 };
266 264
267 GuestViewContainer.registerElement(WebViewImpl); 265 GuestViewContainer.registerElement(WebViewImpl);
268 266
269 // Exports. 267 // Exports.
270 exports.WebViewImpl = WebViewImpl; 268 exports.WebViewImpl = WebViewImpl;
OLDNEW
« no previous file with comments | « no previous file | extensions/renderer/resources/guest_view/web_view_attributes.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698