tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit b345bdade72abab086d8c2f6820dabc89f9b2490
parent cf32fb96435ebffd43a4b5eeaef480043c714c60
Author: Noam Rosenthal <noamr@users.noreply.github.com>
Date:   Thu, 11 Dec 2025 09:27:10 +0000

Bug 2003805 [wpt PR 56454] - Navigation API: Download navigations abort previous navigations., a=testonly

Automatic update from web-platform-tests
Navigation API: Download navigations abort previous navigations. (#56454)

See https://github.com/whatwg/html/pull/11983
--

wpt-commits: 2f5828e157b1000384c4c4a5d2d2b48560ab50bd
wpt-pr: 56454

Diffstat:
Atesting/web-platform/tests/navigation-api/ordering-and-transition/anchor-download-aborts-previous-navigation.html | 36++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+), 0 deletions(-)

diff --git a/testing/web-platform/tests/navigation-api/ordering-and-transition/anchor-download-aborts-previous-navigation.html b/testing/web-platform/tests/navigation-api/ordering-and-transition/anchor-download-aborts-previous-navigation.html @@ -0,0 +1,35 @@ +<!doctype html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<iframe id="iframe" src="/common/blank.html"></iframe> +<script> + promise_test(async t => { + const iframe = document.getElementById("iframe"); + await new Promise(resolve => window.onload = resolve); + const navigate_called = Promise.withResolvers(); + const { navigation } = iframe.contentWindow; + navigation.addEventListener("navigate", e => { + if (!e.downloadRequest) { + e.intercept({ handler: () => new Promise(resolve => { }) }); + navigate_called.resolve(); + } + }); + navigation.navigate("?never"); + await navigate_called.promise; + const events = []; + const { transition } = navigation; + transition.committed.then(() => events.push("committed")).catch(e => events.push("commit-rejected")); + transition.finished.then(() => events.push("finished")).catch(e => events.push("finish-rejected")); + navigation.onnavigatesuccess = () => events.push("navigatesuccess"); + navigation.onnavigateerror = () => events.push("navigateerror"); + + await Promise.resolve(); + let a = iframe.contentDocument.createElement("a"); + a.href = "?download"; + a.download = ""; + iframe.contentDocument.body.appendChild(a); + a.click(); + await Promise.allSettled([transition.finished, transition.committed]) + assert_array_equals(events, ["committed", "navigateerror", "finish-rejected"]); + }, "<a download> aborts previous navigations"); +</script> +\ No newline at end of file