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

Unified Diff: pkg/shadow_dom/lib/shadow_dom.debug.js

Issue 24251016: Revert "Dart2js support for custom element lifecycle events" (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 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 | « pkg/custom_element/lib/custom-elements.min.js ('k') | pkg/shadow_dom/lib/shadow_dom.min.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/shadow_dom/lib/shadow_dom.debug.js
diff --git a/pkg/shadow_dom/lib/shadow_dom.debug.js b/pkg/shadow_dom/lib/shadow_dom.debug.js
index fa2fe63f76a60085a54b3b96d6c7e7424eb83eec..b889a5ef7641e88b18def663b474fd422bcafc32 100644
--- a/pkg/shadow_dom/lib/shadow_dom.debug.js
+++ b/pkg/shadow_dom/lib/shadow_dom.debug.js
@@ -1,4 +1,5 @@
-if ((!HTMLElement.prototype.createShadowRoot) ||
+if ((!HTMLElement.prototype.createShadowRoot &&
+ !HTMLElement.prototype.webkitCreateShadowRoot) ||
window.__forceShadowDomPolyfill) {
/*
@@ -724,10 +725,6 @@ if ((!HTMLElement.prototype.createShadowRoot) ||
this.observed = [];
this.values = [];
- this.value = undefined;
- this.oldValue = undefined;
- this.oldValues = undefined;
- this.changeFlags = undefined;
this.started = false;
}
@@ -763,18 +760,6 @@ if ((!HTMLElement.prototype.createShadowRoot) ||
var value = path.getValueFrom(object, this.observedSet);
var oldValue = this.values[i/2];
if (!areSameValue(value, oldValue)) {
- if (!anyChanged && !this.valueFn) {
- this.oldValues = this.oldValues || [];
- this.changeFlags = this.changeFlags || [];
- for (var j = 0; j < this.values.length; j++) {
- this.oldValues[j] = this.values[j];
- this.changeFlags[j] = false;
- }
- }
-
- if (!this.valueFn)
- this.changeFlags[i/2] = true;
-
this.values[i/2] = value;
anyChanged = true;
}
@@ -790,29 +775,22 @@ if ((!HTMLElement.prototype.createShadowRoot) ||
if (!this.getValues())
return;
- if (this.valueFn) {
- this.value = this.valueFn(this.values);
-
- if (areSameValue(this.value, this.oldValue))
- return false;
+ this.value = this.valueFn(this.values);
- this.reportArgs = [this.value, this.oldValue];
- } else {
- this.reportArgs = [this.values, this.oldValues, this.changeFlags];
- }
+ if (areSameValue(this.value, this.oldValue))
+ return false;
+ this.reportArgs = [this.value, this.oldValue];
return true;
},
sync: function(hard) {
if (hard) {
this.getValues();
- if (this.valueFn)
- this.value = this.valueFn(this.values);
+ this.value = this.valueFn(this.values);
}
- if (this.valueFn)
- this.oldValue = this.value;
+ this.oldValue = this.value;
},
close: function() {
@@ -2916,11 +2894,7 @@ var ShadowDOMPolyfill = {};
* the renderer as needed.
* @private
*/
- nodeWasAdded_: function() {
- for (var child = this.firstChild; child; child = child.nextSibling) {
- child.nodeWasAdded_();
- }
- },
+ nodeWasAdded_: function() {},
hasChildNodes: function() {
return this.firstChild === null;
@@ -3243,8 +3217,10 @@ var ShadowDOMPolyfill = {};
var registerWrapper = scope.registerWrapper;
var wrappers = scope.wrappers;
+ var shadowRootTable = new WeakMap();
var OriginalElement = window.Element;
+
var matchesName = oneOf(OriginalElement.prototype, [
'matches',
'mozMatchesSelector',
@@ -3272,7 +3248,7 @@ var ShadowDOMPolyfill = {};
mixin(Element.prototype, {
createShadowRoot: function() {
var newShadowRoot = new wrappers.ShadowRoot(this);
- this.impl.polymerShadowRoot_ = newShadowRoot;
+ shadowRootTable.set(this, newShadowRoot);
var renderer = scope.getRendererForHost(this);
renderer.invalidate();
@@ -3281,7 +3257,7 @@ var ShadowDOMPolyfill = {};
},
get shadowRoot() {
- return this.impl.polymerShadowRoot_ || null;
+ return shadowRootTable.get(this) || null;
},
setAttribute: function(name, value) {
@@ -3896,6 +3872,7 @@ var ShadowDOMPolyfill = {};
var eventParentsTable = new WeakMap();
var insertionParentTable = new WeakMap();
var rendererForHostTable = new WeakMap();
+ var shadowDOMRendererTable = new WeakMap();
function distributeChildToInsertionPoint(child, insertionPoint) {
getDistributedChildNodes(insertionPoint).push(child);
@@ -4348,7 +4325,7 @@ var ShadowDOMPolyfill = {};
},
associateNode: function(node) {
- node.impl.polymerShadowRenderer_ = this;
+ shadowDOMRendererTable.set(node, this);
}
};
@@ -4407,7 +4384,7 @@ var ShadowDOMPolyfill = {};
* This gets called when a node was added or removed to it.
*/
Node.prototype.invalidateShadowRenderer = function(force) {
- var renderer = this.impl.polymerShadowRenderer_;
+ var renderer = shadowDOMRendererTable.get(this);
if (renderer) {
renderer.invalidate();
return true;
@@ -4417,9 +4394,9 @@ var ShadowDOMPolyfill = {};
};
HTMLContentElement.prototype.getDistributedNodes = function() {
- // TODO(arv): We should only rerender the dirty ancestor renderers (from
- // the root and down).
- renderAllPending();
+ var renderer = shadowDOMRendererTable.get(this);
+ if (renderer)
+ renderer.render();
return getDistributedChildNodes(this);
};
@@ -4432,7 +4409,7 @@ var ShadowDOMPolyfill = {};
var renderer;
if (shadowRoot)
renderer = getRendererForShadowRoot(shadowRoot);
- this.impl.polymerShadowRenderer_ = renderer;
+ shadowDOMRendererTable.set(this, renderer);
if (renderer)
renderer.invalidate();
};
@@ -5158,10 +5135,8 @@ var ShadowDOMPolyfill = {};
// TODO(jmesserly): do we still need these?
if (obj instanceof NodeList) return 'NodeList';
if (obj instanceof ShadowRoot) return 'ShadowRoot';
- if (window.MutationRecord && (obj instanceof MutationRecord))
- return 'MutationRecord';
- if (window.MutationObserver && (obj instanceof MutationObserver))
- return 'MutationObserver';
+ if (obj instanceof MutationRecord) return 'MutationRecord';
+ if (obj instanceof MutationObserver) return 'MutationObserver';
var unwrapped = unwrapIfNeeded(obj);
if (obj !== unwrapped) {
« no previous file with comments | « pkg/custom_element/lib/custom-elements.min.js ('k') | pkg/shadow_dom/lib/shadow_dom.min.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698