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 += `
+