WPT
wpt / web-based-payment-handler / idlharness.https.any.serviceworker.html
Spec: Web-based Payment Handler API ↗
Runs: Chrome 155.0.8039.0 (wpt@a4fcd77aa, 2026-09-03) | Firefox 157.0a1 (wpt@cc4d45aa0, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a9df8 (wpt@9b4cabf6d, 2026-09-03) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 40/70 | 10/70 | 10/70 | 0/70 | 0/70 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| idl_test setup | PASS | PASS | PASS | — | — | — |
| idl_test validation | PASS | PASS | PASS | — | — | — |
| Partial interface ServiceWorkerRegistration: original interface defined | PASS | PASS | PASS | — | — | — |
| Partial interface ServiceWorkerRegistration: member names are unique | PASS | PASS | PASS | — | — | — |
| Partial interface ServiceWorkerGlobalScope: original interface defined | PASS | PASS | PASS | — | — | — |
| Partial interface ServiceWorkerGlobalScope: member names are unique | PASS | PASS | PASS | — | — | — |
| Partial interface ServiceWorkerGlobalScope[2]: original interface defined | PASS | PASS | PASS | — | — | — |
| Partial interface ServiceWorkerGlobalScope[2]: member names are unique | PASS | PASS | PASS | — | — | — |
| WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique | PASS | PASS | PASS | — | — | — |
| PaymentManager interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| PaymentManager must be primary interface of paymentManager | FAIL | FAIL | FAIL | — | — | — |
| Stringification of paymentManager | PASS | FAIL | FAIL | — | — | — |
| PaymentManager interface: paymentManager must not have property "userHint" | FAIL | FAIL | FAIL | — | — | — |
| PaymentManager interface: paymentManager must not have property "enableDelegations" | FAIL | FAIL | FAIL | — | — | — |
| CanMakePaymentEvent interface: existence and properties of interface object | PASS | FAIL | FAIL | — | — | — |
| CanMakePaymentEvent interface object length | FAIL | FAIL | FAIL | — | — | — |
| CanMakePaymentEvent interface object name | PASS | FAIL | FAIL | — | — | — |
| CanMakePaymentEvent interface: existence and properties of interface prototype object | PASS | FAIL | FAIL | — | — | — |
| CanMakePaymentEvent interface: existence and properties of interface prototype object's "constructor" property | PASS | FAIL | FAIL | — | — | — |
| CanMakePaymentEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS | FAIL | FAIL | — | — | — |
| CanMakePaymentEvent interface: operation respondWith(Promise<boolean>) | PASS | FAIL | FAIL | — | — | — |
| CanMakePaymentEvent must be primary interface of new CanMakePaymentEvent("type") | FAIL | FAIL | FAIL | — | — | — |
| Stringification of new CanMakePaymentEvent("type") | FAIL | FAIL | FAIL | — | — | — |
| CanMakePaymentEvent interface: new CanMakePaymentEvent("type") must inherit property "respondWith(Promise<boolean>)" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| CanMakePaymentEvent interface: calling respondWith(Promise<boolean>) on new CanMakePaymentEvent("type") with too few arguments must throw TypeError | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: existence and properties of interface object | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface object length | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface object name | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: existence and properties of interface prototype object | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: existence and properties of interface prototype object's "constructor" property | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: attribute topOrigin | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: attribute paymentRequestOrigin | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: attribute paymentRequestId | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: attribute methodData | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: attribute total | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: attribute modifiers | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: attribute paymentOptions | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: attribute shippingOptions | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: operation openWindow(USVString) | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: operation changePaymentMethod(DOMString, optional object?) | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: operation changeShippingAddress(optional AddressInit) | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: operation changeShippingOption(DOMString) | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: operation respondWith(Promise<PaymentHandlerResponse>) | PASS | FAIL | FAIL | — | — | — |
| PaymentRequestEvent must be primary interface of new PaymentRequestEvent("type") | FAIL | FAIL | FAIL | — | — | — |
| Stringification of new PaymentRequestEvent("type") | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "topOrigin" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "paymentRequestOrigin" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "paymentRequestId" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "methodData" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "total" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "modifiers" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "paymentOptions" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "shippingOptions" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "openWindow(USVString)" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: calling openWindow(USVString) on new PaymentRequestEvent("type") with too few arguments must throw TypeError | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "changePaymentMethod(DOMString, optional object?)" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: calling changePaymentMethod(DOMString, optional object?) on new PaymentRequestEvent("type") with too few arguments must throw TypeError | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "changeShippingAddress(optional AddressInit)" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: calling changeShippingAddress(optional AddressInit) on new PaymentRequestEvent("type") with too few arguments must throw TypeError | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "changeShippingOption(DOMString)" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: calling changeShippingOption(DOMString) on new PaymentRequestEvent("type") with too few arguments must throw TypeError | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: new PaymentRequestEvent("type") must inherit property "respondWith(Promise<PaymentHandlerResponse>)" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| PaymentRequestEvent interface: calling respondWith(Promise<PaymentHandlerResponse>) on new PaymentRequestEvent("type") with too few arguments must throw TypeError | FAIL | FAIL | FAIL | — | — | — |
| ServiceWorkerRegistration interface: attribute paymentManager | PASS | FAIL | FAIL | — | — | — |
| ServiceWorkerRegistration interface: registration must inherit property "paymentManager" with the proper type | PASS | FAIL | FAIL | — | — | — |
| ServiceWorkerGlobalScope interface: attribute oncanmakepayment | PASS | FAIL | FAIL | — | — | — |
| ServiceWorkerGlobalScope interface: attribute onpaymentrequest | PASS | FAIL | FAIL | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "oncanmakepayment" with the proper type | PASS | FAIL | FAIL | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "onpaymentrequest" with the proper type | PASS | FAIL | FAIL | — | — | — |