Contact emailssmcgr...@chromium.org

Explainerhttps://github.com/w3c/secure-payment-confirmation/issues/267

Specificationhttps://github.com/w3c/secure-payment-confirmation/pull/281

Summary

Correct the error type thrown during WebAuthn credential creation for
'payment' credentials. Due to a historic specification mismatch, creating a
'payment' credential in a cross-origin iframe without a user activation
would throw a SecurityError instead of a NotAllowedError, which is what is
thrown for non-payment credentials. This is a breaking change, albeit a
niche one. Code that previously detected the type of error thrown (e.g., `e
instanceof SecurityError`) would be affected. Code that just generally
handles errors during credential creation (e.g. `catch (e)`) will continue
to function correctly.

Blink componentBlink>Payments
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EPayments%22>

TAG reviewN/A - this is a compat bugfix to the SPC spec and does not
require its own review.

TAG review statusN/A

Risks

Interoperability and Compatibility

There is a *very* minor risk of web compat breakage here. If code is very
specifically handling the error type thrown for the very specific outcome
of no user activation on creating a creation in a cross-origin iframe with
the payment extension, they may stop handling that correctly. That is, if
one was doing a specific `e instanceof SecurityError`, it will no longer
catch the above case. Given that code should still be handling the overall
fact that *some* error was thrown, and that creating credentials in
cross-origin iframes is incredibly rare today - nevermind specifically with
the 'payment' extension and not having a user activation - the risk seems
low enough for this to be safe.
https://chromestatus.com/metrics/feature/timeline/popularity/4758 measures
creating credentials in a cross-origin iframe. Currently at 0.000005% of
page loads.

*Gecko*: N/A Firefox does not ship SPC (
https://github.com/mozilla/standards-positions/issues/570) and thus does
not support the "payment" extension, so never had this compat issue.

*WebKit*: N/A Safari does not ship SPC (
https://github.com/WebKit/standards-positions/issues/30) and thus does not
support the "payment" extension, so never had this compat issue.

*Web developers*: Payment industry partners that are experimenting with SPC
have been informed, and none have raised any concerns.

*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?

None

Debuggability

N/A - standard devtools tools suffice.

Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, ChromeOS, Android, and Android WebView)?No - SPC/the payment
extension is not shipped on Android WebView.

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?Yes

https://wpt.fyi/results/secure-payment-confirmation/enrollment-in-iframe.sub.https.html?label=experimental&label=master&aligned
Test: "SPC enrollment in cross-origin iframe fails without user activation"

Flag name on about://flagsNone

Finch feature nameWebAuthenticationAlignErrorTypeForPaymentCredentialCreate

Non-finch justification

Note: Not planning a Finch rollout, but have a base::Feature flag for
emergency kill-switch via Finch if needed.

Rollout planWill ship enabled for all users

Requires code in //chrome?False

Tracking bughttps://issues.chromium.org/u/1/issues/41484826

Estimated milestones
Shipping on desktop 137
DevTrial on desktop 135
Shipping on Android 137
DevTrial on Android 135
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).
None

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

Links to previous Intent discussionsIntent to Prototype:
https://groups.google.com/u/1/a/chromium.org/g/blink-dev/c/X0c08UCiUGc


This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADY3MaeGOOp6eZ9Dm%3DiUm-_XCiTh0URDfRStOh9TgeuX_Yy4SA%40mail.gmail.com.

Reply via email to