diff --git a/import-maps/import-maps-base-url.sub.html b/import-maps/import-maps-base-url.sub.html index 3e09aeff17b884..0a5f9c0beee76b 100644 --- a/import-maps/import-maps-base-url.sub.html +++ b/import-maps/import-maps-base-url.sub.html @@ -22,6 +22,11 @@ testDynamicImport(importMap, baseURL, "bare/bare", "log:bare", "module"); testDynamicImport(importMap, baseURL, "bare/bare", "log:bare", "text/javascript"); + + testStaticImportInjectBase(importMap, baseURL, "bare/bare", "log:bare"); + testDynamicImportInjectBase(importMap, baseURL, "bare/bare", "log:bare", "module"); + testDynamicImportInjectBase(importMap, baseURL, "bare/bare", "log:bare", + "text/javascript"); }); diff --git a/import-maps/resources/inject-base.js b/import-maps/resources/inject-base.js new file mode 100644 index 00000000000000..4d469aec89c398 --- /dev/null +++ b/import-maps/resources/inject-base.js @@ -0,0 +1,3 @@ +const el = document.createElement("base"); +el.href = "{{GET[baseurl]}}"; +document.currentScript.after(el); diff --git a/import-maps/resources/test-helper.js b/import-maps/resources/test-helper.js index 64982584ceb1b5..78215b2d017ac8 100644 --- a/import-maps/resources/test-helper.js +++ b/import-maps/resources/test-helper.js @@ -173,6 +173,66 @@ function testDynamicImport(importMapString, importMapBaseURL, specifier, expecte `); } +function testInIframeInjectBase(importMapString, importMapBaseURL, testScript) { + const iframe = document.createElement('iframe'); + document.body.appendChild(iframe); + let content = ` + + + + `; + + if (importMapString) { + content += ` +