diff --git a/lib/legacy/legacy-element-mixin.js b/lib/legacy/legacy-element-mixin.js
index 3119bf998f..152508799c 100644
--- a/lib/legacy/legacy-element-mixin.js
+++ b/lib/legacy/legacy-element-mixin.js
@@ -13,7 +13,6 @@ import { ElementMixin } from '../mixins/element-mixin.js';
import { GestureEventListeners } from '../mixins/gesture-event-listeners.js';
import { DirMixin } from '../mixins/dir-mixin.js';
import { dedupingMixin } from '../utils/mixin.js';
-import { importHref as importHref$0 } from '../utils/import-href.js';
import '../utils/render-status.js';
import '../utils/unresolved.js';
import { dom as dom$0, matchesSelector } from './polymer.dom.js';
@@ -798,29 +797,6 @@ export const LegacyElementMixin = dedupingMixin((base) => {
return elt;
}
- /**
- * Convenience method for importing an HTML document imperatively.
- *
- * This method creates a new `` 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.
- *
- * @param {string} href URL to document to load.
- * @param {?function(!Event):void=} onload Callback to notify when an import successfully
- * loaded.
- * @param {?function(!ErrorEvent):void=} 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.
- */
- importHref(href, onload, onerror, optAsync) { // eslint-disable-line no-unused-vars
- let loadFn = onload ? onload.bind(this) : null;
- let errorFn = onerror ? onerror.bind(this) : null;
- return importHref$0(href, loadFn, errorFn, optAsync);
- }
-
/**
* Polyfill for Element.prototype.matches, which is sometimes still
* prefixed.
diff --git a/lib/utils/import-href.js b/lib/utils/import-href.js
deleted file mode 100644
index 0dac6238bb..0000000000
--- a/lib/utils/import-href.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
-@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
-*/
-import './boot.js';
-
-// 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 `` 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.
- *
- * @param {string} href URL to document to load.
- * @param {?function(!Event):void=} onload Callback to notify when an import successfully
- * loaded.
- * @param {?function(!ErrorEvent):void=} 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.
- */
-export const importHref = function(href, onload, onerror, optAsync) {
- let link = /** @type {HTMLLinkElement} */
- (document.head.querySelector('link[href="' + href + '"][import-href]'));
- if (!link) {
- link = /** @type {HTMLLinkElement} */ (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 loaded. 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;
-};