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

Unified Diff: third_party/polymer/components-chromium/core-overlay/core-overlay-layer-extracted.js

Issue 592593002: Inline scripts were extracted from Polymer elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: s/echo ""/echo/ Created 6 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
Index: third_party/polymer/components-chromium/core-overlay/core-overlay-layer-extracted.js
diff --git a/third_party/polymer/components-chromium/core-overlay/core-overlay-layer-extracted.js b/third_party/polymer/components-chromium/core-overlay/core-overlay-layer-extracted.js
new file mode 100644
index 0000000000000000000000000000000000000000..3f98964025494f12347b1eec06622269b5ee555f
--- /dev/null
+++ b/third_party/polymer/components-chromium/core-overlay/core-overlay-layer-extracted.js
@@ -0,0 +1,84 @@
+
+(function() {
+
+ Polymer('core-overlay-layer', {
+ publish: {
+ opened: false
+ },
+ openedChanged: function() {
+ this.classList.toggle('core-opened', this.opened);
+ },
+ /**
+ * Adds an element to the overlay layer
+ */
+ addElement: function(element) {
+ if (!this.parentNode) {
+ document.querySelector('body').appendChild(this);
+ }
+ if (element.parentNode !== this) {
+ element.__contents = [];
+ var ip$ = element.querySelectorAll('content');
+ for (var i=0, l=ip$.length, n; (i<l) && (n = ip$[i]); i++) {
+ this.moveInsertedElements(n);
+ this.cacheDomLocation(n);
+ n.parentNode.removeChild(n);
+ element.__contents.push(n);
+ }
+ this.cacheDomLocation(element);
+ this.updateEventController(element);
+ var h = this.makeHost();
+ h.shadowRoot.appendChild(element);
+ element.__host = h;
+ }
+ },
+ makeHost: function() {
+ var h = document.createElement('overlay-host');
+ h.createShadowRoot();
+ this.appendChild(h);
+ return h;
+ },
+ moveInsertedElements: function(insertionPoint) {
+ var n$ = insertionPoint.getDistributedNodes();
+ var parent = insertionPoint.parentNode;
+ insertionPoint.__contents = [];
+ for (var i=0, l=n$.length, n; (i<l) && (n=n$[i]); i++) {
+ this.cacheDomLocation(n);
+ this.updateEventController(n);
+ insertionPoint.__contents.push(n);
+ parent.appendChild(n);
+ }
+ },
+ updateEventController: function(element) {
+ element.eventController = this.element.findController(element);
+ },
+ /**
+ * Removes an element from the overlay layer
+ */
+ removeElement: function(element) {
+ element.eventController = null;
+ this.replaceElement(element);
+ var h = element.__host;
+ if (h) {
+ h.parentNode.removeChild(h);
+ }
+ },
+ replaceElement: function(element) {
+ if (element.__contents) {
+ for (var i=0, c$=element.__contents, c; (c=c$[i]); i++) {
+ this.replaceElement(c);
+ }
+ element.__contents = null;
+ }
+ if (element.__parentNode) {
+ var n = element.__nextElementSibling && element.__nextElementSibling
+ === element.__parentNode ? element.__nextElementSibling : null;
+ element.__parentNode.insertBefore(element, n);
+ }
+ },
+ cacheDomLocation: function(element) {
+ element.__nextElementSibling = element.nextElementSibling;
+ element.__parentNode = element.parentNode;
+ }
+ });
+
+})();

Powered by Google App Engine
This is Rietveld 408576698