IRC log of wpwg on 2021-04-29
Timestamps are in UTC.
- 13:40:48 [RRSAgent]
- RRSAgent has joined #wpwg
- 13:40:48 [RRSAgent]
- logging to https://www.w3.org/2021/04/29-wpwg-irc
- 13:40:54 [Ian]
- Meeting: Web Payments Working Group
- 13:41:06 [Ian]
- Agenda: https://github.com/w3c/webpayments/wiki/Agenda-20210429
- 13:41:10 [Ian]
- Chair: Nick
- 13:41:12 [Ian]
- Scribe: Ian
- 13:41:18 [Ian]
- agenda+ hasEnrolledInstrument proposal
- 13:41:40 [Ian]
- agenda+ Proposed changes to reduce scope of Payment Request API v1
- 13:46:28 [RRSAgent]
- I have made the request to generate https://www.w3.org/2021/04/29-wpwg-minutes.html Ian
- 14:00:15 [Ian]
- present+
- 14:00:19 [Ian]
- present+ Mathieu_Hofman
- 14:00:22 [Ian]
- present+ Tom_Bellenger
- 14:00:29 [Ian]
- present+ Nick_Telford-Reed
- 14:00:32 [AdrianHB]
- present+
- 14:00:42 [Ian]
- present+ Jean-Michel_Girard
- 14:00:47 [tm]
- tm has joined #wpwg
- 14:00:56 [Ian]
- present+ Bastien_Latge
- 14:01:04 [Ian]
- present+ Anne_Pouillard
- 14:01:15 [Bastien]
- Bastien has joined #WPWG
- 14:01:28 [Ian]
- present+ Gavin_Shenker
- 14:01:35 [Ian]
- present+ David_Benoit
- 14:01:36 [Bastien]
- present+
- 14:01:43 [Ian]
- present+ Jean-Luc_Di_Manno
- 14:02:15 [RRSAgent]
- I have made the request to generate https://www.w3.org/2021/04/29-wpwg-minutes.html Ian
- 14:02:22 [Gavin]
- Gavin has joined #WPWG
- 14:02:57 [Ian]
- present+ Stephen_McGruer
- 14:03:10 [jmgirard]
- jmgirard has joined #wpwg
- 14:03:44 [Ian]
- present+ Gerhard_Oosthuizen
- 14:04:00 [Ian]
- zakim, take up item 2
- 14:04:00 [Zakim]
- agendum 2 -- Proposed changes to reduce scope of Payment Request API v1 -- taken up [from Ian]
- 14:04:05 [Ian]
- present+ Vincent_Kuntz
- 14:04:14 [nicktr]
- scribenick: nicktr
- 14:04:36 [Ian]
- -> https://github.com/w3c/payment-request/pull/955 Pull request 955
- 14:04:54 [Gerhard]
- Gerhard has joined #WPWG
- 14:04:56 [nicktr]
- ian: we have a pull request that would substantially change payment request v1.0
- 14:05:14 [Gerhard]
- Present+
- 14:05:18 [nicktr]
- ...we had several things to wrap up:
- 14:05:30 [nicktr]
- ...1) oversharing address info
- 14:05:39 [nicktr]
- ...2) issues from i18n
- 14:05:55 [vkuntz]
- vkuntz has joined #wpwg
- 14:05:57 [nicktr]
- ...we are working through the latter
- 14:06:14 [vkuntz]
- present+
- 14:06:16 [nicktr]
- ...and on the former, we are proposing removing the "check out" features of payment request
- 14:06:20 [Ian]
- present+ Erhard_Brand
- 14:06:33 [nicktr]
- ...we don't think this affects the Webkit implementation
- 14:07:02 [clinton]
- clinton has joined #wpwg
- 14:07:02 [nicktr]
- ...and on the chrome implementation, we believe that the checkout features are not much used
- 14:07:46 [nicktr]
- ...This pull request (955) would push browser-stored address data communication into the payment method specific implementations
- 14:08:25 [nicktr]
- ...which would only leave a handful of strings left in payment request which would require things like "lang" and "dir"
- 14:08:46 [nicktr]
- ...We think it's a good idea as it makes the payment request specification much slimmer
- 14:09:28 [mhofman]
- mhofman has joined #wpwg
- 14:09:44 [mhofman]
- https://docs.google.com/presentation/d/1TiUEAiX4h70cz6PYMyh51DAaNBlehVVO11txET4BoJI/edit?usp=sharing
- 14:10:02 [nicktr]
- ...In practise, if there is consensus, we would merge the pull request, clear up the test suite (because we would be removing features), go back through Candidate Recommendation for the slimmer spec, then after a small pause, go through proposed recommendation
- 14:10:29 [Ian]
- present+ Clinton_Allen
- 14:10:34 [nicktr]
- ...with the hope that we would be done by the summer and then we can focus on SPC
- 14:10:36 [Ian]
- [No objections heard]
- 14:10:39 [Gerhard]
- q+
- 14:10:43 [Ian]
- ack G
- 14:11:16 [Ian]
- scribnick: Ian
- 14:11:23 [nicktr]
- Gerhard: Generally favour in removing of address from the payment request spec
- 14:11:30 [Ian]
- scribenick: Nicktr
- 14:11:35 [nicktr]
- ...removing PII is a good idea
- 14:11:51 [nicktr]
- ...I wanted to ask if this affected "Basic Card"?
- 14:12:30 [nicktr]
- ian: one of the features that was interesting was "total update" and that event remains in place in the API
- 14:12:56 [nicktr]
- ...but it's no longer based on browser stored information - so the payment handler would have to fire the event
- 14:13:32 [nicktr]
- ...we believe incremental updating is possible but this remains to be proven
- 14:13:46 [nicktr]
- ...which would allow merchants to incrementally ask for information
- 14:13:48 [Fawad]
- Fawad has joined #wpwg
- 14:14:30 [smcgruer_[EST]]
- q+ for Chrome's plans
- 14:14:36 [nicktr]
- ...However, Basic Card doesn't support incremental communication
- 14:14:41 [AdrianHB]
- q?
- 14:15:02 [nicktr]
- ...but we heard that Basic Card would be deprecated by Chrome
- 14:15:10 [Ian]
- present+ Fawad_Nisar
- 14:15:30 [nicktr]
- Gerhard: so we're saying Basic Card would be removed? No default implementation?
- 14:15:54 [nicktr]
- ian: yes, that is correct. There wouldn't be a W3C recommendation for basic card
- 14:16:34 [Ian]
- smcgruer_[EST]: Yes, it's our intention to deprecate Basic Card ,which has near 0 adoption
- 14:16:34 [nicktr]
- smcgruer_[EST]: We see almost no usage of basic card and it's our intention to deprecate
- 14:16:57 [nicktr]
- q+
- 14:17:01 [nicktr]
- ack smcgruer_[EST]
- 14:17:01 [Zakim]
- smcgruer_[EST], you wanted to discuss Chrome's plans
- 14:17:06 [Ian]
- ack nicktr
- 14:17:09 [Ian]
- scribenick: nicktr
- 14:17:21 [Ian]
- nicktr: I think that a slimmer API will be a better API.
- 14:17:30 [Ian]
- ...will help with implementations (and maintenance)
- 14:17:37 [Ian]
- ...smaller attack surface
- 14:17:39 [Ian]
- q+
- 14:17:53 [nicktr]
- ack Ian
- 14:18:17 [nicktr]
- ian: we need to merge the pull request and finish the i18n changes
- 14:18:26 [nicktr]
- ...we are also looking at modifiers
- 14:18:38 [nicktr]
- ...and we need to look at the data
- 14:18:44 [smcgruer_[EST]]
- q+
- 14:18:58 [nicktr]
- ack smcgruer_[EST]
- 14:19:16 [nicktr]
- smcgruer_[EST]: we aren't sure how well used the modifiers are
- 14:19:57 [nicktr]
- ...and we're asking the people we know to have implemented
- 14:20:25 [Ian]
- ACTION: Stephen to report back with some info on modifier usage (heuristics ok!)
- 14:20:33 [nicktr]
- q?
- 14:20:56 [nicktr]
- ian: modifiers would be a separate edit if we proceeded
- 14:21:06 [Ian]
- PROPOSED: Merge pull request 955
- 14:21:13 [nicktr]
- +1
- 14:21:14 [smcgruer_[EST]]
- +1
- 14:21:18 [Gerhard]
- +1
- 14:21:41 [AdrianHB]
- +1
- 14:21:43 [RRSAgent]
- I have made the request to generate https://www.w3.org/2021/04/29-wpwg-minutes.html nicktr
- 14:21:45 [Ian]
- SO RESOLVED
- 14:21:48 [AdrianHB]
- +100
- 14:22:00 [Ian]
- ACTION: Ian to work with editors to merge PR 955 and resolve remaining open I18N issue
- 14:22:06 [Ian]
- zakim, close item 2
- 14:22:06 [Zakim]
- agendum 2, Proposed changes to reduce scope of Payment Request API v1, closed
- 14:22:08 [Zakim]
- I see 1 item remaining on the agenda:
- 14:22:08 [Zakim]
- 1. hasEnrolledInstrument proposal [from Ian]
- 14:22:09 [Ian]
- zakim, take up item 1
- 14:22:09 [Zakim]
- agendum 1 -- hasEnrolledInstrument proposal -- taken up [from Ian]
- 14:22:30 [Ian]
- scribenick: Ian
- 14:22:41 [nicktr]
- AdrianHB: I assume we will wait for a pull request on modifiers?
- 14:22:56 [AdrianHB]
- Ian: also data from browsers on usage
- 14:22:57 [Ian]
- ACTION: Ian to work with Editors on a pull request to remove modifier; pursuant to Stephen's action
- 14:23:56 [Ian]
- Mathieu: I'd like to introduce an idea for changing enumeration of payment methods in a more privacy-preserving way. Please note I am now an Invited Expert, but worked on this idea while at Stripe.
- 14:24:08 [Ian]
- ...the idea is motivated by the experience people have had implementing PR API
- 14:24:40 [Ian]
- ...in PR API, the browser is the interop layer between merchant and user (+ instrument)
- 14:24:52 [Ian]
- ...goals for this API include low friction and also strong privacy
- 14:25:07 [Ian]
- ..the API should not leak information about who the user is, what sites they visit, etc.
- 14:25:16 [Ian]
- ...there are a few invariants and assumptions:
- 14:25:20 [Ian]
- 1) origin security policy
- 14:25:25 [JeanLuc__]
- JeanLuc__ has joined #wpwg
- 14:25:25 [Ian]
- 2) risk assessment based on data collection
- 14:25:37 [Ian]
- 3) Browsers limiting 3rd party access to cookies to prevent tracking
- 14:26:00 [Ian]
- present+ Arno_van_der_Merwe
- 14:26:20 [Ian]
- ...there are a couple of privacy considerations:
- 14:26:36 [Ian]
- - merchant or 3p should not learn about the customer unless the customer is performing a payment action
- 14:26:55 [Ian]
- - payment handler should not learn about which merchants the customer visit, unless the customer performs a payment action with an instrument managed by the handlers
- 14:27:05 [Ian]
- Threats are fingerprinting and 3p tracking
- 14:27:31 [RRSAgent]
- I have made the request to generate https://www.w3.org/2021/04/29-wpwg-minutes.html nicktr
- 14:27:42 [Ian]
- [Assumptions for customer]
- 14:27:56 [Ian]
- * may have different types of payment instruments saved with merchant or in payment app or not saved anywhere
- 14:28:11 [Ian]
- * customer may not want to save instruments in the browser (e.g., guest checkout at friend's house)
- 14:28:16 [Ian]
- [Assumptions for merchant]
- 14:28:23 [Ian]
- * merchant wants to support some of the customer's instruments
- 14:29:00 [Ian]
- * Wants to increase conversion...by offering options user likes, reducing friction, and keeping user in the experience controlled (and potentially optimized) by the merchant
- 14:29:11 [Ian]
- present+ John_Fontana
- 14:29:37 [Ian]
- ...so merchant wants to show supported payment methods without requiring a user action.
- 14:29:49 [Ian]
- ...in practice this means showing buttons for payment methods the user has that are ready to pay
- 14:30:47 [Ian]
- ...merchants may want to avoid onboarding during a transaction
- 14:31:09 [Ian]
- [Handler implementation constraints]
- 14:31:20 [Ian]
- ...need to decide which if any instruments are available to when requested
- 14:31:38 [Ian]
- ...you likely have your own proprietary logic that needs to be run at transaction time and would not be offloaded to the browser
- 14:31:55 [Ian]
- [Example of merchant integration]
- 14:32:00 [Ian]
- - show a list of branded card wallet buttons
- 14:32:06 [Ian]
- - only display a button for which user has a card ready to pay
- 14:32:23 [Ian]
- - merchant's processor integrates with 2-3 payment methods.
- 14:32:26 [Ian]
- [Current situatino]
- 14:32:37 [Ian]
- hasEnrolledInstrument() has a quota to prevent fingerprinting
- 14:32:52 [Ian]
- ...as a result, this reuiqres merchants to choose between unbranded buttons or allowing instrument onboarding in all wallets
- 14:32:57 [nicktr]
- q?
- 14:33:12 [Ian]
- ...with multiple methods behind a single click, the browser has to implement a selector ('the sheet')
- 14:33:27 [Ian]
- [PROPOSAL PART I]
- 14:33:36 [Ian]
- - introduce enumeratePayments
- 14:34:13 [Ian]
- ....similar input data, but returns a list of opaque identifiers representing "AVAILABLE" payment methods
- 14:34:31 [Ian]
- ...the merchant learns HOW MANY payment methods satisfy the constraints expressed by their input.
- 14:34:59 [Ian]
- ...the browser generates unique ids. The payment handler helps inform that information by answering "yes" or "no"
- 14:35:09 [Ian]
- [PROPOSAL PART II]
- 14:35:20 [Ian]
- ...Display. The merchant needs to display usable UI
- 14:35:41 [Ian]
- ...the merchant can display "wallet buttons" the reference the opaque identifiers returned by the browser.
- 14:36:02 [Ian]
- ...and there's some generic information to inform the presentation of the button
- 14:36:37 [Ian]
- ...through this flow, the merchant does not know which payment handler the user has selected.
- 14:36:58 [Ian]
- ...once the handler has been selected, the user has expressed consent and information can begin to be shared.
- 14:37:10 [Ian]
- WebComponent provides DOM encapsulation
- 14:37:14 [Ian]
- ...some additional requirements:
- 14:37:27 [Ian]
- a) No intrinsic size (from a CSS perspective) to shield information
- 14:37:45 [Ian]
- ....the browser needs to render these buttons on behalf of the merchant.
- 14:38:00 [Ian]
- ...reviewing how this proposal addresses privacy concerns:
- 14:38:07 [Ian]
- a) drive by website has limited info about user
- 14:38:16 [Ian]
- ..only how many compatible wallets are available
- 14:38:46 [Ian]
- ...BUT a malicious payment handler could extract information about a website.
- 14:38:52 [Ian]
- [PROPOSAL PART III]
- 14:39:02 [Ian]
- ...replace service worker implementation of payment handler with a "workout"
- 14:39:13 [Ian]
- ...grant PH only read-only access to storage
- 14:39:21 [Ian]
- ...no network access or other communication channels
- 14:39:28 [Ian]
- ...can only answer browser's invocation
- 14:39:38 [Ian]
- ...after customer makes selection, payment handler has access to normal APIs
- 14:39:41 [AdrianHB]
- q?
- 14:39:57 [Ian]
- -> https://developer.mozilla.org/en-US/docs/Web/API/Worklet Worklet
- 14:40:17 [Ian]
- -> https://caniuse.com/?search=worklet CanIUse info on Worklets
- 14:40:34 [Ian]
- ...supported in edge, firefox, chrome, opera, android, opera mobile, etc
- 14:40:42 [Ian]
- ..but not fully supported in webkit
- 14:40:53 [Ian]
- [Open Questions]
- 14:41:18 [Ian]
- * how does modal window communicate with browser? Keep SW for this only?
- 14:41:35 [Ian]
- * How do we standardized payment method presentation details? (Manifest? Worklet APIs?)
- 14:41:40 [Ian]
- * Are payment details needed at enumeration time?
- 14:42:04 [Ian]
- ...(don't know)
- 14:42:59 [Ian]
- * Merchant verification. There are handlers that don't want their buttons to be visible if the merchant is not allowed to. So how do you say "this origin is not allowed to use this wallet" without leaking information about the user?
- 14:43:27 [Ian]
- [Payment Instrument Enumeration]
- 14:43:42 [Ian]
- ...I just talked about payment methods, but could we expand this concept to INSTRUMENT enumeration?
- 14:43:54 [Ian]
- ...e.g., to allow the display of card on file?
- 14:44:02 [Ian]
- ..but raises questions about de-duplication
- 14:44:17 [nicktr]
- q+ to ask about merchants displaying unsupported payment methods
- 14:44:20 [Ian]
- ack nicktr
- 14:44:20 [Zakim]
- nicktr, you wanted to ask about merchants displaying unsupported payment methods
- 14:44:31 [AdrianHB]
- q?
- 14:44:49 [Ian]
- nicktr: One use case you raised is "merchant only wants to display pay buttons for things that are supported"
- 14:45:17 [Ian]
- ...with this proposal, the browser displays in its own interface..but I don't think this solves for the merchant showing buttons not supported by PR API.
- 14:45:29 [Ian]
- mathieu: Let's say there are two wallets integrated with PR API, and another not integrated.
- 14:46:00 [Ian]
- ...the enumeration would return 2 opaque APIs and the page would include 2 enumeration buttons. And before or after that, they would display the non-PR API button
- 14:46:05 [Fawad_]
- Fawad_ has joined #wpwg
- 14:46:37 [Ian]
- nicktr: How does the merchant de-dup them?
- 14:46:50 [Ian]
- mathieu: I would suppose the merchant would only enumerate wallets they want to support through PR API.
- 14:47:26 [Ian]
- nicktr: Edge case is "supported through PR API but the user doesn't have support for them in browser"
- 14:47:36 [Ian]
- AdrianHB: The payment method could have an option "we support enrollment flows"
- 14:47:48 [Ian]
- ..then it's up to the merchant to decide whether to accept the user enrolling during the transaction
- 14:48:34 [Ian]
- q?
- 14:49:09 [Ian]
- nicktr: Would wallets always want to be shown?
- 14:49:36 [Ian]
- AdrianHB: I hear from some wallet providers that in practice they would not always want to be shown for enrollment; don't want risk of bad UX
- 14:49:38 [nicktr]
- q?
- 14:49:51 [Ian]
- mathieu: handlers can also lie today about whether they have enrolled instruments
- 14:50:28 [Ian]
- AdrianHB: There is some precent here about how hardware is made discoverable ... e.g., webrtc needs to know what hardware you have.
- 14:50:39 [RRSAgent]
- I have made the request to generate https://www.w3.org/2021/04/29-wpwg-minutes.html nicktr
- 14:50:49 [Ian]
- ...they get an opaque enumeration not a concrete list of devices.
- 14:50:56 [Ian]
- mathieu: This proposal is based on the WebRTC work
- 14:51:09 [smcgruer_[EST]]
- q+ naive question about specificity of method types
- 14:51:12 [Ian]
- q+
- 14:51:34 [nicktr]
- q+ smcgruer_[EST] to ask a naive question about specificity of method types
- 14:51:38 [nicktr]
- ack smcgruer_[EST]
- 14:51:39 [Zakim]
- smcgruer_[EST], you wanted to ask a naive question about specificity of method types
- 14:51:50 [Ian]
- smcgruer_[EST]: How many buttons would a merchant typically want to show? and how specific are the method types?
- 14:52:35 [Ian]
- ...are we really hiding information?
- 14:53:04 [Ian]
- mathieu: In the future when there are more wallets than just two, it becomes more important
- 14:53:44 [Ian]
- smcgruer_[EST]: I think this is a good direction for this proposal
- 14:54:17 [nicktr]
- ian: can you say more about the display of the buttons? They are presumably not in the DOM and the merchant is not learning about them?
- 14:54:38 [Ian]
- mathieu: It's similar to how some wallets tell you to display their buttons
- 14:55:27 [Ian]
- ...WebComponents shields the details...the merchant cannot probe the details, but can still learn about the display (e.g., size, color) and so some work has to be done to shield displayed information
- 14:55:55 [Ian]
- ...iframe could be a mechanism to shield information.
- 14:57:02 [Ian]
- IJ: Do WebComponents do the right thing already today?
- 14:57:12 [Ian]
- mathieu: Shadow DOM does the shielding work
- 14:57:36 [Ian]
- ...this was used by video player to render controls
- 14:57:40 [Ian]
- ...shadow root is what you're talking about
- 14:57:47 [Ian]
- q?
- 14:57:49 [Ian]
- ack me
- 14:58:02 [Ian]
- Ian: Next steps?
- 14:58:33 [Ian]
- Mathieu: I won't have many more chances to champion this. I've presented this to a few people; Google has been evaluating the proposal.
- 14:58:50 [Ian]
- ...I have a document with some additional details.
- 14:59:04 [Ian]
- ACTION: Mathieu to share document on this proposal publicly or let us know that's not possible
- 14:59:38 [Ian]
- Topic: Next meeting
- 14:59:40 [Ian]
- 13 May
- 14:59:45 [RRSAgent]
- I have made the request to generate https://www.w3.org/2021/04/29-wpwg-minutes.html Ian
- 14:59:52 [Ian]
- RRSAGENT, set logs public
- 14:59:53 [Bastien]
- Bastien has left #wpwg
- 15:00:00 [tm]
- tm has left #wpwg
- 15:00:16 [Ian]
- rrsagent, bye
- 15:00:16 [RRSAgent]
- I see 4 open action items saved in https://www.w3.org/2021/04/29-wpwg-actions.rdf :
- 15:00:16 [RRSAgent]
- ACTION: Stephen to report back with some info on modifier usage (heuristics ok!) [1]
- 15:00:16 [RRSAgent]
- recorded in https://www.w3.org/2021/04/29-wpwg-irc#T14-20-25
- 15:00:16 [RRSAgent]
- ACTION: Ian to work with editors to merge PR 955 and resolve remaining open I18N issue [2]
- 15:00:16 [RRSAgent]
- recorded in https://www.w3.org/2021/04/29-wpwg-irc#T14-22-00
- 15:00:16 [RRSAgent]
- ACTION: Ian to work with Editors on a pull request to remove modifier; pursuant to Stephen's action [3]
- 15:00:16 [RRSAgent]
- recorded in https://www.w3.org/2021/04/29-wpwg-irc#T14-22-57
- 15:00:16 [RRSAgent]
- ACTION: Mathieu to share document on this proposal publicly or let us know that's not possible [4]
- 15:00:16 [RRSAgent]
- recorded in https://www.w3.org/2021/04/29-wpwg-irc#T14-59-04
- 15:00:18 [Ian]
- zakim, bye
- 15:00:18 [Zakim]
- leaving. As of this point the attendees have been Ian, Mathieu_Hofman, Tom_Bellenger, Nick_Telford-Reed, AdrianHB, Jean-Michel_Girard, Bastien_Latge, Anne_Pouillard,
- 15:00:18 [Zakim]
- Zakim has left #wpwg