[w3c/payment-handler] Remove PaymentInstruments API (PR #409)

PaymentInstruments is the Web API that backs non-JIT install of payment apps. It was designed with the assumption that the browser would store the actual payment instrument details, which has not turned out to be true, and has some privacy leaks. This patch removes the ability to register a payment handler via `paymentManager.instruments` API. Only just-in-time installation is supported from now on.

Chrome tracking bug: https://crbug.com/1327265

Chrome status: https://chromestatus.com/feature/5099285054488576


Overview of changes in the patch:
 * Remove PaymentInstruments interface.
 * Remove no longer used PaymentInstrument and ImageOjbect dictionaries.
 * Mark PaymentManager exposed only on Window (not Worker) to match the Chrome implementation.
 * Add a definition for "payer" for symmetry with "payee" definition.
 * Soften the language around the purpose for the "canmakepayment" event to match Chrome implementation, where it is being used for hasEnrolledInstrument() instead of canMakePayment() and show().
 * Add a promise to the "canmakepayment" example to reduce confusion stemmed from many examples that always unconditionally return "true".
 * Remove the unused PaymentRequestEvent.fetchedImage internal slot.
 * Raise 2nd level sections to 1st level for clarity.
You can view, comment on, or merge this pull request online at:

  https://github.com/w3c/payment-handler/pull/409


-- Commit Summary --

  * Remove PaymentInstruments API

-- File Changes --

    D app-arch.png (0)
    M index.html (648)

-- Patch Links --

https://github.com/w3c/payment-handler/pull/409.patch

https://github.com/w3c/payment-handler/pull/409.diff


-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3c/payment-handler/pull/409

You are receiving this because you are subscribed to this thread.

Message ID: <w3c/payment-handler/pull/409@github.com>

Received on Wednesday, 25 January 2023 14:21:42 UTC