[wpt-sync] Sync PR 58889 - Fix crash when starting a new navigation inside `formdata` event
Categories
(Core :: DOM: Navigation, task, P4)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox151 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 58889 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/58889
Details from upstream follow.
Mason Freed <masonf@chromium.org> wrote:
Fix crash when starting a new navigation inside
formdataeventDuring a POST form navigation, FormData::Create() is called to generate
the FormData for the NavigateEventInit. This process synchronously fires
the 'formdata' event on the form element.If the event listener for 'formdata' starts a new navigation (e.g., via
navigation.navigate()), or detaches the frame, the original navigation
attempt would later crash because it expects ongoing_navigate_event_ to
be null when registering its own navigate event.This CL checks if ongoing_navigate_event_ has been populated (or if the
frame has been detached) immediately after the FormData::Create() call
and aborts the original navigation if so, allowing the new navigation to
take over cleanly.Fixed: 496425575
Change-Id: I81f5882df3999d69f0c6ddbf547eb03587e304fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7712695
Auto-Submit: Mason Freed \<masonf@chromium.org>
Reviewed-by: Noam Rosenthal \<nrosenthal@google.com>
Commit-Queue: Noam Rosenthal \<nrosenthal@google.com>
Cr-Commit-Position: refs/heads/main@{#1607991}
| Assignee | ||
Updated•3 months ago
|
| Assignee | ||
Comment 1•3 months ago
|
||
| Assignee | ||
Comment 2•3 months ago
|
||
CI Results
Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 127 tests
Status Summary
Firefox
OK : 110[Gecko-linux2404-64-opt] 111[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-windows11-32-24h2-debug, Gecko-windows11-32-24h2-opt, Gecko-windows11-64-24h2-debug, Gecko-windows11-64-24h2-opt]
PASS : 2[Gecko-linux2204-64-wayland-debug, Gecko-linux2204-64-wayland-opt] 117[Gecko-linux2404-64-opt] 118[Gecko-linux2404-64-debug, Gecko-windows11-32-24h2-opt] 119[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-windows11-32-24h2-debug, Gecko-windows11-64-24h2-debug, Gecko-windows11-64-24h2-opt]
FAIL : 4
ERROR: 1
Chrome
CRASH: 1
Safari
ERROR: 1
Links
Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base
Details
New Tests That Don't Pass
- /navigation-api/navigate-event/defer/tentative/defer-after-dispatch.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-back.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-cross-origin.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-restore-callback-abort.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-same-document.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-multiple-handlers-and-single-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-multiple-handlers.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-single-handler-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-single-handler.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/restore-after-bfcache.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigate-form-requestSubmit.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigate-history-traversal-during-onnavigate-should-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigation-traverseTo-in-iframe-same-document-preventDefault.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/replaceState-inside-back-handler-infinite.optional.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/dangling-navigate-event-after-bfcache-restore.tentative.html [wpt.fyi]:
OK[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview,Gecko-linux2404-64-debug,Gecko-windows11-32-24h2-debug,Gecko-windows11-32-24h2-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt],SKIP[Gecko-linux2404-64-opt] - /navigation-api/navigate-event/intercept-popstate.html [wpt.fyi]
- event.intercept() should provide popstate with a valid state object:
FAIL
- event.intercept() should provide popstate with a valid state object:
- /navigation-api/navigate-event/navigate-navigation-back-cross-document.html [wpt.fyi]
- navigate event for navigation.back() - cross-document:
FAIL
- navigate event for navigation.back() - cross-document:
- /navigation-api/navigate-event/navigate-to-srcdoc.html [wpt.fyi]
- navigate event fires appropriately (and can be canceled) for adding the srcdoc attribute:
FAIL
- navigate event fires appropriately (and can be canceled) for adding the srcdoc attribute:
- /navigation-api/navigate-event/signal-abort-window-stop.html [wpt.fyi]
- window.stop() signals event.signal:
FAIL
- window.stop() signals event.signal:
- /navigation-api/navigate-event/navigate-form-onformdata-navigate-crash.html [wpt.fyi]:
ERROR[Gecko-linux2404-64-debug,Gecko-linux2404-64-opt,Gecko-windows11-32-24h2-opt,GitHub],PASS[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview,Gecko-linux2204-64-wayland-debug,Gecko-linux2204-64-wayland-opt,Gecko-windows11-32-24h2-debug,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt] (Chrome:CRASH, Safari:ERROR)
Tests Disabled in Gecko Infrastructure
- /navigation-api/navigate-event/defer/tentative/defer-after-dispatch.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-back.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-cross-origin.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-restore-callback-abort.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-same-document.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-multiple-handlers-and-single-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-multiple-handlers.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-single-handler-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-single-handler.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/restore-after-bfcache.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigate-form-requestSubmit.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigate-history-traversal-during-onnavigate-should-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigation-traverseTo-in-iframe-same-document-preventDefault.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/replaceState-inside-back-handler-infinite.optional.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/dangling-navigate-event-after-bfcache-restore.tentative.html [wpt.fyi]:
OK[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview,Gecko-linux2404-64-debug,Gecko-windows11-32-24h2-debug,Gecko-windows11-32-24h2-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt],SKIP[Gecko-linux2404-64-opt]
| Assignee | ||
Comment 3•3 months ago
|
||
CI Results
Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 127 tests
Status Summary
Firefox
OK : 110[Gecko-linux2404-64-opt] 111[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-windows11-32-24h2-debug, Gecko-windows11-32-24h2-opt, Gecko-windows11-64-24h2-debug, Gecko-windows11-64-24h2-opt]
PASS : 2[Gecko-linux2204-64-wayland-debug, Gecko-linux2204-64-wayland-opt] 117[Gecko-linux2404-64-opt] 118[Gecko-linux2404-64-debug, Gecko-windows11-32-24h2-opt] 119[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-windows11-32-24h2-debug, Gecko-windows11-64-24h2-debug, Gecko-windows11-64-24h2-opt]
FAIL : 4
ERROR: 1
Chrome
CRASH: 1
Safari
ERROR: 1
Links
Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base
Details
New Tests That Don't Pass
- /navigation-api/navigate-event/defer/tentative/defer-after-dispatch.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-back.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-cross-origin.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-restore-callback-abort.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-same-document.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-multiple-handlers-and-single-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-multiple-handlers.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-single-handler-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-single-handler.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/restore-after-bfcache.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigate-form-requestSubmit.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigate-history-traversal-during-onnavigate-should-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigation-traverseTo-in-iframe-same-document-preventDefault.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/replaceState-inside-back-handler-infinite.optional.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/dangling-navigate-event-after-bfcache-restore.tentative.html [wpt.fyi]:
OK[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview,Gecko-linux2404-64-debug,Gecko-windows11-32-24h2-debug,Gecko-windows11-32-24h2-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt],SKIP[Gecko-linux2404-64-opt] - /navigation-api/navigate-event/intercept-popstate.html [wpt.fyi]
- event.intercept() should provide popstate with a valid state object:
FAIL
- event.intercept() should provide popstate with a valid state object:
- /navigation-api/navigate-event/navigate-navigation-back-cross-document.html [wpt.fyi]
- navigate event for navigation.back() - cross-document:
FAIL
- navigate event for navigation.back() - cross-document:
- /navigation-api/navigate-event/navigate-to-srcdoc.html [wpt.fyi]
- navigate event fires appropriately (and can be canceled) for adding the srcdoc attribute:
FAIL
- navigate event fires appropriately (and can be canceled) for adding the srcdoc attribute:
- /navigation-api/navigate-event/signal-abort-window-stop.html [wpt.fyi]
- window.stop() signals event.signal:
FAIL
- window.stop() signals event.signal:
- /navigation-api/navigate-event/navigate-form-onformdata-navigate-crash.html [wpt.fyi]:
ERROR[Gecko-linux2404-64-debug,Gecko-linux2404-64-opt,Gecko-windows11-32-24h2-opt,GitHub],PASS[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview,Gecko-linux2204-64-wayland-debug,Gecko-linux2204-64-wayland-opt,Gecko-windows11-32-24h2-debug,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt] (Chrome:CRASH, Safari:ERROR)
Tests Disabled in Gecko Infrastructure
- /navigation-api/navigate-event/defer/tentative/defer-after-dispatch.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-back.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-cross-origin.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-restore-callback-abort.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-same-document.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-multiple-handlers-and-single-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-multiple-handlers.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-single-handler-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/defer-with-single-handler.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/defer/tentative/restore-after-bfcache.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigate-form-requestSubmit.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigate-history-traversal-during-onnavigate-should-reject.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/navigation-traverseTo-in-iframe-same-document-preventDefault.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/replaceState-inside-back-handler-infinite.optional.html [wpt.fyi]:
SKIP - /navigation-api/navigate-event/dangling-navigate-event-after-bfcache-restore.tentative.html [wpt.fyi]:
OK[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview,Gecko-linux2404-64-debug,Gecko-windows11-32-24h2-debug,Gecko-windows11-32-24h2-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt],SKIP[Gecko-linux2404-64-opt]
https://hg.mozilla.org/mozilla-central/rev/d33c7cf60de9
https://hg.mozilla.org/mozilla-central/rev/7e365bffb67f
Description
•