From f5e1b8c63931c79cadb2bf090cf1978e0aacd1c2 Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Sun, 8 Sep 2024 02:46:23 -0700 Subject: [PATCH 1/8] Add Payment Request and Payment Handler --- features/payment-handler.yml | 33 ++++++++ features/payment-handler.yml.dist | 58 ++++++++++++++ features/payment-request.yml | 40 ++++++++++ features/payment-request.yml.dist | 121 ++++++++++++++++++++++++++++++ groups/payment.yml | 1 + 5 files changed, 253 insertions(+) create mode 100644 features/payment-handler.yml create mode 100644 features/payment-handler.yml.dist create mode 100644 features/payment-request.yml create mode 100644 features/payment-request.yml.dist create mode 100644 groups/payment.yml diff --git a/features/payment-handler.yml b/features/payment-handler.yml new file mode 100644 index 00000000000..f6e9f497274 --- /dev/null +++ b/features/payment-handler.yml @@ -0,0 +1,33 @@ +name: Payment Handler +description: The Payment Handler API provides a standardized set of functionality for web applications to directly handle payments, rather than having to be redirected to a separate site for payment handling. +group: payment +status: + compute_from: api.PaymentManager +compat_features: + - api.PaymentManager + - api.PaymentManager.enableDelegations + - api.PaymentManager.instruments + - api.PaymentManager.userHint + - api.CanMakePaymentEvent + - api.CanMakePaymentEvent.CanMakePaymentEvent + - api.CanMakePaymentEvent.methodData + - api.CanMakePaymentEvent.modifiers + - api.CanMakePaymentEvent.paymentRequestOrigin + - api.CanMakePaymentEvent.respondWith + - api.CanMakePaymentEvent.topOrigin + - api.PaymentRequestEvent + - api.PaymentRequestEvent.PaymentRequestEvent + - api.PaymentRequestEvent.changePaymentMethod + - api.PaymentRequestEvent.changeShippingAddress + - api.PaymentRequestEvent.changeShippingOption + - api.PaymentRequestEvent.instrumentKey + - api.PaymentRequestEvent.methodData + - api.PaymentRequestEvent.modifiers + - api.PaymentRequestEvent.openWindow + - api.PaymentRequestEvent.paymentOptions + - api.PaymentRequestEvent.paymentRequestId + - api.PaymentRequestEvent.paymentRequestOrigin + - api.PaymentRequestEvent.respondWith + - api.PaymentRequestEvent.shippingOptions + - api.PaymentRequestEvent.topOrigin + - api.PaymentRequestEvent.total diff --git a/features/payment-handler.yml.dist b/features/payment-handler.yml.dist new file mode 100644 index 00000000000..a114a774df1 --- /dev/null +++ b/features/payment-handler.yml.dist @@ -0,0 +1,58 @@ +# Generated from: payment-handler.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "70" + chrome_android: "70" + edge: "79" +compat_features: + # ⬇️ Same status as overall feature ⬇️ + # baseline: false + # support: + # chrome: "70" + # chrome_android: "70" + # edge: "79" + - api.CanMakePaymentEvent + - api.CanMakePaymentEvent.CanMakePaymentEvent + - api.CanMakePaymentEvent.respondWith + - api.PaymentManager + - api.PaymentManager.userHint + - api.PaymentRequestEvent + - api.PaymentRequestEvent.PaymentRequestEvent + - api.PaymentRequestEvent.methodData + - api.PaymentRequestEvent.modifiers + - api.PaymentRequestEvent.openWindow + - api.PaymentRequestEvent.paymentRequestId + - api.PaymentRequestEvent.paymentRequestOrigin + - api.PaymentRequestEvent.respondWith + - api.PaymentRequestEvent.topOrigin + - api.PaymentRequestEvent.total + + # baseline: false + # support: + # chrome: "76" + # chrome_android: "76" + # edge: "79" + - api.PaymentRequestEvent.changePaymentMethod + + # baseline: false + # support: + # chrome: "80" + # chrome_android: "80" + # edge: "80" + - api.PaymentManager.enableDelegations + - api.PaymentRequestEvent.changeShippingAddress + - api.PaymentRequestEvent.changeShippingOption + - api.PaymentRequestEvent.paymentOptions + - api.PaymentRequestEvent.shippingOptions + + # baseline: false + # support: {} + - api.CanMakePaymentEvent.methodData + - api.CanMakePaymentEvent.modifiers + - api.CanMakePaymentEvent.paymentRequestOrigin + - api.CanMakePaymentEvent.topOrigin + - api.PaymentManager.instruments + - api.PaymentRequestEvent.instrumentKey diff --git a/features/payment-request.yml b/features/payment-request.yml new file mode 100644 index 00000000000..2691dce5986 --- /dev/null +++ b/features/payment-request.yml @@ -0,0 +1,40 @@ +name: Payment Request +description: The Payment Request API allows the browser to offer a consistent and streamlined user experience while performing financial transactions. +group: payment +status: + compute_from: api.PaymentRequest +compat_features: + - api.PaymentRequest + - api.PaymentRequest.PaymentRequest + - api.PaymentRequest.PaymentRequest.secure_payment_confirmation_method + - api.PaymentRequest.abort + - api.PaymentRequest.canMakePayment + - api.PaymentRequest.id + - api.PaymentRequest.merchantvalidation_event + - api.PaymentRequest.paymentmethodchange_event + - api.PaymentRequest.shippingAddress + - api.PaymentRequest.shippingaddresschange_event + - api.PaymentRequest.shippingOption + - api.PaymentRequest.shippingoptionchange_event + - api.PaymentRequest.shippingType + - api.PaymentRequest.show + - api.PaymentMethodChangeEvent + - api.PaymentMethodChangeEvent.PaymentMethodChangeEvent + - api.PaymentMethodChangeEvent.methodDetails + - api.PaymentMethodChangeEvent.methodName + - api.PaymentRequestUpdateEvent + - api.PaymentRequestUpdateEvent.PaymentRequestUpdateEvent + - api.PaymentRequestUpdateEvent.updateWith + - api.PaymentResponse + - api.PaymentResponse.complete + - api.PaymentResponse.details + - api.PaymentResponse.methodName + - api.PaymentResponse.payerdetailchange_event + - api.PaymentResponse.payerEmail + - api.PaymentResponse.payerName + - api.PaymentResponse.payerPhone + - api.PaymentResponse.requestId + - api.PaymentResponse.retry + - api.PaymentResponse.shippingAddress + - api.PaymentResponse.shippingOption + - api.PaymentResponse.toJSON diff --git a/features/payment-request.yml.dist b/features/payment-request.yml.dist new file mode 100644 index 00000000000..a48321e6046 --- /dev/null +++ b/features/payment-request.yml.dist @@ -0,0 +1,121 @@ +# Generated from: payment-request.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "60" + chrome_android: "53" + edge: "15" + safari: "11.1" + safari_ios: "11.3" +compat_features: + # ⬇️ Same status as overall feature ⬇️ + # baseline: false + # support: + # chrome: "60" + # chrome_android: "53" + # edge: "15" + # safari: "11.1" + # safari_ios: "11.3" + - api.PaymentRequest + - api.PaymentRequest.PaymentRequest + - api.PaymentRequest.abort + - api.PaymentRequest.shippingAddress + - api.PaymentRequest.shippingOption + - api.PaymentRequest.shippingaddresschange_event + - api.PaymentRequest.shippingoptionchange_event + - api.PaymentRequest.show + - api.PaymentRequestUpdateEvent + - api.PaymentRequestUpdateEvent.PaymentRequestUpdateEvent + - api.PaymentRequestUpdateEvent.updateWith + - api.PaymentResponse + - api.PaymentResponse.complete + - api.PaymentResponse.details + - api.PaymentResponse.methodName + - api.PaymentResponse.payerEmail + - api.PaymentResponse.payerPhone + - api.PaymentResponse.shippingAddress + - api.PaymentResponse.shippingOption + + # baseline: false + # support: + # chrome: "60" + # chrome_android: "53" + # edge: "16" + # safari: "11.1" + # safari_ios: "11.3" + - api.PaymentRequest.canMakePayment + + # baseline: false + # support: + # chrome: "60" + # chrome_android: "55" + # edge: "15" + # safari: "11.1" + # safari_ios: "11.3" + - api.PaymentRequest.shippingType + - api.PaymentResponse.toJSON + + # baseline: false + # support: + # chrome: "60" + # chrome_android: "56" + # edge: "15" + # safari: "11.1" + # safari_ios: "11.3" + - api.PaymentResponse.payerName + + # baseline: false + # support: + # chrome: "60" + # chrome_android: "60" + # edge: "16" + # safari: "11.1" + # safari_ios: "11.3" + - api.PaymentRequest.id + - api.PaymentResponse.requestId + + # baseline: false + # support: + # chrome: "76" + # chrome_android: "76" + # edge: "79" + # safari: "12.1" + # safari_ios: "12.2" + - api.PaymentMethodChangeEvent + - api.PaymentMethodChangeEvent.PaymentMethodChangeEvent + - api.PaymentMethodChangeEvent.methodDetails + - api.PaymentMethodChangeEvent.methodName + - api.PaymentRequest.paymentmethodchange_event + + # baseline: false + # support: + # chrome: "78" + # chrome_android: "78" + # edge: "79" + # safari: "12.1" + # safari_ios: "11.3" + - api.PaymentResponse.retry + + # baseline: false + # support: + # chrome: "78" + # chrome_android: "78" + # edge: "79" + # safari: "12.1" + # safari_ios: "12.2" + - api.PaymentResponse.payerdetailchange_event + + # baseline: false + # support: + # chrome: "95" + # chrome_android: "95" + # edge: "95" + - api.PaymentRequest.PaymentRequest.secure_payment_confirmation_method + + # baseline: false + # support: + # safari: "11.1" + # safari_ios: "11.3" + - api.PaymentRequest.merchantvalidation_event diff --git a/groups/payment.yml b/groups/payment.yml new file mode 100644 index 00000000000..7c950a51b95 --- /dev/null +++ b/groups/payment.yml @@ -0,0 +1 @@ +name: Payment From 406305f68a99346f75c3280258cfab26fb46a184 Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Sun, 8 Sep 2024 03:05:32 -0700 Subject: [PATCH 2/8] Add spec URLs --- features/payment-handler.yml | 1 + features/payment-request.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/features/payment-handler.yml b/features/payment-handler.yml index f6e9f497274..2c6f32026cf 100644 --- a/features/payment-handler.yml +++ b/features/payment-handler.yml @@ -1,5 +1,6 @@ name: Payment Handler description: The Payment Handler API provides a standardized set of functionality for web applications to directly handle payments, rather than having to be redirected to a separate site for payment handling. +spec: https://w3c.github.io/payment-handler/ group: payment status: compute_from: api.PaymentManager diff --git a/features/payment-request.yml b/features/payment-request.yml index 2691dce5986..ad02b22ab4d 100644 --- a/features/payment-request.yml +++ b/features/payment-request.yml @@ -1,5 +1,6 @@ name: Payment Request description: The Payment Request API allows the browser to offer a consistent and streamlined user experience while performing financial transactions. +spec: https://w3c.github.io/payment-request/ group: payment status: compute_from: api.PaymentRequest From 911f4f124ad4dceca2499e66d688df167aa1c01a Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Tue, 10 Sep 2024 02:46:28 -0700 Subject: [PATCH 3/8] Apply suggestions from code review Co-authored-by: Dietrich Ayala <50103+autonome@users.noreply.github.com> --- features/payment-handler.yml | 4 ++-- features/payment-request.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/features/payment-handler.yml b/features/payment-handler.yml index 2c6f32026cf..7abe85427d3 100644 --- a/features/payment-handler.yml +++ b/features/payment-handler.yml @@ -1,5 +1,5 @@ -name: Payment Handler -description: The Payment Handler API provides a standardized set of functionality for web applications to directly handle payments, rather than having to be redirected to a separate site for payment handling. +name: Payment handler +description: The Payment Handler API lets web applications handle requests for payments directly through the browser user interface, rather than redirecting users to a separate site for payment handling. spec: https://w3c.github.io/payment-handler/ group: payment status: diff --git a/features/payment-request.yml b/features/payment-request.yml index ad02b22ab4d..440aefb5084 100644 --- a/features/payment-request.yml +++ b/features/payment-request.yml @@ -1,5 +1,5 @@ name: Payment Request -description: The Payment Request API allows the browser to offer a consistent and streamlined user experience while performing financial transactions. +description: The Payment Request API allows the browser to offer a consistent user experience for making payments. spec: https://w3c.github.io/payment-request/ group: payment status: From fed3ffe47ca2ca8bbe9d36e0b8f4d685d6156352 Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Tue, 10 Sep 2024 02:47:43 -0700 Subject: [PATCH 4/8] Payment -> payments --- features/payment-handler.yml | 2 +- features/payment-request.yml | 2 +- groups/payment.yml | 1 - groups/payments.yml | 1 + 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 groups/payment.yml create mode 100644 groups/payments.yml diff --git a/features/payment-handler.yml b/features/payment-handler.yml index 7abe85427d3..615baf61bc6 100644 --- a/features/payment-handler.yml +++ b/features/payment-handler.yml @@ -1,7 +1,7 @@ name: Payment handler description: The Payment Handler API lets web applications handle requests for payments directly through the browser user interface, rather than redirecting users to a separate site for payment handling. spec: https://w3c.github.io/payment-handler/ -group: payment +group: payments status: compute_from: api.PaymentManager compat_features: diff --git a/features/payment-request.yml b/features/payment-request.yml index 440aefb5084..12e077ceba7 100644 --- a/features/payment-request.yml +++ b/features/payment-request.yml @@ -1,7 +1,7 @@ name: Payment Request description: The Payment Request API allows the browser to offer a consistent user experience for making payments. spec: https://w3c.github.io/payment-request/ -group: payment +group: payments status: compute_from: api.PaymentRequest compat_features: diff --git a/groups/payment.yml b/groups/payment.yml deleted file mode 100644 index 7c950a51b95..00000000000 --- a/groups/payment.yml +++ /dev/null @@ -1 +0,0 @@ -name: Payment diff --git a/groups/payments.yml b/groups/payments.yml new file mode 100644 index 00000000000..68086b8ee2d --- /dev/null +++ b/groups/payments.yml @@ -0,0 +1 @@ +name: Payments From d4e9fb6f21f34a132b05b388ff3f87b9fd149a72 Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Fri, 25 Oct 2024 16:04:31 -0700 Subject: [PATCH 5/8] Add missing BCD keys --- features/payment-handler.yml | 5 +++++ features/payment-handler.yml.dist | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/features/payment-handler.yml b/features/payment-handler.yml index 615baf61bc6..6cbe4c51eb8 100644 --- a/features/payment-handler.yml +++ b/features/payment-handler.yml @@ -32,3 +32,8 @@ compat_features: - api.PaymentRequestEvent.shippingOptions - api.PaymentRequestEvent.topOrigin - api.PaymentRequestEvent.total + - api.Permissions.permission_payment-handler + - api.ServiceWorkerGlobalScope.canmakepayment_event + - api.ServiceWorkerGlobalScope.paymentrequest_event + - api.ServiceWorkerRegistration.paymentManager + - http.headers.Permissions-Policy.payment diff --git a/features/payment-handler.yml.dist b/features/payment-handler.yml.dist index a114a774df1..612a507fed5 100644 --- a/features/payment-handler.yml.dist +++ b/features/payment-handler.yml.dist @@ -8,6 +8,13 @@ status: chrome_android: "70" edge: "79" compat_features: + # baseline: false + # support: + # chrome: "66" + # chrome_android: "66" + # edge: "79" + - api.Permissions.permission_payment-handler + # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: @@ -29,6 +36,9 @@ compat_features: - api.PaymentRequestEvent.respondWith - api.PaymentRequestEvent.topOrigin - api.PaymentRequestEvent.total + - api.ServiceWorkerGlobalScope.canmakepayment_event + - api.ServiceWorkerGlobalScope.paymentrequest_event + - api.ServiceWorkerRegistration.paymentManager # baseline: false # support: @@ -48,6 +58,13 @@ compat_features: - api.PaymentRequestEvent.paymentOptions - api.PaymentRequestEvent.shippingOptions + # baseline: false + # support: + # chrome: "88" + # chrome_android: "88" + # edge: "88" + - http.headers.Permissions-Policy.payment + # baseline: false # support: {} - api.CanMakePaymentEvent.methodData From a473fdda5d1e15781ba943f4c079fa791f3c82b1 Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Mon, 28 Oct 2024 07:13:40 -0700 Subject: [PATCH 6/8] Oops --- features/payment-handler.yml | 1 - features/payment-request.yml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/features/payment-handler.yml b/features/payment-handler.yml index 6cbe4c51eb8..eeb1b267db7 100644 --- a/features/payment-handler.yml +++ b/features/payment-handler.yml @@ -36,4 +36,3 @@ compat_features: - api.ServiceWorkerGlobalScope.canmakepayment_event - api.ServiceWorkerGlobalScope.paymentrequest_event - api.ServiceWorkerRegistration.paymentManager - - http.headers.Permissions-Policy.payment diff --git a/features/payment-request.yml b/features/payment-request.yml index 12e077ceba7..d82c67a76e0 100644 --- a/features/payment-request.yml +++ b/features/payment-request.yml @@ -39,3 +39,4 @@ compat_features: - api.PaymentResponse.shippingAddress - api.PaymentResponse.shippingOption - api.PaymentResponse.toJSON + - http.headers.Permissions-Policy.payment From 4ec53b8d91d212c36661dbe1208554365c0eb8cd Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Mon, 28 Oct 2024 07:44:07 -0700 Subject: [PATCH 7/8] Re-run dist --- features/payment-handler.yml.dist | 7 ------- features/payment-request.yml.dist | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/features/payment-handler.yml.dist b/features/payment-handler.yml.dist index 612a507fed5..79411f63c9c 100644 --- a/features/payment-handler.yml.dist +++ b/features/payment-handler.yml.dist @@ -58,13 +58,6 @@ compat_features: - api.PaymentRequestEvent.paymentOptions - api.PaymentRequestEvent.shippingOptions - # baseline: false - # support: - # chrome: "88" - # chrome_android: "88" - # edge: "88" - - http.headers.Permissions-Policy.payment - # baseline: false # support: {} - api.CanMakePaymentEvent.methodData diff --git a/features/payment-request.yml.dist b/features/payment-request.yml.dist index a48321e6046..0dc0d8b48fb 100644 --- a/features/payment-request.yml.dist +++ b/features/payment-request.yml.dist @@ -107,6 +107,13 @@ compat_features: # safari_ios: "12.2" - api.PaymentResponse.payerdetailchange_event + # baseline: false + # support: + # chrome: "88" + # chrome_android: "88" + # edge: "88" + - http.headers.Permissions-Policy.payment + # baseline: false # support: # chrome: "95" From a5b9109eb90a62e734d34511ee9563781993d50a Mon Sep 17 00:00:00 2001 From: "Daniel D. Beck" Date: Thu, 31 Oct 2024 15:55:30 +0100 Subject: [PATCH 8/8] Apply suggestions from code review --- features/payment-handler.yml | 2 +- features/payment-request.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/features/payment-handler.yml b/features/payment-handler.yml index eeb1b267db7..d450ac4a703 100644 --- a/features/payment-handler.yml +++ b/features/payment-handler.yml @@ -1,5 +1,5 @@ name: Payment handler -description: The Payment Handler API lets web applications handle requests for payments directly through the browser user interface, rather than redirecting users to a separate site for payment handling. +description: The payment handler API registers a web application as a payment handler and responds to payment requests in the browser's user interface, rather than redirecting users to a separate site to complete a payment. spec: https://w3c.github.io/payment-handler/ group: payments status: diff --git a/features/payment-request.yml b/features/payment-request.yml index d82c67a76e0..876216fea58 100644 --- a/features/payment-request.yml +++ b/features/payment-request.yml @@ -1,5 +1,5 @@ -name: Payment Request -description: The Payment Request API allows the browser to offer a consistent user experience for making payments. +name: Payment request +description: The `PaymentRequest` API prompts the user to make a payment through the browser's user interface. spec: https://w3c.github.io/payment-request/ group: payments status: