| Index: third_party/polymer/components/webcomponentsjs/HTMLImports.js
|
| diff --git a/third_party/polymer/components/webcomponentsjs/HTMLImports.js b/third_party/polymer/components/webcomponentsjs/HTMLImports.js
|
| index cc8ac641d8d4170e0ab8e400a752060aba963814..90613da7d2c734aba838013c0c6143b482aa480d 100644
|
| --- a/third_party/polymer/components/webcomponentsjs/HTMLImports.js
|
| +++ b/third_party/polymer/components/webcomponentsjs/HTMLImports.js
|
| @@ -7,7 +7,7 @@
|
| * Code distributed by Google as part of the polymer project is also
|
| * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
| */
|
| -// @version 0.7.22
|
| +// @version 0.6.1
|
| if (typeof WeakMap === "undefined") {
|
| (function() {
|
| var defineProperty = Object.defineProperty;
|
| @@ -45,9 +45,6 @@ if (typeof WeakMap === "undefined") {
|
| }
|
|
|
| (function(global) {
|
| - if (global.JsMutationObserver) {
|
| - return;
|
| - }
|
| var registrationsTable = new WeakMap();
|
| var setImmediate;
|
| if (/Trident|Edge/.test(navigator.userAgent)) {
|
| @@ -343,83 +340,8 @@ if (typeof WeakMap === "undefined") {
|
| }
|
| };
|
| global.JsMutationObserver = JsMutationObserver;
|
| - if (!global.MutationObserver) {
|
| - global.MutationObserver = JsMutationObserver;
|
| - JsMutationObserver._isPolyfilled = true;
|
| - }
|
| -})(self);
|
| -
|
| -(function(scope) {
|
| - "use strict";
|
| - if (!window.performance) {
|
| - var start = Date.now();
|
| - window.performance = {
|
| - now: function() {
|
| - return Date.now() - start;
|
| - }
|
| - };
|
| - }
|
| - if (!window.requestAnimationFrame) {
|
| - window.requestAnimationFrame = function() {
|
| - var nativeRaf = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;
|
| - return nativeRaf ? function(callback) {
|
| - return nativeRaf(function() {
|
| - callback(performance.now());
|
| - });
|
| - } : function(callback) {
|
| - return window.setTimeout(callback, 1e3 / 60);
|
| - };
|
| - }();
|
| - }
|
| - if (!window.cancelAnimationFrame) {
|
| - window.cancelAnimationFrame = function() {
|
| - return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function(id) {
|
| - clearTimeout(id);
|
| - };
|
| - }();
|
| - }
|
| - var workingDefaultPrevented = function() {
|
| - var e = document.createEvent("Event");
|
| - e.initEvent("foo", true, true);
|
| - e.preventDefault();
|
| - return e.defaultPrevented;
|
| - }();
|
| - if (!workingDefaultPrevented) {
|
| - var origPreventDefault = Event.prototype.preventDefault;
|
| - Event.prototype.preventDefault = function() {
|
| - if (!this.cancelable) {
|
| - return;
|
| - }
|
| - origPreventDefault.call(this);
|
| - Object.defineProperty(this, "defaultPrevented", {
|
| - get: function() {
|
| - return true;
|
| - },
|
| - configurable: true
|
| - });
|
| - };
|
| - }
|
| - var isIE = /Trident/.test(navigator.userAgent);
|
| - if (!window.CustomEvent || isIE && typeof window.CustomEvent !== "function") {
|
| - window.CustomEvent = function(inType, params) {
|
| - params = params || {};
|
| - var e = document.createEvent("CustomEvent");
|
| - e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail);
|
| - return e;
|
| - };
|
| - window.CustomEvent.prototype = window.Event.prototype;
|
| - }
|
| - if (!window.Event || isIE && typeof window.Event !== "function") {
|
| - var origEvent = window.Event;
|
| - window.Event = function(inType, params) {
|
| - params = params || {};
|
| - var e = document.createEvent("Event");
|
| - e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable));
|
| - return e;
|
| - };
|
| - window.Event.prototype = origEvent.prototype;
|
| - }
|
| -})(window.WebComponents);
|
| + if (!global.MutationObserver) global.MutationObserver = JsMutationObserver;
|
| +})(this);
|
|
|
| window.HTMLImports = window.HTMLImports || {
|
| flags: {}
|
| @@ -430,19 +352,19 @@ window.HTMLImports = window.HTMLImports || {
|
| var useNative = Boolean(IMPORT_LINK_TYPE in document.createElement("link"));
|
| var hasShadowDOMPolyfill = Boolean(window.ShadowDOMPolyfill);
|
| var wrap = function(node) {
|
| - return hasShadowDOMPolyfill ? window.ShadowDOMPolyfill.wrapIfNeeded(node) : node;
|
| + return hasShadowDOMPolyfill ? ShadowDOMPolyfill.wrapIfNeeded(node) : node;
|
| };
|
| var rootDocument = wrap(document);
|
| var currentScriptDescriptor = {
|
| get: function() {
|
| - var script = window.HTMLImports.currentScript || document.currentScript || (document.readyState !== "complete" ? document.scripts[document.scripts.length - 1] : null);
|
| + var script = HTMLImports.currentScript || document.currentScript || (document.readyState !== "complete" ? document.scripts[document.scripts.length - 1] : null);
|
| return wrap(script);
|
| },
|
| configurable: true
|
| };
|
| Object.defineProperty(document, "_currentScript", currentScriptDescriptor);
|
| Object.defineProperty(rootDocument, "_currentScript", currentScriptDescriptor);
|
| - var isIE = /Trident/.test(navigator.userAgent);
|
| + var isIE = /Trident|Edge/.test(navigator.userAgent);
|
| function whenReady(callback, doc) {
|
| doc = doc || rootDocument;
|
| whenDocumentReady(function() {
|
| @@ -496,7 +418,6 @@ window.HTMLImports = window.HTMLImports || {
|
| if (importCount) {
|
| for (var i = 0, imp; i < importCount && (imp = imports[i]); i++) {
|
| if (isImportLoaded(imp)) {
|
| - newImports.push(this);
|
| parsedCount++;
|
| checkDone();
|
| } else {
|
| @@ -552,8 +473,8 @@ window.HTMLImports = window.HTMLImports || {
|
| })();
|
| }
|
| whenReady(function(detail) {
|
| - window.HTMLImports.ready = true;
|
| - window.HTMLImports.readyTime = new Date().getTime();
|
| + HTMLImports.ready = true;
|
| + HTMLImports.readyTime = new Date().getTime();
|
| var evt = rootDocument.createEvent("CustomEvent");
|
| evt.initCustomEvent("HTMLImportsLoaded", true, true, detail);
|
| rootDocument.dispatchEvent(evt);
|
| @@ -563,7 +484,7 @@ window.HTMLImports = window.HTMLImports || {
|
| scope.rootDocument = rootDocument;
|
| scope.whenReady = whenReady;
|
| scope.isIE = isIE;
|
| -})(window.HTMLImports);
|
| +})(HTMLImports);
|
|
|
| (function(scope) {
|
| var modules = [];
|
| @@ -577,9 +498,9 @@ window.HTMLImports = window.HTMLImports || {
|
| };
|
| scope.addModule = addModule;
|
| scope.initializeModules = initializeModules;
|
| -})(window.HTMLImports);
|
| +})(HTMLImports);
|
|
|
| -window.HTMLImports.addModule(function(scope) {
|
| +HTMLImports.addModule(function(scope) {
|
| var CSS_URL_REGEXP = /(url\()([^)]*)(\))/g;
|
| var CSS_IMPORT_REGEXP = /(@import[\s]+(?!url\())([^;]*)(;)/g;
|
| var path = {
|
| @@ -609,7 +530,7 @@ window.HTMLImports.addModule(function(scope) {
|
| scope.path = path;
|
| });
|
|
|
| -window.HTMLImports.addModule(function(scope) {
|
| +HTMLImports.addModule(function(scope) {
|
| var xhr = {
|
| async: true,
|
| ok: function(request) {
|
| @@ -623,14 +544,10 @@ window.HTMLImports.addModule(function(scope) {
|
| request.open("GET", url, xhr.async);
|
| request.addEventListener("readystatechange", function(e) {
|
| if (request.readyState === 4) {
|
| + var locationHeader = request.getResponseHeader("Location");
|
| var redirectedUrl = null;
|
| - try {
|
| - var locationHeader = request.getResponseHeader("Location");
|
| - if (locationHeader) {
|
| - redirectedUrl = locationHeader.substr(0, 1) === "/" ? location.origin + locationHeader : locationHeader;
|
| - }
|
| - } catch (e) {
|
| - console.error(e.message);
|
| + if (locationHeader) {
|
| + var redirectedUrl = locationHeader.substr(0, 1) === "/" ? location.origin + locationHeader : locationHeader;
|
| }
|
| next.call(nextContext, !xhr.ok(request) && request, request.response || request.responseText, redirectedUrl);
|
| }
|
| @@ -645,7 +562,7 @@ window.HTMLImports.addModule(function(scope) {
|
| scope.xhr = xhr;
|
| });
|
|
|
| -window.HTMLImports.addModule(function(scope) {
|
| +HTMLImports.addModule(function(scope) {
|
| var xhr = scope.xhr;
|
| var flags = scope.flags;
|
| var Loader = function(onLoad, onComplete) {
|
| @@ -738,7 +655,7 @@ window.HTMLImports.addModule(function(scope) {
|
| scope.Loader = Loader;
|
| });
|
|
|
| -window.HTMLImports.addModule(function(scope) {
|
| +HTMLImports.addModule(function(scope) {
|
| var Observer = function(addCallback) {
|
| this.addCallback = addCallback;
|
| this.mo = new MutationObserver(this.handler.bind(this));
|
| @@ -771,7 +688,7 @@ window.HTMLImports.addModule(function(scope) {
|
| scope.Observer = Observer;
|
| });
|
|
|
| -window.HTMLImports.addModule(function(scope) {
|
| +HTMLImports.addModule(function(scope) {
|
| var path = scope.path;
|
| var rootDocument = scope.rootDocument;
|
| var flags = scope.flags;
|
| @@ -780,7 +697,7 @@ window.HTMLImports.addModule(function(scope) {
|
| var IMPORT_SELECTOR = "link[rel=" + IMPORT_LINK_TYPE + "]";
|
| var importParser = {
|
| documentSelectors: IMPORT_SELECTOR,
|
| - importsSelectors: [ IMPORT_SELECTOR, "link[rel=stylesheet]:not([type])", "style:not([type])", "script:not([type])", 'script[type="application/javascript"]', 'script[type="text/javascript"]' ].join(","),
|
| + importsSelectors: [ IMPORT_SELECTOR, "link[rel=stylesheet]", "style", "script:not([type])", 'script[type="text/javascript"]' ].join(","),
|
| map: {
|
| link: "parseLink",
|
| script: "parseScript",
|
| @@ -831,9 +748,8 @@ window.HTMLImports.addModule(function(scope) {
|
| }
|
| },
|
| parseImport: function(elt) {
|
| - elt.import = elt.__doc;
|
| - if (window.HTMLImports.__importsParsingHook) {
|
| - window.HTMLImports.__importsParsingHook(elt);
|
| + if (HTMLImports.__importsParsingHook) {
|
| + HTMLImports.__importsParsingHook(elt);
|
| }
|
| if (elt.import) {
|
| elt.import.__importParsed = true;
|
| @@ -894,8 +810,6 @@ window.HTMLImports.addModule(function(scope) {
|
| trackElement: function(elt, callback) {
|
| var self = this;
|
| var done = function(e) {
|
| - elt.removeEventListener("load", done);
|
| - elt.removeEventListener("error", done);
|
| if (callback) {
|
| callback(e);
|
| }
|
| @@ -919,11 +833,9 @@ window.HTMLImports.addModule(function(scope) {
|
| }
|
| }
|
| if (fakeLoad) {
|
| - setTimeout(function() {
|
| - elt.dispatchEvent(new CustomEvent("load", {
|
| - bubbles: false
|
| - }));
|
| - });
|
| + elt.dispatchEvent(new CustomEvent("load", {
|
| + bubbles: false
|
| + }));
|
| }
|
| }
|
| },
|
| @@ -933,9 +845,7 @@ window.HTMLImports.addModule(function(scope) {
|
| script.src = scriptElt.src ? scriptElt.src : generateScriptDataUrl(scriptElt);
|
| scope.currentScript = scriptElt;
|
| this.trackElement(script, function(e) {
|
| - if (script.parentNode) {
|
| - script.parentNode.removeChild(script);
|
| - }
|
| + script.parentNode.removeChild(script);
|
| scope.currentScript = null;
|
| });
|
| this.addElementToDocument(script);
|
| @@ -948,10 +858,10 @@ window.HTMLImports.addModule(function(scope) {
|
| if (doc && this._mayParse.indexOf(doc) < 0) {
|
| this._mayParse.push(doc);
|
| var nodes = doc.querySelectorAll(this.parseSelectorsForNode(doc));
|
| - for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) {
|
| + for (var i = 0, l = nodes.length, p = 0, n; i < l && (n = nodes[i]); i++) {
|
| if (!this.isParsed(n)) {
|
| if (this.hasResource(n)) {
|
| - return nodeIsImport(n) ? this.nextToParseInDoc(n.__doc, n) : n;
|
| + return nodeIsImport(n) ? this.nextToParseInDoc(n.import, n) : n;
|
| } else {
|
| return;
|
| }
|
| @@ -974,7 +884,7 @@ window.HTMLImports.addModule(function(scope) {
|
| return this.dynamicElements.indexOf(elt) >= 0;
|
| },
|
| hasResource: function(node) {
|
| - if (nodeIsImport(node) && node.__doc === undefined) {
|
| + if (nodeIsImport(node) && node.import === undefined) {
|
| return false;
|
| }
|
| return true;
|
| @@ -1008,7 +918,7 @@ window.HTMLImports.addModule(function(scope) {
|
| scope.IMPORT_SELECTOR = IMPORT_SELECTOR;
|
| });
|
|
|
| -window.HTMLImports.addModule(function(scope) {
|
| +HTMLImports.addModule(function(scope) {
|
| var flags = scope.flags;
|
| var IMPORT_LINK_TYPE = scope.IMPORT_LINK_TYPE;
|
| var IMPORT_SELECTOR = scope.IMPORT_SELECTOR;
|
| @@ -1048,7 +958,7 @@ window.HTMLImports.addModule(function(scope) {
|
| }
|
| this.documents[url] = doc;
|
| }
|
| - elt.__doc = doc;
|
| + elt.import = doc;
|
| }
|
| parser.parseNext();
|
| },
|
| @@ -1107,7 +1017,7 @@ window.HTMLImports.addModule(function(scope) {
|
| scope.importLoader = importLoader;
|
| });
|
|
|
| -window.HTMLImports.addModule(function(scope) {
|
| +HTMLImports.addModule(function(scope) {
|
| var parser = scope.parser;
|
| var importer = scope.importer;
|
| var dynamic = {
|
| @@ -1144,14 +1054,23 @@ window.HTMLImports.addModule(function(scope) {
|
| if (scope.useNative) {
|
| return;
|
| }
|
| + if (isIE && typeof window.CustomEvent !== "function") {
|
| + window.CustomEvent = function(inType, params) {
|
| + params = params || {};
|
| + var e = document.createEvent("CustomEvent");
|
| + e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail);
|
| + return e;
|
| + };
|
| + window.CustomEvent.prototype = window.Event.prototype;
|
| + }
|
| initializeModules();
|
| var rootDocument = scope.rootDocument;
|
| function bootstrap() {
|
| - window.HTMLImports.importer.bootDocument(rootDocument);
|
| + HTMLImports.importer.bootDocument(rootDocument);
|
| }
|
| if (document.readyState === "complete" || document.readyState === "interactive" && !window.attachEvent) {
|
| bootstrap();
|
| } else {
|
| document.addEventListener("DOMContentLoaded", bootstrap);
|
| }
|
| -})(window.HTMLImports);
|
| +})(HTMLImports);
|
|
|