Commit Graph

34 Commits

Author SHA1 Message Date
Boris Zbarsky
d54406240d Bug 1449631 part 6. Remove nsIDOMEventTarget::DispatchEvent. r=smaug
MozReview-Commit-ID: 8YMgmMwZkAL
2018-04-05 13:42:41 -04:00
Eden Chuang
b75d414065 Bug 1441709 - Support PaymentRequest.show() with an optional PaymentDetailsUpdate promise parameter. r=baku
1. Add "optional Promise<PaymentDetailsUpdate> detailsPromise" as a parameter
   of PaymentRequest.show() in PaymentRequest.webidl.
2. Let PaymentRequest inherit from PromiseNativeHandler, and implement the
   ResolvedCallback() and RejectedCallback() to handle the PaymentDetailsUpdate
   promise.
3. Update PaymentRequest.show() implementation. If PaymentDetailsUpdate Promise
   is not nullptr, the show request would not be transferred to chrome process
   immediately until the promise is resolved/rejected.
4. Update selectedShippingOption when requestShipping is true.
5. Change the PaymentMethod id validation sequence according to the spec.
2018-04-02 23:12:21 +08:00
Jonathan Guillotte-Blouin
98f1e899b8 Bug 1442078 - throw "SecurityError" if show is not triggered by user activation. r=baku
MozReview-Commit-ID: 73gP1iJAvhf
2018-03-02 16:17:45 -05:00
Henri Sivonen
4948805cd0 Bug 1436903 - Avoid passing shipping options to the front end when shipping was not requested. r=baku
MozReview-Commit-ID: FdkC02izUy6
2018-03-07 13:16:46 +02:00
Henri Sivonen
a8ffdc9a42 Bug 1435155 - Redact the shipping address as it is visible before the promise from PaymentRequest.show() resolves successfully. r=baku
Spec PR: https://github.com/w3c/payment-request/pull/654

MozReview-Commit-ID: 2AiKI7htRhk
2018-03-07 09:39:08 +02:00
Andreea Pavel
b7315fc099 Backed out changeset 8a29a154e88d (bug 1435155) for browser chrome leakchecks (APZEventState, ActiveElementManager, Array, AsyncFreeSnowWhite, AsyncLatencyLogger, ...) on a CLOSED TREE 2018-03-07 18:19:29 +02:00
Henri Sivonen
61b2644960 Bug 1435155 - Redact the shipping address as it is visible before the promise from PaymentRequest.show() resolves successfully. r=baku
Spec PR: https://github.com/w3c/payment-request/pull/654

MozReview-Commit-ID: 2AiKI7htRhk
2018-03-07 09:39:08 +02:00
Eden Chuang
25f6174579 Bug 1403079 - Add mAllowPaymentRequest and related methods on nsIDocument to check if PaymentRequest API is allowed to use. r=smaug
Add a new member mAllowPaymentRequest on nsIDocument and following related
methods,
  bool AllowPaymentRequest() const
  void SetAllowPaymentRequest(bool aAllowPaymentRequest)
mAllowPaymentRequest is used to check if PaymentRequest is allowed to use on
the document. According to the spec
  https://html.spec.whatwg.org/multipage/iframe-embed-object.html#allowed-to-use
the mAllowPaymentRequest should be true under following situations
  1. The document is the top level content document.
  2. The document is the same origin with its parent document and its parent
     document's mAllowPaymentRequest is true.
  3. The document is different origin with its parent document but its
     parent node is an iframe with allowpaymentrequest flag and the parent
     document's mAllowPaymentRquest is true.

This patch also include following mochitests
  1. test for allowpaymentrequest flag changing. The flag change effect should
     not be applied to the document immediately, it should be updated while
     the browsing context is updated.
  2. test for effect propagation in the nested iframe.
2017-10-19 15:56:51 +08:00
Andrew McCreight
2c2e9cbbbe Bug 1412125, part 2 - Fix dom/ mode lines. r=qdot
This was automatically generated by the script modeline.py.

