Commit 360a0557 authored by rbpotter's avatar rbpotter Committed by Commit Bot

Web UI: Add v0 HTML Imports Polyfill

This is needed so that pages using the polyfill will still work with
Polymer 1. Polymer 1 is currently tested on the bots and is expected
to be supported through at least M-74.

Bug: 925517
Change-Id: Iabe257fb1228dd9803403dd478889080bba64962
Reviewed-on: https://chromium-review.googlesource.com/c/1484506
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: default avatarDan Beam <dbeam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#635888}
parent dc0f4809
...@@ -52,6 +52,9 @@ const char kPolymerHtml[] = "polymer/v1_0/polymer/polymer.html"; ...@@ -52,6 +52,9 @@ const char kPolymerHtml[] = "polymer/v1_0/polymer/polymer.html";
const char kPolymerJs[] = "polymer/v1_0/polymer/polymer-extracted.js"; const char kPolymerJs[] = "polymer/v1_0/polymer/polymer-extracted.js";
const char kPolymer2Html[] = "polymer/v1_0/polymer2/polymer.html"; const char kPolymer2Html[] = "polymer/v1_0/polymer2/polymer.html";
const char kPolymer2Js[] = "polymer/v1_0/polymer2/polymer-extracted.js"; const char kPolymer2Js[] = "polymer/v1_0/polymer2/polymer-extracted.js";
const char kHtmlImportsJs[] = "polymer/v1_0/html-imports/html-imports.min.js";
const char kHtmlImportsV0Js[] =
"polymer/v1_0/html-imports-v0/html-imports.min.js";
// Utility for determining if both Polymer 1 and Polymer 2 are needed. // Utility for determining if both Polymer 1 and Polymer 2 are needed.
bool UsingMultiplePolymerVersions() { bool UsingMultiplePolymerVersions() {
...@@ -83,6 +86,10 @@ const std::map<std::string, std::string> CreatePathPrefixAliasesMap() { ...@@ -83,6 +86,10 @@ const std::map<std::string, std::string> CreatePathPrefixAliasesMap() {
if (base::FeatureList::IsEnabled(features::kWebUIPolymer2)) { if (base::FeatureList::IsEnabled(features::kWebUIPolymer2)) {
aliases["../../../third_party/polymer/v1_0/components-chromium/polymer2/"] = aliases["../../../third_party/polymer/v1_0/components-chromium/polymer2/"] =
"polymer/v1_0/polymer/"; "polymer/v1_0/polymer/";
} else {
aliases
["../../../third_party/polymer/v1_0/components-chromium/"
"html-imports-v0/"] = "polymer/v1_0/html-imports/";
} }
#endif // !defined(OS_ANDROID) #endif // !defined(OS_ANDROID)
return aliases; return aliases;
...@@ -121,18 +128,26 @@ bool ShouldIgnore(std::string resource) { ...@@ -121,18 +128,26 @@ bool ShouldIgnore(std::string resource) {
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
if (base::FeatureList::IsEnabled(features::kWebUIPolymer2) && if (base::FeatureList::IsEnabled(features::kWebUIPolymer2) &&
base::StartsWith( (base::StartsWith(
resource, resource,
"../../../third_party/polymer/v1_0/components-chromium/polymer/", "../../../third_party/polymer/v1_0/components-chromium/polymer/",
base::CompareCase::SENSITIVE)) { base::CompareCase::SENSITIVE) ||
base::StartsWith(resource,
"../../../third_party/polymer/v1_0/components-chromium/"
"html-imports-v0/",
base::CompareCase::SENSITIVE))) {
return true; return true;
} }
if (!base::FeatureList::IsEnabled(features::kWebUIPolymer2) && if (!base::FeatureList::IsEnabled(features::kWebUIPolymer2) &&
base::StartsWith( (base::StartsWith(
resource, resource,
"../../../third_party/polymer/v1_0/components-chromium/polymer2/", "../../../third_party/polymer/v1_0/components-chromium/polymer2/",
base::CompareCase::SENSITIVE)) { base::CompareCase::SENSITIVE) ||
base::StartsWith(resource,
"../../../third_party/polymer/v1_0/components-chromium/"
"html-imports/",
base::CompareCase::SENSITIVE))) {
return true; return true;
} }
...@@ -239,9 +254,14 @@ void SharedResourcesDataSource::StartDataRequest( ...@@ -239,9 +254,14 @@ void SharedResourcesDataSource::StartDataRequest(
// If this is a Polymer request and multiple Polymer versions are enabled, // If this is a Polymer request and multiple Polymer versions are enabled,
// return the Polymer 2 path unless the request is from the // return the Polymer 2 path unless the request is from the
// |disabled_polymer2_host_|. // |disabled_polymer2_host_|.
if ((path == kPolymerHtml || path == kPolymerJs) && if ((path == kPolymerHtml || path == kPolymerJs || path == kHtmlImportsJs) &&
UsingMultiplePolymerVersions() && !IsPolymer2DisabledForPage(wc_getter)) { UsingMultiplePolymerVersions()) {
updated_path = path == kPolymerHtml ? kPolymer2Html : kPolymer2Js; bool polymer2 = !IsPolymer2DisabledForPage(wc_getter);
if (polymer2 && (path == kPolymerHtml || path == kPolymerJs)) {
updated_path = path == kPolymerHtml ? kPolymer2Html : kPolymer2Js;
} else if (!polymer2 && path == kHtmlImportsJs) {
updated_path = kHtmlImportsV0Js;
}
} }
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
"dependencies": { "dependencies": {
"font-roboto": "PolymerElements/font-roboto#1.0.1", "font-roboto": "PolymerElements/font-roboto#1.0.1",
"html-imports": "webcomponents/html-imports#1.2.0", "html-imports": "webcomponents/html-imports#1.2.0",
"html-imports-v0": "webcomponents/html-imports#v0",
"iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#2.1.0", "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#2.1.0",
"iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#2.1.1", "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#2.1.1",
"iron-a11y-keys": "PolymerElements/iron-a11y-keys#2.0.0", "iron-a11y-keys": "PolymerElements/iron-a11y-keys#2.0.0",
......
{
"name": "html-imports",
"main": "html-imports.min.js",
"version": "0.0.1",
"homepage": "http://webcomponents.org",
"authors": [
"The Polymer Authors"
],
"repository": {
"type": "git",
"url": "https://github.com/webcomponents/html-imports.git"
},
"keywords": [
"webcomponents"
],
"license": "BSD",
"ignore": [],
"devDependencies": {
"web-component-tester": "^4.0.1",
"polymer": "2.0-preview"
}
}
...@@ -10,6 +10,12 @@ Tree: v1.2.0 ...@@ -10,6 +10,12 @@ Tree: v1.2.0
Revision: bcdbb81201faad37270b03f59a29f2f27cb70312 Revision: bcdbb81201faad37270b03f59a29f2f27cb70312
Tree link: https://github.com/webcomponents/html-imports/tree/v1.2.0 Tree link: https://github.com/webcomponents/html-imports/tree/v1.2.0
Name: html-imports
Repository: https://github.com/webcomponents/html-imports.git
Tree: v0
Revision: 5832a3028a3bb6f8f29f0c53b0c8d631efdfa0b4
Tree link: https://github.com/webcomponents/html-imports/tree/v0
Name: iron-a11y-announcer Name: iron-a11y-announcer
Repository: https://github.com/PolymerElements/iron-a11y-announcer.git Repository: https://github.com/PolymerElements/iron-a11y-announcer.git
Tree: v2.1.0 Tree: v2.1.0
......
...@@ -31,6 +31,7 @@ class UnusedElementsDetector(object): ...@@ -31,6 +31,7 @@ class UnusedElementsDetector(object):
'shadycss', 'shadycss',
# Not used yet. Will be used when pages are moved off of HTML imports. # Not used yet. Will be used when pages are moved off of HTML imports.
'html-imports', 'html-imports',
'html-imports-v0',
) )
def __init__(self): def __init__(self):
......
...@@ -28,6 +28,10 @@ package-lock.json ...@@ -28,6 +28,10 @@ package-lock.json
*/site/ */site/
*/templates/ */templates/
# html-imports-v0
html-imports-v0/src/*
html-imports-v0/gulpfile.js
# iron-autogrow-textarea # iron-autogrow-textarea
iron-autogrow-textarea/* iron-autogrow-textarea/*
......
...@@ -28,6 +28,10 @@ ...@@ -28,6 +28,10 @@
file="../../../third_party/polymer/v1_0/components-chromium/html-imports/html-imports.min.js" file="../../../third_party/polymer/v1_0/components-chromium/html-imports/html-imports.min.js"
type="chrome_html" type="chrome_html"
compress="gzip" /> compress="gzip" />
<structure name="IDR_POLYMER_1_0_HTML_IMPORTS_V0_HTML_IMPORTS_MIN_JS"
file="../../../third_party/polymer/v1_0/components-chromium/html-imports-v0/html-imports.min.js"
type="chrome_html"
compress="gzip" />
<structure name="IDR_POLYMER_1_0_IRON_A11Y_ANNOUNCER_IRON_A11Y_ANNOUNCER_EXTRACTED_JS" <structure name="IDR_POLYMER_1_0_IRON_A11Y_ANNOUNCER_IRON_A11Y_ANNOUNCER_EXTRACTED_JS"
file="../../../third_party/polymer/v1_0/components-chromium/iron-a11y-announcer/iron-a11y-announcer-extracted.js" file="../../../third_party/polymer/v1_0/components-chromium/iron-a11y-announcer/iron-a11y-announcer-extracted.js"
type="chrome_html" type="chrome_html"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment