diff --git a/index.html b/index.html index cf9ef5d7..bca0cf54 100644 --- a/index.html +++ b/index.html @@ -632,6 +632,8 @@
The {{PaymentRequest/canMakePayment()}} method can be used by the developer to determine if the user agent has support for one @@ -1375,11 +1377,30 @@
A true result from {{PaymentRequest/canMakePayment()}} does not imply that the user has a provisioned instrument ready for payment. + For that, use {{PaymentRequest/hasEnrolledInstrument()}} instead.
The {{PaymentRequest/canMakePayment()}} method MUST run the can - make payment algorithm. + make payment algorithm with |checkForInstruments| set to false. +
+ ++ The {{PaymentRequest/hasEnrolledInstrument()}} method can be used by + the developer to determine if the user agent has support for + one of the desired payment methods and if a payment + handler has an instrument ready for payment. See + [[[#canmakepayment-protections]]]. +
++ The {{PaymentRequest/hasEnrolledInstrument()}} method MUST run the + can make payment algorithm with |checkForInstruments| set to + true.
The can make payment algorithm checks if the user agent supports making payment with the payment methods - with which the {{PaymentRequest}} was constructed. + with which the {{PaymentRequest}} was constructed. It takes a boolean + argument, |checkForInstruments|, that specifies whether the algorithm + checks for existence of enrolled instruments in addition to + supporting a payment method.
This allows user agents to apply heuristics to detect and prevent abuse of the calling method for fingerprinting purposes, such as @@ -3959,9 +3985,39 @@
canMakePayment() protections
- The {{PaymentRequest/canMakePayment()}} method provides feature - detection for different payment methods. It may become a - fingerprinting vector if in the future, a large number of payment - methods are available. purposes. User agents are expected to protect - the user from abuse of the method. For example, user agents can - reduce user fingerprinting by: + The {{PaymentRequest/canMakePayment()}} and + {{PaymentRequest/hasEnrolledInstrument()}} methods have the potential + to expose user information that could be abused for fingerprinting + purposes. User agents are expected to protect the user from abuse of + the method. For example, user agents can reduce user fingerprinting + by: