Closed Bug 1732016 Opened 3 years ago Closed 3 years ago

[wpt-sync] Sync PR 30778 - App history: change navigation method return values

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox95 fixed)

RESOLVED FIXED
95 Branch
Tracking Status
firefox95 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 30778 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/30778
Details from upstream follow.

Domenic Denicola <domenic@chromium.org> wrote:

App history: change navigation method return values

Follows https://github.com/WICG/app-history/pull/164.

This includes expanded test coverage for many cases where we were only
testing a given scenario for one of
navigate()/reload()/back()/forward()/goTo(); now at least all the tests
in the return-value subdirectory are parallel for those, where
applicable.

Change-Id: Ib00fa03559dee037f5bb0b204571821e59d5fd53
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3159063
Reviewed-by: Nate Chapin \<japhet@chromium.org>
Commit-Queue: Domenic Denicola \<domenic@chromium.org>
Cr-Commit-Position: refs/heads/main@{#921920}

CI Results

Ran 7 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 114 tests and 1 subtests

Status Summary

Firefox

OK : 112[Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, GitHub] 113[Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-tsan-qr-opt]
PASS : 1
FAIL : 115
TIMEOUT: 1
ERROR : 1[Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-tsan-qr-opt] 2[Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, GitHub]

Chrome

OK : 85
PASS : 10
FAIL : 102
TIMEOUT: 5
ERROR : 29

Safari

OK : 112
PASS : 1
FAIL : 115
TIMEOUT: 1
ERROR : 2

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/app-history/navigate/back-forward-multiple-frames.html
appHistory.back() and appHistory.forward() can navigate multiple frames: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/disambigaute-back.html
appHistory.back() goes to the nearest back entry: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/disambigaute-forward.html
appHistory.forward() goes to the nearest forward entry: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/disambigaute-goto-back-multiple.html
appHistory.goTo() goes to the nearest entry when going back: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/disambigaute-goto-forward-multiple.html
appHistory.goTo() goes to the nearest entry when going forward: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/goTo-after-adding-iframe.html
appHistory.goTo() should work in an iframe that is not present in all history entries: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/goTo-after-data-url.html
appHistory.goTo() should work in an iframe that started at a data: url: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/goTo-detach-between-navigate-and-navigatesuccess.html
Detach a window between when a goTo() fires navigate and navigatesuccess: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/goTo-multiple-steps.html
goto() can precisely traverse multiple steps in the joint session history: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/goTo-same-document.html
same-document navigate.goTo(), back(), and forward(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/goTo-with-cross-origin-in-history.html
appHistory.goTo() should work in an iframe that has navigated across origins: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/navigate-cross-document-event-order.html
navigate() event ordering for cross-document navigation: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/navigate-history-state-replace.html
history.state should be nulled by navigate(): FAIL (Chrome: PASS, Safari: FAIL)
/app-history/navigate/navigate-history-state.html
history.state should be nulled by navigate(): FAIL (Chrome: PASS, Safari: FAIL)
/app-history/navigate/navigate-info-and-state.html
navigate() with info and state: FAIL (Chrome: PASS, Safari: FAIL)
/app-history/navigate/navigate-replace-same-document.html: ERROR [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, GitHub], OK [Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-tsan-qr-opt] (Chrome: ERROR, Safari: ERROR)
/app-history/navigate/navigate-same-document-event-order.html
navigate() event ordering for same-document navigation: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/navigate-same-document.html
navigate() navigates same-document and fires onnavigate (async): FAIL (Chrome: PASS, Safari: FAIL)
navigate() navigates same-document and fires onnavigate (sync): FAIL (Chrome: PASS, Safari: FAIL)
/app-history/navigate/navigate-state-repeated-await.html
navigate() with state should work correctly when called repeatedly - with awaits: FAIL (Chrome: PASS, Safari: FAIL)
/app-history/navigate/navigate-state-repeated.html
navigate() with state should work correctly when called repeatedly: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/navigate-transitionWhile-history-state.html
history.story should be nulled by navigate() handled by transitionWhile(): FAIL (Chrome: PASS, Safari: FAIL)
/app-history/navigate/navigate-transitionWhile-reject-event-order.html
navigate() event ordering for same-document navigation: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/reload-info.html
reload() variant with only info: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/reload-no-args.html
reload() variant with no state or info: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/reload-state-and-info.html
reload() variant with info and new state: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/reload-state-undefined.html
reload() variant with info and state: undefined counts the same as not present (because of Web IDL dictionary semantics), so preserves the state: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/back-already-detached.html
back() in a detached window: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/back-beforeunload.html
back() inside onbeforeunload: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/back-forward-out-of-bounds.html
back() and forward() out of bounds: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/back-initial-about-blank.html
back() in initial about:blank document: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/back-transitionWhile-rejected.html
back() promise rejection with rejected transitionWhile(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/back-transitionWhile.html
back() and transitionWhile() with a fulfilled promise: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/back.html
back() promises: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/forward-already-detached.html
forward() in a detached window: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/forward-beforeunload.html
forward() inside onbeforeunload: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/forward-initial-about-blank.html
forward() in initial about:blank document: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/forward-transitionWhile-rejected.html
forward() promise rejection with rejected transitionWhile(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/forward-transitionWhile.html
forward() and transitionWhile() with a fulfilled promise: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/forward.html
forward() promises: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo-already-detached.html
goTo() in a detached window: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo-beforeunload.html
goTo() inside onbeforeunload: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo-cross-document-preventDefault.html
goTo() promise rejection when preventDefault()ing the navigate event (cross-document): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo-current.html
goTo() with current key: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo-detach-cross-document.html
goTo() promise rejections when detaching an iframe inside onnavigate (cross-document): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo-detach-same-document.html
goTo() promise rejections when detaching an iframe inside onnavigate (same-document): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo-invalid-key.html
goTo() with invalid key: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo-repeated.html
Repeated appHistory.goTo() with the same key: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo-transitionWhile-rejected.html
goTo() promise rejection with rejected transitionWhile(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo-transitionWhile.html
goTo() and transitionWhile() with a fulfilled promise: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/goTo.html
goTo() promises: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-already-detached.html
navigate() in a detached window: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-beforeunload.html
navigate() inside onbeforeunload: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-cross-document.html
cross-document navigate() promises never settle: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-detach.html
navigate() promise rejections when detaching an iframe inside onnavigate: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-file-url.html
navigate() to a file: URL: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-initial-about-blank-cross-document.html
navigate() in initial about:blank document (cross-document): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-initial-about-blank.html
navigate() in initial about:blank document: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-interrupted-within-onnavigate.html
if navigate() is called inside onnavigate, the previous navigation and navigate event are cancelled: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-interrupted.html
interrupted navigate() promises: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-invalid-url.html
navigate() with an invalid URL: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-preventDefault.html
navigate() when the onnavigate handler calls preventDefault(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-rejection-order-beforeunload-unserializablestate.html
navigate() with an unserializable state inside onbeforeunload throws "InvalidStateError", not "DataCloneError": FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-rejection-order-detached-unserializablestate.html
navigate() with unserializable state in a detached iframe throws "InvalidStateError", not "DataCloneError": FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-rejection-order-invalidurl-beforeunload.html
navigate() with an invalid URL inside onbeforeunload throws "SyntaxError", not "InvalidStateError": FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-rejection-order-invalidurl-detached.html
navigate() with an invalid URL in a detached iframe throws "SyntaxError", not "InvalidStateError": FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-rejection-order-invalidurl-unload.html
navigate() with an invalid URL inside onunload throws "SyntaxError", not "InvalidStateError": FAIL (Chrome: TIMEOUT, Safari: FAIL)
/app-history/navigate/return-value/navigate-rejection-order-invalidurl-unserializablestate.html
navigate() with an invalid URL and unserializable state throws "SyntaxError", not "DataCloneError": FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-rejection-order-unload-unserializablestate.html
navigate() with an unserializable state inside onunload throws "InvalidStateError", not "DataCloneError": FAIL (Chrome: TIMEOUT, Safari: FAIL)
/app-history/navigate/return-value/navigate-transitionWhile-interrupted.html
interrupted navigate() promises with transitionWhile(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-transitionWhile-rejected.html
navigate() and transitionWhile() with a rejected promise: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-transitionWhile.html
navigate() and transitionWhile() with a fulfilled promise: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate-unload.html
navigate() inside onunload: FAIL (Chrome: TIMEOUT, Safari: FAIL)
/app-history/navigate/return-value/navigate-unserializable-state.html
navigate() with an unserializable state (WritableStream): FAIL (Chrome: FAIL, Safari: FAIL)
navigate() with an unserializable state (SharedArrayBuffer): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/navigate.html
navigate() promises: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload-already-detached.html
reload() in a detached window: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload-beforeunload.html
reload() inside onbeforeunload: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload-detach.html
reload() promise rejections when detaching an iframe inside onnavigate: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload-initial-about-blank.html
reload() in initial about:blank document: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload-preventDefault.html
reload() when the onnavigate handler calls preventDefault(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload-rejection-order-beforeunload-unserializablestate.html
reload() with an unserializable state inside onbeforeunload throws "InvalidStateError", not "DataCloneError": FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload-rejection-order-detached-unserializablestate.html
reload() with unserializable state in a detached iframe throws "InvalidStateError", not "DataCloneError": FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload-rejection-order-unload-unserializablestate.html
reload() with an unserializable state inside onunload throws "InvalidStateError", not "DataCloneError": FAIL (Chrome: TIMEOUT, Safari: FAIL)
/app-history/navigate/return-value/reload-transitionWhile-rejected.html
reload() and transitionWhile() with a rejected promise: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload-transitionWhile.html
reload() and transitionWhile() with a fulfilled promise: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload-unload.html
reload() inside onunload: FAIL (Chrome: TIMEOUT, Safari: FAIL)
/app-history/navigate/return-value/reload-unserializable-state.html
reload() with an unserializable state (WritableStream): FAIL (Chrome: FAIL, Safari: FAIL)
reload() with an unserializable state (SharedArrayBuffer): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/return-value/reload.html
reload() promises never settle (without transitionWhile()): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate/state/navigate-state-after-same-document-navigation.html: ERROR (Chrome: OK, Safari: ERROR)
appHistoryEntry.getState() behavior after navigating away and back: TIMEOUT (Chrome: FAIL, Safari: TIMEOUT)
/app-history/navigate-event/navigate-appHistory-back-same-document.html
navigate event for appHistory.back() - same-document: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate-event/navigateerror-ordering-cross-document.html
navigateerror ordering when navigate() is called repeatedly (cross-document): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate-event/navigateerror-ordering-transitionWhile-reentrant.html
navigateerror ordering when navigate() is called reentrantly and handled by transitionWhile(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate-event/navigateerror-ordering-transitionWhile.html
navigateerror ordering when navigate() is called repeatedly and handled by transitionWhile(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate-event/signal-abort-detach-in-onnavigate.html
window detach inside AppHistoryNavigateEvent signals AppHistoryNavigateEvent.signal: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate-event/signal-abort-preventDefault.html
AppHistoryNavigateEvent.preventDefault signals AppHistoryNavigateEvent.signal: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate-event/signal-abort-transitionWhile.html
AppHistoryNavigateEvent's transitionWhile() does not signal AppHistoryNavigateEvent's signal: FAIL (Chrome: PASS, Safari: FAIL)
/app-history/navigate-event/signal-abort-window-stop-after-transitionWhile.html
window.stop() cancels AppHistoryNavigateEvent's transitionWhile() and signals AppHistoryNavigateEvent's signal: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate-event/transitionWhile-appHistory-back.html
AppHistoryNavigateEvent's transitionWhile() can intercept appHistory.back(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate-event/transitionWhile-multiple-times-reject.html
AppHistoryNavigateEvent's transitionWhile() is called multiple times and one of the promises rejects: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate-event/transitionWhile-multiple-times.html
appHistory.navigate() returns a finished promise that awaits all promises if AppHistoryNavigateEvent's transitionWhile() is called multiple times: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/navigate-event/transitionWhile-same-document-history-back.html
AppHistoryNavigateEvent's transitionWhile() can intercept same-document history.back(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/per-entry-events/dispose-same-document-navigate-during.html
navigate() during a same-document-navigation-initiated dispose works (since it's after the previous navigation): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/per-entry-events/dispose-same-document-reload-with-transitionWhile.html
dispose events are not fired when doing a same-document reload using appHistory.reload() and transitionWhile(): FAIL (Chrome: PASS, Safari: FAIL)
/app-history/per-entry-events/dispose-same-document-transitionWhile.html
dispose events when forward-pruning same-document entries: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/per-entry-events/dispose-same-document.html
dispose events when forward-pruning same-document entries: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/transition/back-transitionWhile-rejected.html
transitionWhile()ed back() with a rejected promise: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/transition/back-transitionWhile.html
transitionWhile()ed back(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/transition/navigate-canceled.html
canceled navigate(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/transition/navigate-transitionWhile-interrupted.html
transitionWhile()ed one navigate() interrupting the other: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/transition/navigate-transitionWhile-rejected.html
transitionWhile()ed navigate() with a rejected promise: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/transition/navigate-transitionWhile-stop.html
transitionWhile()ed navigate() that is stop()ed: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/transition/navigate-transitionWhile.html
transitionWhile()ed navigate(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/transition/reload-canceled.html
canceled reload(): FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/transition/reload-transitionWhile-rejected.html
transitionWhile()ed reload() with a rejected promise: FAIL (Chrome: FAIL, Safari: FAIL)
/app-history/transition/reload-transitionWhile.html
transitionWhile()ed reload(): FAIL (Chrome: FAIL, Safari: FAIL)

Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e2041a99a9fa [wpt PR 30778] - App history: change navigation method return values, a=testonly https://hg.mozilla.org/integration/autoland/rev/959a67d9e37e [wpt PR 30778] - Update wpt metadata, a=testonly
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/266d80b28d44 [wpt PR 30778] - App history: change navigation method return values, a=testonly https://hg.mozilla.org/integration/autoland/rev/a1c33ddae7df [wpt PR 30778] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 95 Branch
You need to log in before you can comment on or make changes to this bug.