MozReview-Commit-ID: BgulzkGteAL
2017-10-26 15:08:41 -07:00
Eden Chuang
507c8c073c Bug 1408250 - Don't expose PaymentRequest API in non-e10s. r=baku
1. PaymentRequest::PrefEnabled() returns false under non-e10s situation.
2. Add a new mochitest test_block_none10s.html to expect to get ReferenceError
   in non-e10s mode.
2017-10-20 00:10:25 +08:00
Eden Chuang
f3a1c64c67 Bug 1403080 - Return null DOMString while PaymentOptions.requestShipping is false. r=baku 2017-09-28 15:20:19 +08:00
Eden Chuang
ae09d92825 Bug 1389418 - Support payment method identifier validation in PaymentRequest API. r=baku
This patch implements payment method identifier validation algorithm
according to the spec https://w3c.github.io/payment-method-id/.

The steps to validate a payment method identifier with a string pmi are
given by the following algorithm. It returns true if the pmi is valid.

1. Let url be the result of running the basic URL parser with pmi.
2. If url is failure, validate a standardized payment method identifier with
   pmi and return the result.
3. Otherwise, validate a URL-based payment method identifier passing url and
   return the result.
2017-09-11 09:52:24 +08:00
Eden Chuang
b081e72841 Bug 1398991 - Set PaymentRequest.ShippingOption only if options.requestShipping is true. r=baku
This patch implements the following changes according to the spec change.
See https://w3c.github.io/payment-request/#constructor step 8 for more
details.

1. Return TypeError during PaymentRequest construction with duplicate
   shippingOption id.
2. Set PaymentRequest.shippingOption with the selected shippingOption only
   if options.requestShipping is true.
2017-09-15 14:19:52 +08:00
Eden Chuang
48af61efb2 Bug 1388661 - Support currency validation in PaymentRequet API. r=baku
This patch implements currency validation algorithm according to the spec
    https://w3c.github.io/payment-request/#validity-checkers.

    1. amount.currencySystem must be "urn:iso:std:iso:4217".
    2. amount.currency is valid with following criteria
       1. The currency length must be 3.
       2. The currency contains any character that must be in the range "A" to
          "Z"(U+0041 to U+005A) or the range "a" to "z"(U+0061 to U+007A).

    According to the spec, converting the currency to upper case and save it in
    nsIPaymentRequest.
2017-09-06 14:36:24 +08:00
Andrew McCreight
84ee98de3c Bug 1391005 - Eliminate NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED. r=peterv
Replace it with NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION, because it
has been the same for a while.

MozReview-Commit-ID: 5agRGFyUry1
2017-08-29 16:02:48 -07:00
Eden Chuang
dd5cf4b9ed Bug 1385187 - Reject PaymentRequest.show() with NotSupportedError DOMException if no supported method. r=baku
1. Create a new action response status PAYMENT_NOTSUPPORTED and get rid of
   unnecessary method isAccpeted() from nsIPaymentActionResponse.idl.
2. Create canMakePayment() in PaymentRequestService and run it before
   launching UI. If canMakePayment() returns false, send PAYMENT_NOTSUPPORTED
   back to content process.
3. If chrome process returns PAYMENT_NOTSUPPORTED when calling showPayment(),
   throw NotSupportedError DOMException to merchant side.
