From bfed1f4fcb398e2b57a05c74331e4be04ac7dd27 Mon Sep 17 00:00:00 2001 From: Sebastian Benz Date: Wed, 8 Jul 2020 10:18:25 +0200 Subject: [PATCH] Fix runtime-host meta tag when using relative URLs --- .../optimizer/lib/transformers/RewriteAmpUrls.js | 16 +++++++++++++++- .../expected_output.html | 2 +- .../rewrites_hosts/expected_output.html | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/optimizer/lib/transformers/RewriteAmpUrls.js b/packages/optimizer/lib/transformers/RewriteAmpUrls.js index efcbbc9d3..fa1f631ff 100644 --- a/packages/optimizer/lib/transformers/RewriteAmpUrls.js +++ b/packages/optimizer/lib/transformers/RewriteAmpUrls.js @@ -109,7 +109,12 @@ class RewriteAmpUrls { // runtime-host and amp-geo-api meta tags should appear before the first script if (!this._usesAmpCacheUrl(host) && !params.lts) { - const versionlessHost = calculateHost({ampUrlPrefix: params.ampUrlPrefix}); + let versionlessHost; + if (this.isAbsoluteUrl_(params.ampUrlPrefix)) { + versionlessHost = calculateHost({ampUrlPrefix: params.ampUrlPrefix}); + } else { + versionlessHost = '.'; + } this._addMeta(head, 'runtime-host', versionlessHost); } if (params.geoApiUrl && !params.lts) { @@ -174,6 +179,15 @@ class RewriteAmpUrls { const meta = createElement('meta', {name, content}); insertBefore(head, meta, firstChildByTag(head, 'script')); } + + isAbsoluteUrl_(url) { + try { + new URL(url); + return true; + } catch (ex) {} + + return false; + } } module.exports = RewriteAmpUrls; diff --git a/packages/optimizer/spec/transformers/experimental/RewriteAmpUrls/rewrites_host_and_adds_version/expected_output.html b/packages/optimizer/spec/transformers/experimental/RewriteAmpUrls/rewrites_host_and_adds_version/expected_output.html index 413961be0..88d0a5f1f 100644 --- a/packages/optimizer/spec/transformers/experimental/RewriteAmpUrls/rewrites_host_and_adds_version/expected_output.html +++ b/packages/optimizer/spec/transformers/experimental/RewriteAmpUrls/rewrites_host_and_adds_version/expected_output.html @@ -1,7 +1,7 @@ - + diff --git a/packages/optimizer/spec/transformers/experimental/RewriteAmpUrls/rewrites_hosts/expected_output.html b/packages/optimizer/spec/transformers/experimental/RewriteAmpUrls/rewrites_hosts/expected_output.html index 58fc9f281..56513e73d 100644 --- a/packages/optimizer/spec/transformers/experimental/RewriteAmpUrls/rewrites_hosts/expected_output.html +++ b/packages/optimizer/spec/transformers/experimental/RewriteAmpUrls/rewrites_hosts/expected_output.html @@ -1,7 +1,7 @@ - +