Intent to Ship: Secure Payment Confirmation: Locale Validation

16 views
Skip to first unread message

Chromestatus

unread,
Oct 15, 2026, 4:08:36 PM (yesterday) Oct 15
to blin...@chromium.org, darwi...@chromium.org, smcg...@chromium.org
Contact emails
darwi...@chromium.org

Explainer
https://github.com/w3c/secure-payment-confirmation/issues/343

Specification
https://w3c.github.io/secure-payment-confirmation/#dom-securepaymentconfirmationrequest-locale

Design docs

https://github.com/w3c/secure-payment-confirmation/issues/343
https://github.com/w3c/i18n-request/issues/324
https://github.com/w3c/secure-payment-confirmation/pull/345

Summary
Updates Secure Payment Confirmation's `locale` data field to return a Not Supported DOMException if none of the language tags provided in the field match the language used by the Secure Payment Confirmation's dialog. If the field is not set or empty, this validation is skipped. This helps web developers with matching the language of the data that they are supplying to Secure Payment Confirmation with the dialog.

Blink component
Blink>Payments

Web Feature ID
secure-payment-confirmation

Motivation
This feature amends Secure Payment Confirmation so that web developers can align the language of data elements that they supply to Secure Payment Confirmation with the language used by the Secure Payment Confirmation dialog. Currently web developers can provide a list of language tags for Secure Payment Confirmation to use in their dialog. But Secure Payment Confirmation does not use this list because it is not feasible for the browser to support all languages and the Secure Payment Confirmation is a browser feature so it should use the browser language to be consistent with other browser features. By returning an error when none of the language tags provided match Secure Payment Confirmation's language, web developers are able to retry with different language tags (while updating the language of their supplied data elements) until they get a match.

Initial public proposal
https://github.com/w3c/secure-payment-confirmation/issues/343

Search tags
spc

TAG review
No information provided

TAG review status
Not applicable

Goals for experimentation
None

Risks


Interoperability and Compatibility
This feature updates the behaviour of an existing field. If the previous behaviour was implemented by other browser but this new behaviour is not, then there is an interoperability risk of the browsers behaving differently with the same request.

Gecko: N/A (https://github.com/mozilla/standards-positions/issues/570) Firefox haven't implemented SPC yet so the update to the locale field is not relevant.

WebKit: N/A (https://github.com/WebKit/standards-positions/issues/30) Safari haven't implemented SPC yet so the update to the locale field is not relevant.

Web developers: Positive (https://github.com/w3c/secure-payment-confirmation/issues/343#issuecomment-5415886806) https://www.w3.org/2026/08/13-wpwg-minutes.html https://www.w3.org/2026/09/10-wpwg-minutes.html https://www.w3.org/2026/10/08-wpwg-minutes.html

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

No information provided


Debuggability
Web developers should be able to create Secure Payment Confirmation requests with or without matching locales, thus no changes are needed in devtools.

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
No
The locale validation will only be added to platforms that support Secure Payment Confirmation which are currently only Android, macOS, and Windows.

Is this feature fully tested by web-platform-tests?
No
Web platform tests are in development. They are delayed due to the lack of support to change the browser locale language which is needed for this feature.

Flag name on about://flags
enable-spc-locale-validation

Finch feature name
SecurePaymentConfirmationLocaleValidation

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://crbug.com/535278878

Launch bug
https://launch.corp.google.com/launch/4489220

Measurement
A new SecurePaymentConfirmation.LocaleOutcome will be created and used to track the usage and outcomes (match vs no-match) of the field.

Availability expectation
The locale validation for Secure Payment Confirmation will only be available in Chromium browsers for the foreseeable future.

Estimated milestones
Shipping on desktop154
Shipping on Android154


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

https://github.com/w3c/i18n-request/issues/324 https://github.com/w3c/secure-payment-confirmation/issues/343 https://github.com/w3c/secure-payment-confirmation/pull/345

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5126146013396992?gate=4803300429004800

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a7ccbd5.dc132f77.2e13a8.0cd1.GAE%40google.com


This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages