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

Unified Diff: appengine/config_service/ui/bower_components/polymer/lib/utils/import-href.html

Issue 2923973003: Added base template for config ui. (Closed)
Patch Set: Created 3 years, 6 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: appengine/config_service/ui/bower_components/polymer/lib/utils/import-href.html
diff --git a/appengine/config_service/ui/bower_components/polymer/lib/utils/import-href.html b/appengine/config_service/ui/bower_components/polymer/lib/utils/import-href.html
new file mode 100644
index 0000000000000000000000000000000000000000..77933a4e43ce731554466a83fcc2852d8a81945a
--- /dev/null
+++ b/appengine/config_service/ui/bower_components/polymer/lib/utils/import-href.html
@@ -0,0 +1,107 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+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
+-->
+
+<link rel="import" href="boot.html">
+
+<script>
+
+(function() {
+
+ 'use strict';
+
+ // run a callback when HTMLImports are ready or immediately if
+ // this api is not available.
+ function whenImportsReady(cb) {
+ if (window.HTMLImports) {
+ HTMLImports.whenReady(cb);
+ } else {
+ cb();
+ }
+ }
+
+ /**
+ * Convenience method for importing an HTML document imperatively.
+ *
+ * This method creates a new `<link rel="import">` element with
+ * the provided URL and appends it to the document to start loading.
+ * In the `onload` callback, the `import` property of the `link`
+ * element will contain the imported document contents.
+ *
+ * @memberof Polymer
+ * @param {string} href URL to document to load.
+ * @param {Function=} onload Callback to notify when an import successfully
+ * loaded.
+ * @param {Function=} onerror Callback to notify when an import
+ * unsuccessfully loaded.
+ * @param {boolean=} optAsync True if the import should be loaded `async`.
+ * Defaults to `false`.
+ * @return {HTMLLinkElement} The link element for the URL to be loaded.
+ */
+ Polymer.importHref = function(href, onload, onerror, optAsync) {
+ let link =
+ document.head.querySelector('link[href="' + href + '"][import-href]');
+ if (!link) {
+ link = document.createElement('link');
+ link.rel = 'import';
+ link.href = href;
+ link.setAttribute('import-href', '');
+ }
+ // always ensure link has `async` attribute if user specified one,
+ // even if it was previously not async. This is considered less confusing.
+ if (optAsync) {
+ link.setAttribute('async', '');
+ }
+ // NOTE: the link may now be in 3 states: (1) pending insertion,
+ // (2) inflight, (3) already laoded. In each case, we need to add
+ // event listeners to process callbacks.
+ let cleanup = function() {
+ link.removeEventListener('load', loadListener);
+ link.removeEventListener('error', errorListener);
+ }
+ let loadListener = function(event) {
+ cleanup();
+ // In case of a successful load, cache the load event on the link so
+ // that it can be used to short-circuit this method in the future when
+ // it is called with the same href param.
+ link.__dynamicImportLoaded = true;
+ if (onload) {
+ whenImportsReady(() => {
+ onload(event);
+ });
+ }
+ };
+ let errorListener = function(event) {
+ cleanup();
+ // In case of an error, remove the link from the document so that it
+ // will be automatically created again the next time `importHref` is
+ // called.
+ if (link.parentNode) {
+ link.parentNode.removeChild(link);
+ }
+ if (onerror) {
+ whenImportsReady(() => {
+ onerror(event);
+ });
+ }
+ };
+ link.addEventListener('load', loadListener);
+ link.addEventListener('error', errorListener);
+ if (link.parentNode == null) {
+ document.head.appendChild(link);
+ // if the link already loaded, dispatch a fake load event
+ // so that listeners are called and get a proper event argument.
+ } else if (link.__dynamicImportLoaded) {
+ link.dispatchEvent(new Event('load'));
+ }
+ return link;
+ };
+
+})();
+</script>

Powered by Google App Engine
This is Rietveld 408576698