From 6183f5406578dad88043441fec8e884ee43c9cc4 Mon Sep 17 00:00:00 2001
From: "Node.js GitHub Bot"
Date: Thu, 15 Oct 2026 16:28:44 +0000
Subject: [PATCH 1/2] test: update WPT for FileAPI to 5878c7a7c0
---
.../wpt/FileAPI/BlobURL/WEB_FEATURES.yml | 2 +
.../cross-partition-navigation.https.html | 47 ++++++++++
.../wpt/FileAPI/BlobURL/opaque-origin.html | 47 ++++++++++
.../wpt/FileAPI/FileReader/WEB_FEATURES.yml | 2 +
.../wpt/FileAPI/FileReaderSync.worker.js | 8 +-
test/fixtures/wpt/FileAPI/WEB_FEATURES.yml | 5 +-
.../Blob-array-buffer-data-isolation.html | 85 ++++++++++++++++++
.../Blob-constructor-detached-buffer.any.js | 59 ++++++++++++
.../blob/Blob-constructor-endings.any.js | 35 ++++++++
.../blob/Blob-constructor-endings.html | 35 --------
.../wpt/FileAPI/blob/Blob-constructor.any.js | 19 ++--
.../wpt/FileAPI/blob/Blob-textStream.any.js | 90 +++++++++++++++++++
.../wpt/FileAPI/blob/WEB_FEATURES.yml | 2 +
.../file/File-constructor-endings.any.js | 35 ++++++++
.../file/File-constructor-endings.html | 35 --------
.../wpt/FileAPI/file/File-lastModified.html | 18 ++++
.../wpt/FileAPI/file/WEB_FEATURES.yml | 2 +
.../FileAPI/filelist-section/WEB_FEATURES.yml | 3 +
.../FileReader-multiple-reads.any.js | 63 +++++++++++++
.../reading-data-section/WEB_FEATURES.yml | 2 +
.../filereader_abort.any.js | 29 ++++++
.../filereader_readAsDataURL.html | 27 ++++++
...reader_readAsText_blob_type_charset.any.js | 51 +++++++++++
.../FileAPI/{unicode.html => unicode.any.js} | 27 ++----
.../fixtures/wpt/FileAPI/url/WEB_FEATURES.yml | 2 +
.../FileAPI/url/url-in-tags-revoke.window.js | 19 ++++
.../wpt/FileAPI/url/url-in-tags.window.js | 18 ++++
.../url_createobjecturl_file_img-manual.html | 2 +-
test/fixtures/wpt/versions.json | 2 +-
29 files changed, 666 insertions(+), 105 deletions(-)
create mode 100644 test/fixtures/wpt/FileAPI/BlobURL/WEB_FEATURES.yml
create mode 100644 test/fixtures/wpt/FileAPI/BlobURL/opaque-origin.html
create mode 100644 test/fixtures/wpt/FileAPI/FileReader/WEB_FEATURES.yml
create mode 100644 test/fixtures/wpt/FileAPI/blob/Blob-array-buffer-data-isolation.html
create mode 100644 test/fixtures/wpt/FileAPI/blob/Blob-constructor-detached-buffer.any.js
create mode 100644 test/fixtures/wpt/FileAPI/blob/Blob-constructor-endings.any.js
create mode 100644 test/fixtures/wpt/FileAPI/blob/Blob-textStream.any.js
create mode 100644 test/fixtures/wpt/FileAPI/blob/WEB_FEATURES.yml
create mode 100644 test/fixtures/wpt/FileAPI/file/File-constructor-endings.any.js
create mode 100644 test/fixtures/wpt/FileAPI/file/File-lastModified.html
create mode 100644 test/fixtures/wpt/FileAPI/file/WEB_FEATURES.yml
create mode 100644 test/fixtures/wpt/FileAPI/filelist-section/WEB_FEATURES.yml
create mode 100644 test/fixtures/wpt/FileAPI/reading-data-section/WEB_FEATURES.yml
create mode 100644 test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsDataURL.html
create mode 100644 test/fixtures/wpt/FileAPI/reading-data-section/filereader_readAsText_blob_type_charset.any.js
rename test/fixtures/wpt/FileAPI/{unicode.html => unicode.any.js} (61%)
create mode 100644 test/fixtures/wpt/FileAPI/url/WEB_FEATURES.yml
diff --git a/test/fixtures/wpt/FileAPI/BlobURL/WEB_FEATURES.yml b/test/fixtures/wpt/FileAPI/BlobURL/WEB_FEATURES.yml
new file mode 100644
index 000000000000..69d4514d8f3a
--- /dev/null
+++ b/test/fixtures/wpt/FileAPI/BlobURL/WEB_FEATURES.yml
@@ -0,0 +1,2 @@
+rules:
+- "**": [file]
diff --git a/test/fixtures/wpt/FileAPI/BlobURL/cross-partition-navigation.https.html b/test/fixtures/wpt/FileAPI/BlobURL/cross-partition-navigation.https.html
index a92e0f7a8a9b..978370f8805b 100644
--- a/test/fixtures/wpt/FileAPI/BlobURL/cross-partition-navigation.https.html
+++ b/test/fixtures/wpt/FileAPI/BlobURL/cross-partition-navigation.https.html
@@ -247,5 +247,52 @@
});
}, "Blob URL area element click should enforce noopener for a cross-top-level-site navigation");
+const open_blob_url_window_via_svg_a_click = (blob_url) => `
+ const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ const a = document.createElementNS("http://www.w3.org/2000/svg", "a");
+ a.setAttribute("href", "${blob_url}");
+ a.setAttribute("target", "_blank");
+ a.setAttribute("rel", "opener");
+ const text = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ text.textContent = "click";
+ a.appendChild(text);
+ svg.appendChild(a);
+ document.body.appendChild(svg);
+ a.dispatchEvent(new MouseEvent("click", {bubbles: true}));
+`;
+
+// Tests blob URL SVG `` click for same and
+// cross partition iframes.
+promise_test(t => {
+ return new Promise(async (resolve, reject) => {
+ try {
+ // Creates same and cross partition iframes.
+ const noopener_response_queue = token();
+
+ const [cross_site_iframe_uuid, same_site_iframe_uuid] = await create_test_iframes(t, token());
+
+ const blob = new Blob([opener_check_frame_html(noopener_response_queue)], {type : "text/html"});
+ const blob_url = URL.createObjectURL(blob);
+
+ // Attempt to click blob URL in cross partition iframe.
+ await send(cross_site_iframe_uuid, open_blob_url_window_via_svg_a_click(blob_url));
+ const noopener_response_1 = await receive(noopener_response_queue);
+ if (noopener_response_1 !== opener_null_response) {
+ reject(`Blob URL page opener wasn't null in not-same-top-level-site iframe.`);
+ }
+
+ // Attempt to click blob URL in same partition iframe.
+ await send(same_site_iframe_uuid, open_blob_url_window_via_svg_a_click(blob_url));
+ const noopener_response_2 = await receive(noopener_response_queue);
+ if (noopener_response_2 !== opener_not_null_response) {
+ reject(`Blob URL page opener was null in same-top-level-site iframe`);
+ }
+ resolve();
+ } catch (e) {
+ reject(e);
+ }
+ });
+}, "Blob URL SVG element click should enforce noopener for a cross-top-level-site navigation");
+
+
+
diff --git a/test/fixtures/wpt/FileAPI/BlobURL/opaque-origin.html b/test/fixtures/wpt/FileAPI/BlobURL/opaque-origin.html
new file mode 100644
index 000000000000..c17e902128a5
--- /dev/null
+++ b/test/fixtures/wpt/FileAPI/BlobURL/opaque-origin.html
@@ -0,0 +1,47 @@
+
+
+