Closed Bug 1865927 Opened 8 months ago Closed 7 months ago

[wpt-sync] Sync PR 43295 - DOM: Introduce SubscribeOptions for Observable API

Categories

(Core :: DOM: Core & HTML, task, P4)

task

Tracking

()

RESOLVED FIXED
122 Branch
Tracking Status
firefox122 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

Dominic Farolino <dom@chromium.org> wrote:

DOM: Introduce SubscribeOptions for Observable API

This PR separates the AbortSignal from the callbacks passed into
subscribe() via the Observer dictionary, into its own dictionary,
where future options may live. This is a particularly useful ergonomic
change for chaining Observables together.

See https://github.com/WICG/observable/pull/85 and
https://github.com/WICG/observable/issues/71 for any relevant design
discussion.

R=masonf@chromium.org

Bug: 1485981
Change-Id: I9b9f9cf26cb8b7a71d2aab7811ad681386cbfd5a
Reviewed-on: https://chromium-review.googlesource.com/5046377
WPT-Export-Revision: 77bbd753dc9a808d5b1cf8c9ca5cb3056a47a465

PR 43295 applied with additional changes from upstream: d55f8950735132e1613d500b0ffe380597e1436e, 03d5b9b63f0cdc0c89f5443a53b45712ad33a552, 5505353a891869275c8da6cf52f129a2befabf33, 60999b0d9da8b6d0e7e4f7023837b71441b95646, 6bbd0ddcb078ca56533085359b4b5fa5ed36ee2f
Component: web-platform-tests → DOM: Core & HTML
Product: Testing → Core

CI Results

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

Total 2 tests and 30 subtests

Status Summary

Firefox

OK : 2
FAIL: 60

Chrome

OK : 2
PASS: 44
FAIL: 16

Safari

