On Thu, Jun 19, 2025 at 9:07 AM Slobodan Pejic <slobo...@chromium.org>
wrote:

> Rick, thanks for taking a look.
>
>>
>>> Is this feature fully tested by web-platform-tests
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>> ?No
>>>
>>> Web platform tests depend on the availability of a software
>>> implementation. Whether software implementation of BBK would be permitted
>>> is an open issue:
>>> https://github.com/w3c/secure-payment-confirmation/issues/288.
>>>
>> Hmm, I disagree. Generally we're now in the habit of creating WPTs for
>> APIs which are backed by hardware by mocking them out in testing
>> situations, I don't think there's any reason that SPC should be different,
>> is there? For example WebUSB defines a whole testing API
>> <https://wicg.github.io/webusb/test/> for this purpose, but there are
>> other lighter weight options
>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md#tests-that-require-testing-apis>
>>  too.
>> In this case I'd imagine we might want to follow the pattern
>> <https://w3c.github.io/webauthn/#sctn-automation> used by WebAuthn which
>> is to define some webdriver commands.
>>
>
> I can follow up quickly (likely before browser bound keys ship to stable)
> with option 3 which would allow other implementations to test against, but
> would still show Chrome as not supporting browser bound keys on wpt.fyi
> since those tests run on Linux.
>
> Broadly, there are 3 options for WPT tests:
>
> 1. Model the API of hardware crypto library in the specification, then
> provide a testing API allowing the test to implement the API. Currently the
> secure payment confirmation specification does not define a model of
> hardware (unlike WebAuthn), so a large spec change would be needed before
> the matching testing api could be implemented.
>
> 2. Allow a software implementation for browser bound keys when enabled via
> a WebDriver command. The secure payment confirmation would need to be
> amended with a mode (initiated via a new WebDriver command) where the
> browser always provides the software implementation. This would allow WPT
> tests to pass on platforms where they otherwise would not, particularly
> wpt.fyi would report that Chrome does support browser bound keys (though
> this would be inaccurate for Linux on which Chrome's tests run on).
>
> 3. Let WPT tests report (correctly) that Chrome does not support browser
> bound keys on Linux. wpt.fyi would show Chrome not supporting browser bound
> keys; however, other implementations could pass the WPT tests (if those
> implementation's WPT tests run on a platform with hardware support, or
> implement browser bound keys in software). No test specific APIs are
> needed, so no need to extends WebDriver or change the secure payment
> confirmation specification.
>

This sounds right to me. It's true the feature isn't supported on linux, so
failing on wpt.fyi Chrome Linux bots (and presumably passing on Edge
Windows bots) is correct.  I believe we run WPTs on Chrome Mac and Windows
bots, so as long as those are passing in our infra then I'm happy.

So LGTM1 with a plan to get these tests landed in the next month or two.

Anything further to use virtual authenticators sounds like a nice-to-have
to me, happy to leave up to your judgement.


>
> On Wed, Jun 18, 2025 at 1:27 PM Reilly Grant <reil...@chromium.org> wrote:
>
>> Note the approach I took in WebUSB hasn't proven popular. I wouldn't
>> replicate it. WebAuthn defines WebDriver commands and that's the approach
>> we've been trying to take other APIs in as well such as Web Bluetooth and
>> Web Smart Card.
>>
>
Makes sense, thanks for sharing Reilly!

> Reilly Grant | Software Engineer | reil...@chromium.org | Google Chrome
>> <https://www.google.com/chrome>
>>
>>
>> On Tue, Jun 17, 2025 at 1:20 PM Rick Byers <rby...@chromium.org> wrote:
>>
>>> This is exciting Slobo, thank you! I think this is really important to
>>> ship in order to bring back the promise of device-binding to SPC (which was
>>> broken when WebAuthn keys became synced a few years ago). It's unfortunate
>>> that no other engines are currently interested in SPC but I remain
>>> confident that there's a path to getting more interest if we can get to the
>>> point that payments are actually easier (eg. less annoying SMS two-factor
>>> authentications) for a non-trivial number of users due to this feature.
>>>
>>> I have just one concern around WPTs, inline. Otherwise this looks ready
>>> to ship to me.
>>>
>>> On Tue, Jun 10, 2025 at 2:47 PM Chromestatus <
>>> ad...@cr-status.appspotmail.com> wrote:
>>>
>>>> Contact emails slobo...@chromium.org, smcgr...@chromium.org,
>>>> rous...@chromium.org
>>>>
>>>> Explainer https://github.com/w3c/secure-payment-confirmation/issues/271
>>>>
>>>> Specification
>>>> https://w3c.github.io/secure-payment-confirmation/#sctn-browser-bound-key-store
>>>>
>>>> Design docs
>>>> https://github.com/w3c/secure-payment-confirmation/issues/271
>>>> https://github.com/w3c/secure-payment-confirmation/pull/286
>>>> https://github.com/w3c/secure-payment-confirmation/pull/296
>>>>
>>>> Summary
>>>>
>>>> Adds an additional cryptographic signature over Secure Payment
>>>> Confirmation assertions and credential creation. The corresponding private
>>>> key is not synced across devices. This helps web developers meet
>>>> requirements for device binding for payment transactions.
>>>>
>>>>
>>>> Blink component Blink>Payments
>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EPayments%22>
>>>>
>>>> TAG review https://github.com/w3ctag/design-reviews/issues/1097
>>>>
>>>> TAG review status Pending
>>>>
>>>> Risks
>>>>
>>>>
>>>> Interoperability and Compatibility
>>>>
>>>> Browser bound keys are an additive feature for Secure Payment
>>>> Confirmation, the risk is that other browser do not implement it.
>>>>
>>>>
>>>> *Gecko*: No signal (
>>>> https://github.com/mozilla/standards-positions/issues/570) Firefox
>>>> have never finalized their view on SPC, so we updated the original SPC
>>>> issue with a note on this additional capability.
>>>>
>>>> *WebKit*: No signal (
>>>> https://github.com/WebKit/standards-positions/issues/30) Safari have
>>>> never finalized their view on SPC, so we updated the original SPC issue
>>>> with a note on this additional capability.
>>>>
>>>> *Web developers*: No signals
>>>>
>>>> *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?
>>>>
>>>>
>>>>
>>>> Debuggability
>>>>
>>>> Web developers should be able to inspect the new signature output which
>>>> is defined in WebIDL, 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
>>>>
>>>> Browser bound keys add to Secure Payment Confirmation which is
>>>> supported only on Android, Windows, and Mac.
>>>>
>>>>
>>>> Is this feature fully tested by web-platform-tests
>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>> ? No
>>>>
>>>> Web platform tests depend on the availability of a software
>>>> implementation. Whether software implementation of BBK would be permitted
>>>> is an open issue:
>>>> https://github.com/w3c/secure-payment-confirmation/issues/288.
>>>>
>>> Hmm, I disagree. Generally we're now in the habit of creating WPTs for
>>> APIs which are backed by hardware by mocking them out in testing
>>> situations, I don't think there's any reason that SPC should be different,
>>> is there? For example WebUSB defines a whole testing API
>>> <https://wicg.github.io/webusb/test/> for this purpose, but there are
>>> other lighter weight options
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md#tests-that-require-testing-apis>
>>> too. In this case I'd imagine we might want to follow the pattern
>>> <https://w3c.github.io/webauthn/#sctn-automation> used by WebAuthn
>>> which is to define some webdriver commands.
>>>
>>> Could you take a look into this space and see how difficult it might be
>>> to do something like this? In this case we're not expecting any other
>>> implementations anytime soon so I personally would be OK with not blocking
>>> shipping on landing the tests, but I would want us to plan to add tests not
>>> too long after shipping.
>>>
>>>> DevTrial instructions
>>>> https://docs.google.com/document/d/1Wgx8MQG4GsdPErGPya7iMCbhw5NiSrLrNIoDPq2_P2s/edit?usp=sharing
>>>>
>>>> Flag name on about://flags
>>>> enable-secure-payment-confirmation-browser-bound-key
>>>>
>>>> Finch feature name SecurePaymentConfirmationBrowserBoundKeys
>>>>
>>>> Rollout plan Will ship enabled for all users
>>>>
>>>> Requires code in //chrome? False
>>>>
>>>> Tracking bug https://issues.chromium.org/issues/377278827
>>>>
>>>> Measurement Browser bound keys are an additive to Secure Payment
>>>> Confirmation: The Secure Payment Confirmation UseCounter will be used.
>>>>
>>>> Availability expectation Secure Payment Confirmation (and Browser
>>>> Bound Keys) are only in Chromium browsers for the foreseeable future.
>>>>
>>>> Non-OSS dependencies
>>>>
>>>> Does the feature depend on any code or APIs outside the Chromium open
>>>> source repository and its open-source dependencies to function?
>>>> No
>>>>
>>>> Sample links
>>>> https://rsolomakhin.github.io/pr/spc-sync
>>>>
>>>> Estimated milestones
>>>> Shipping on Android 139
>>>> 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).
>>>>
>>>>
>>>> Link to entry on the Chrome Platform Status
>>>> https://chromestatus.com/feature/5106102997614592?gate=5080941065928704
>>>>
>>>> Links to previous Intent discussions Intent to Prototype:
>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68093084.170a0220.15e62e.01e5.GAE%40google.com
>>>>
>>>>
>>>> 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/68487d9f.170a0220.bdf4.01e1.GAE%40google.com
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68487d9f.170a0220.bdf4.01e1.GAE%40google.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
>>> 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/CAFUtAY8Bh68hFm%2B5WJHFh029i%3DX19885FSUJH-DrU3JX%3DqLT8w%40mail.gmail.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY8Bh68hFm%2B5WJHFh029i%3DX19885FSUJH-DrU3JX%3DqLT8w%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
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/CAFUtAY-De1qSg6nrSMEfuAP%3DGVKoABJYSgpbwSAtA%3DQRfGGaTg%40mail.gmail.com.

Reply via email to