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

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

Issue 950963002: Decouple WebViewImpl from WebView attributes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed broken test 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/renderer/resources/guest_view/web_view.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/resources/guest_view/web_view_attributes.js
diff --git a/extensions/renderer/resources/guest_view/web_view_attributes.js b/extensions/renderer/resources/guest_view/web_view_attributes.js
index 1c907b12e1ebd9a61b732736513a4924c73437e7..a70e9f9a15e46e35e79720db7674d7c101434994 100644
--- a/extensions/renderer/resources/guest_view/web_view_attributes.js
+++ b/extensions/renderer/resources/guest_view/web_view_attributes.js
@@ -64,8 +64,11 @@ WebViewAttribute.prototype.maybeHandleMutation = function(oldValue, newValue) {
// Called when a change that isn't ignored occurs to the attribute's value.
WebViewAttribute.prototype.handleMutation = function(oldValue, newValue) {};
+// Called when the <webview> element is attached to the DOM tree.
+WebViewAttribute.prototype.attach = function() {};
+
// Called when the <webview> element is detached from the DOM tree.
-WebViewAttribute.prototype.reset = function() {};
+WebViewAttribute.prototype.detach = function() {};
// An attribute that is treated as a Boolean.
function BooleanAttribute(name, webViewImpl) {
@@ -140,18 +143,18 @@ AutosizeDimensionAttribute.prototype.handleMutation = function(
}
this.webViewImpl.guest.setSize({
'enableAutoSize': this.webViewImpl.attributes[
- WebViewConstants.ATTRIBUTE_AUTOSIZE].getValue(),
+ WebViewConstants.ATTRIBUTE_AUTOSIZE].getValue(),
'min': {
'width': this.webViewImpl.attributes[
- WebViewConstants.ATTRIBUTE_MINWIDTH].getValue(),
+ WebViewConstants.ATTRIBUTE_MINWIDTH].getValue(),
'height': this.webViewImpl.attributes[
- WebViewConstants.ATTRIBUTE_MINHEIGHT].getValue()
+ WebViewConstants.ATTRIBUTE_MINHEIGHT].getValue()
},
'max': {
'width': this.webViewImpl.attributes[
- WebViewConstants.ATTRIBUTE_MAXWIDTH].getValue(),
+ WebViewConstants.ATTRIBUTE_MAXWIDTH].getValue(),
'height': this.webViewImpl.attributes[
- WebViewConstants.ATTRIBUTE_MAXHEIGHT].getValue()
+ WebViewConstants.ATTRIBUTE_MAXHEIGHT].getValue()
}
});
return;
@@ -207,7 +210,7 @@ PartitionAttribute.prototype.handleMutation = function(oldValue, newValue) {
// The partition cannot change if the webview has already navigated.
if (!this.webViewImpl.attributes[
- WebViewConstants.ATTRIBUTE_SRC].beforeFirstNavigation) {
+ WebViewConstants.ATTRIBUTE_SRC].beforeFirstNavigation) {
window.console.error(WebViewConstants.ERROR_MSG_ALREADY_NAVIGATED);
this.setValueIgnoreMutation(oldValue);
return;
@@ -219,7 +222,7 @@ PartitionAttribute.prototype.handleMutation = function(oldValue, newValue) {
}
};
-PartitionAttribute.prototype.reset = function() {
+PartitionAttribute.prototype.detach = function() {
this.validPartitionId = true;
};
@@ -228,6 +231,7 @@ function SrcAttribute(webViewImpl) {
WebViewAttribute.call(this, WebViewConstants.ATTRIBUTE_SRC, webViewImpl);
this.setupMutationObserver();
this.beforeFirstNavigation = true;
+ this.elementAttached = false;
}
SrcAttribute.prototype.__proto__ = WebViewAttribute.prototype;
@@ -255,8 +259,14 @@ SrcAttribute.prototype.handleMutation = function(oldValue, newValue) {
this.parse();
};
-SrcAttribute.prototype.reset = function() {
+SrcAttribute.prototype.attach = function() {
+ this.elementAttached = true;
+ this.parse();
+};
+
+SrcAttribute.prototype.detach = function() {
this.beforeFirstNavigation = true;
+ this.elementAttached = false;
};
// The purpose of this mutation observer is to catch assignment to the src
@@ -284,9 +294,9 @@ SrcAttribute.prototype.setupMutationObserver =
};
SrcAttribute.prototype.parse = function() {
- if (!this.webViewImpl.elementAttached ||
+ if (!this.elementAttached ||
!this.webViewImpl.attributes[
- WebViewConstants.ATTRIBUTE_PARTITION].validPartitionId ||
+ WebViewConstants.ATTRIBUTE_PARTITION].validPartitionId ||
!this.getValue()) {
return;
}
« no previous file with comments | « extensions/renderer/resources/guest_view/web_view.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698