2017-08-28 11:55:59 +08:00
Eden Chuang
bada25bb4b Bug 1383293 - Add a new readonly attribute topLevelPrincipal in nsIPaymentRequest for UI support. r=baku
Getting the top level document's principal when constructing PaymentRequest,
then sending it to chrome process and saving it in nsIPaymentRequest.
Creating a new readonly attribute nsIPrincipal topLevelPrincipal in
nsIPaymentRequest for UI to query the top level document's principal
information.
2017-08-23 14:26:51 +08:00
Masatoshi Kimura
26299618f5 Bug 1389460 - Remove @deprecated nsIDOMEventTarget.DispatchDOMEvent. r=smaug
MozReview-Commit-ID: E88DZK5sfwx
2017-08-07 02:28:52 +09:00
Sebastian Hengst
80162c79f9 Backed out changeset 685802013f43 (bug 1389460) for OS X bustage at widget/cocoa/nsMenuX.mm:364: no member named 'DispatchDOMEvent' in 'nsIContent'. r=backout 2017-08-11 17:46:42 +02:00
Masatoshi Kimura
a0bcec8f88 Bug 1389460 - Remove @deprecated nsIDOMEventTarget.DispatchDOMEvent. r=smaug
MozReview-Commit-ID: E88DZK5sfwx
2017-08-07 02:28:52 +09:00
Eden Chuang
7c72413422 Bug 1375345 - Basic card payment implementation. r=baku 2017-07-26 16:07:07 +08:00
Eden Chuang
a83ff68ffd Bug 1379892 - Reject PaymentRequest.show() with AbortError DOMException if a request is showing. r=baku 2017-07-25 15:39:39 +08:00
Alphan Chen
3304c8c379 Bug 1318988 - Implement allowPaymentRequest on iframe. r=baku 2017-07-18 10:16:28 +08:00
btian
09786a50fb Bug 1379925 - Part 1: Set PaymentRequestUpdateEvent.mRequest only when event target is a PaymentRequest. r=baku
MozReview-Commit-ID: AW9SDdL2uAd
2017-07-14 14:58:27 +08:00
btian
bf01a6096d Bug 1380211 - Remove {} from generated id of payment request. r=baku
MozReview-Commit-ID: CtGHqxkk8X8
2017-07-12 09:24:07 +08:00
Jocelyn Liu
40a31d4ebc Bug 1367694 - Set payment request's shippingOption and shippingType attributes when creating it. r=baku
Per spec, given details and options parameters of PaymentRequest constructor,
1) if details.shippingOptions exists and IDs of all shipping options are unique,
   request's shippingOption will be set to the last selected option's ID.
   Otherwise, set request's shippingOption to null.
2) if options.requestShipping is ture, set request's shippingType to
   options.shippingType. Otherwise, set request's shippingType to null.
2017-07-05 15:16:43 -07:00
Eden Chuang
86c1bb3dca Bug 1318990 - PaymentRequestUpdateEvent interface and PaymentRequest API onshippingaddress/optionchange implementation. r=baku 2017-06-23 17:15:51 +08:00
Alphan Chen
9d594cddab Bug 1367669 - [PaymentRequest API] Revise the way to validate a decimal monetary value. r=baku 2017-06-21 13:23:24 +08:00
Eden Chuang
debfcdb5d0 Bug 1345365 - PaymentRequest API canMakePayment(), abort() and show() implementation. r=baku 2017-06-14 15:59:00 +08:00
Wes Kocher
36229ca0a4 Backed out 2 changesets (bug 1345365) for frequent failures in test_data.html a=backout
Backed out changeset 0ea7a5deacf6 (bug 1345365)
Backed out changeset bba1dee06769 (bug 1345365)

MozReview-Commit-ID: KURUgnesr8B
2017-06-15 00:52:04 -07:00
Eden Chuang
59358830ec Bug 1345365 - PaymentRequest API canMakePayment(), abort() and show() implementation. r=baku 2017-06-14 15:59:00 +08:00
Eden Chuang
e7ccd70419 Bug 1345361 - PaymentRequest constructor implementation. r=baku 2017-05-26 01:50:32 +08:00
Ryan VanderMeulen
30a53b5ee8 Backed out changeset 437d6df1859c (bug 1345361) for ESLint failures. 2017-05-25 18:05:15 -04:00
Eden Chuang
c8594ee38e Bug 1345361 - PaymentRequest constructor implementation. r=baku 2017-05-26 01:50:32 +08:00