tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

nsIPaymentUIService.idl (3515B)


      1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 #include "nsISupports.idl"
      7 #include "nsIPaymentActionResponse.idl"
      8 
      9 /**
     10 * nsIPaymentUIService is the interface used by Gecko to communicate with the
     11 * payment UI.
     12 * In general, the implementation of this interface should be a service that
     13 * manages all payment UI components and receives the requested payment actions
     14 * from Gecko and perform the corresponding UI behavior.
     15 */
     16 [scriptable, uuid(01f8bd55-9017-438b-85ec-7c15d2b35cdc)]
     17 interface nsIPaymentUIService : nsISupports
     18 {
     19  /**
     20   *  Show the payment UI to users.
     21   *  The implementation gets the payment data through nsIPaymentRequestService
     22   *  by the passed in requestId, then shows the payment UI and start to interact
     23   *  with users.
     24   *  According to user's action, nsIPaymentRequestService's APIs respondPayment,
     25   *  changeShippingAddress, or changeShippingOtpion is possible to called in the
     26   *  implementation.
     27   *  @param requestId - the request identify of the payment request.
     28   *                     Notice that this requestId is an internal request Id
     29   *                     generated by Gecko
     30   */
     31  void showPayment(in AString requestId);
     32 
     33  /**
     34   *  Abort the payment.
     35   *  The implementation must abort and close the showing payment UI then call
     36   *  nsIPaymentRequestService respondPayment with nsIPaymentAbortActionResponse
     37   *  to inform Gecko of the abort status.
     38   *  @param requestId - the request identify of the payment request.
     39   *                     Notice that this requestId is an internal request Id
     40   *                     generated by Gecko
     41   */
     42  void abortPayment(in AString requestId);
     43 
     44  /**
     45   *  Complete the payment.
     46   *  The implementation should close the showing payment UI, then call
     47   *  nsIPaymentRequestService respondPayment with nsIPaymentCompleteActionResponse
     48   *  to inform Gecko of the complete status.
     49   *  @param requestId - the request identify of the payment request.
     50   *                     Notice that this requestId is an internal request Id
     51   *                     generated by Gecko
     52   */
     53  void completePayment(in AString requestId);
     54 
     55  /**
     56   *  Update the payment data in the payment UI.
     57   *  The implementation should get the updated payment data through the
     58   *  nsIPaymentRequestService again, and update the UI.
     59   *  @param requestId - the request identify of the payment request.
     60   *                     Notice that this requestId is an internal request Id
     61   *                     generated by Gecko
     62   */
     63  void updatePayment(in AString requestId);
     64 
     65  /**
     66   *  Close the payment UI for the specified PaymentRequest.
     67   *  The implementation should clean up the PaymentRequest data saved in the UI
     68   *  component and close the UI if the specified PaymentRequest is showing to
     69   *  the user.
     70   *  Notice when the method is called, that means the PaymentRequest is invalid
     71   *  in nsIPaymentRequestService.
     72   *  @param requestId - the request identify of the payment request.
     73   *                     Notice that this requestId is an internal request Id
     74   *                     generated by Gecko
     75   */
     76  void closePayment(in AString requestId);
     77 
     78 };
     79 
     80 %{C++
     81 #define NS_PAYMENT_UI_SERVICE_CONTRACT_ID \
     82  "@mozilla.org/dom/payments/payment-ui-service;1"
     83 %}