OK : 2
FAIL: 60

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /dom/observable/tentative/observable-constructor.any.worker.html [wpt.fyi]
    • Observable constructor: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscriber interface is not constructible: FAIL (Chrome: PASS, Safari: FAIL)
    • subscribe() can be called with no arguments: FAIL (Chrome: PASS, Safari: FAIL)
    • Observable constructor calls initializer on subscribe: FAIL (Chrome: PASS, Safari: FAIL)
    • Observable error path called synchronously: FAIL (Chrome: PASS, Safari: FAIL)
    • Observable should error if initializer throws: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription is inactive after complete(): FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription is inactive after error(): FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription is inactive when aborted signal is passed in: FAIL (Chrome: FAIL, Safari: FAIL)
    • Subscriber#signal is not the same AbortSignal as the one passed into subscribe(): FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription does not emit values after completion: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription does not emit values after error: FAIL (Chrome: PASS, Safari: FAIL)
    • Completing or nexting a subscriber after an error does nothing: FAIL (Chrome: PASS, Safari: FAIL)
    • Errors pushed to the subscriber that are not handled by the subscription are reported to the global: FAIL (Chrome: PASS, Safari: FAIL)
    • Errors thrown in the initializer that are not handled by the subscription are reported to the global: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription reports errors that are pushed after subscriber is closed by completion: FAIL (Chrome: PASS, Safari: FAIL)
    • Errors thrown by initializer function after subscriber is closed by completion are reported: FAIL (Chrome: PASS, Safari: FAIL)
    • Errors thrown by initializer function after subscriber is closed by error are reported: FAIL (Chrome: PASS, Safari: FAIL)
    • Errors pushed by initializer function after subscriber is closed by error are reported: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscriber#complete() cannot re-entrantly invoke itself: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscriber#error() cannot re-entrantly invoke itself: FAIL (Chrome: PASS, Safari: FAIL)
    • Unsubscription lifecycle: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting a subscription should stop emitting values: FAIL (Chrome: FAIL, Safari: FAIL)
    • Calling subscribe should never throw an error synchronously, initializer throws error: FAIL (Chrome: PASS, Safari: FAIL)
    • Calling subscribe should never throw an error synchronously, subscriber pushes error: FAIL (Chrome: PASS, Safari: FAIL)
    • Teardown should be called when subscription is aborted: FAIL (Chrome: FAIL, Safari: FAIL)
    • Teardowns should be called when subscription is closed by completion: FAIL (Chrome: FAIL, Safari: FAIL)
    • Teardowns should be called when subscription is closed by subscriber pushing an error: FAIL (Chrome: FAIL, Safari: FAIL)
    • Teardowns should be called when subscription is closed by subscriber throwing error: FAIL (Chrome: FAIL, Safari: FAIL)
    • Teardowns should be called synchronously during addTeardown() if the subscription is inactive: FAIL (Chrome: FAIL, Safari: FAIL)
  • /dom/observable/tentative/observable-constructor.any.html [wpt.fyi]
    • Observable constructor: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscriber interface is not constructible: FAIL (Chrome: PASS, Safari: FAIL)
    • subscribe() can be called with no arguments: FAIL (Chrome: PASS, Safari: FAIL)
    • Observable constructor calls initializer on subscribe: FAIL (Chrome: PASS, Safari: FAIL)
    • Observable error path called synchronously: FAIL (Chrome: PASS, Safari: FAIL)
    • Observable should error if initializer throws: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription is inactive after complete(): FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription is inactive after error(): FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription is inactive when aborted signal is passed in: FAIL (Chrome: FAIL, Safari: FAIL)
    • Subscriber#signal is not the same AbortSignal as the one passed into subscribe(): FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription does not emit values after completion: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription does not emit values after error: FAIL (Chrome: PASS, Safari: FAIL)
    • Completing or nexting a subscriber after an error does nothing: FAIL (Chrome: PASS, Safari: FAIL)
    • Errors pushed to the subscriber that are not handled by the subscription are reported to the global: FAIL (Chrome: PASS, Safari: FAIL)
    • Errors thrown in the initializer that are not handled by the subscription are reported to the global: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscription reports errors that are pushed after subscriber is closed by completion: FAIL (Chrome: PASS, Safari: FAIL)
    • Errors thrown by initializer function after subscriber is closed by completion are reported: FAIL (Chrome: PASS, Safari: FAIL)
    • Errors thrown by initializer function after subscriber is closed by error are reported: FAIL (Chrome: PASS, Safari: FAIL)
    • Errors pushed by initializer function after subscriber is closed by error are reported: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscriber#complete() cannot re-entrantly invoke itself: FAIL (Chrome: PASS, Safari: FAIL)
    • Subscriber#error() cannot re-entrantly invoke itself: FAIL (Chrome: PASS, Safari: FAIL)
    • Unsubscription lifecycle: FAIL (Chrome: FAIL, Safari: FAIL)
    • Aborting a subscription should stop emitting values: FAIL (Chrome: FAIL, Safari: FAIL)
    • Calling subscribe should never throw an error synchronously, initializer throws error: FAIL (Chrome: PASS, Safari: FAIL)
    • Calling subscribe should never throw an error synchronously, subscriber pushes error: FAIL (Chrome: PASS, Safari: FAIL)
    • Teardown should be called when subscription is aborted: FAIL (Chrome: FAIL, Safari: FAIL)
    • Teardowns should be called when subscription is closed by completion: FAIL (Chrome: FAIL, Safari: FAIL)
    • Teardowns should be called when subscription is closed by subscriber pushing an error: FAIL (Chrome: FAIL, Safari: FAIL)
    • Teardowns should be called when subscription is closed by subscriber throwing error: FAIL (Chrome: FAIL, Safari: FAIL)
    • Teardowns should be called synchronously during addTeardown() if the subscription is inactive: FAIL (Chrome: FAIL, Safari: FAIL)
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4e0693e5004d
[wpt PR 43295] - DOM: Introduce SubscribeOptions for Observable API, a=testonly
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2bc91571ae99
[wpt PR 43295] - DOM: Introduce SubscribeOptions for Observable API, a=testonly
Status: NEW → RESOLVED
Closed: 7 months ago
Resolution: --- → FIXED
Target Milestone: --- → 122 Branch
You need to log in before you can comment on or make changes to this bug.