LCOV - code coverage report
Current view: top level - dom/payments - PaymentRequestData.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 361 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 88 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* vim:set ts=2 sw=2 sts=2 et cindent: */
       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 "nsArrayUtils.h"
       7             : #include "nsIMutableArray.h"
       8             : #include "nsISupportsPrimitives.h"
       9             : #include "PaymentRequestData.h"
      10             : #include "PaymentRequestUtils.h"
      11             : 
      12             : namespace mozilla {
      13             : namespace dom {
      14             : namespace payments {
      15             : 
      16             : /* PaymentMethodData */
      17             : 
      18           0 : NS_IMPL_ISUPPORTS(PaymentMethodData,
      19             :                   nsIPaymentMethodData)
      20             : 
      21           0 : PaymentMethodData::PaymentMethodData(const nsAString& aSupportedMethods,
      22           0 :                                      const nsAString& aData)
      23             :   : mSupportedMethods(aSupportedMethods)
      24           0 :   , mData(aData)
      25             : {
      26           0 : }
      27             : 
      28             : nsresult
      29           0 : PaymentMethodData::Create(const IPCPaymentMethodData& aIPCMethodData,
      30             :                           nsIPaymentMethodData** aMethodData)
      31             : {
      32           0 :   NS_ENSURE_ARG_POINTER(aMethodData);
      33             :   nsCOMPtr<nsIPaymentMethodData> methodData =
      34           0 :     new PaymentMethodData(aIPCMethodData.supportedMethods(), aIPCMethodData.data());
      35           0 :   methodData.forget(aMethodData);
      36           0 :   return NS_OK;
      37             : }
      38             : 
      39             : NS_IMETHODIMP
      40           0 : PaymentMethodData::GetSupportedMethods(nsAString& aSupportedMethods)
      41             : {
      42           0 :   aSupportedMethods = mSupportedMethods;
      43           0 :   return NS_OK;
      44             : }
      45             : 
      46             : NS_IMETHODIMP
      47           0 : PaymentMethodData::GetData(nsAString& aData)
      48             : {
      49           0 :   aData = mData;
      50           0 :   return NS_OK;
      51             : }
      52             : 
      53             : /* PaymentCurrencyAmount */
      54             : 
      55           0 : NS_IMPL_ISUPPORTS(PaymentCurrencyAmount,
      56             :                   nsIPaymentCurrencyAmount)
      57             : 
      58           0 : PaymentCurrencyAmount::PaymentCurrencyAmount(const nsAString& aCurrency,
      59           0 :                                              const nsAString& aValue)
      60             :   : mCurrency(aCurrency)
      61           0 :   , mValue(aValue)
      62             : {
      63           0 : }
      64             : 
      65             : nsresult
      66           0 : PaymentCurrencyAmount::Create(const IPCPaymentCurrencyAmount& aIPCAmount,
      67             :                               nsIPaymentCurrencyAmount** aAmount)
      68             : {
      69           0 :   NS_ENSURE_ARG_POINTER(aAmount);
      70             :   nsCOMPtr<nsIPaymentCurrencyAmount> amount =
      71           0 :     new PaymentCurrencyAmount(aIPCAmount.currency(), aIPCAmount.value());
      72           0 :   amount.forget(aAmount);
      73           0 :   return NS_OK;
      74             : }
      75             : 
      76             : NS_IMETHODIMP
      77           0 : PaymentCurrencyAmount::GetCurrency(nsAString& aCurrency)
      78             : {
      79           0 :   aCurrency = mCurrency;
      80           0 :   return NS_OK;
      81             : }
      82             : 
      83             : NS_IMETHODIMP
      84           0 : PaymentCurrencyAmount::GetValue(nsAString& aValue)
      85             : {
      86           0 :   aValue = mValue;
      87           0 :   return NS_OK;
      88             : }
      89             : 
      90             : /* PaymentItem */
      91             : 
      92           0 : NS_IMPL_ISUPPORTS(PaymentItem,
      93             :                   nsIPaymentItem)
      94             : 
      95           0 : PaymentItem::PaymentItem(const nsAString& aLabel,
      96             :                          nsIPaymentCurrencyAmount* aAmount,
      97           0 :                          const bool aPending)
      98             :   : mLabel(aLabel)
      99             :   , mAmount(aAmount)
     100           0 :   , mPending(aPending)
     101             : {
     102           0 : }
     103             : 
     104             : nsresult
     105           0 : PaymentItem::Create(const IPCPaymentItem& aIPCItem, nsIPaymentItem** aItem)
     106             : {
     107           0 :   NS_ENSURE_ARG_POINTER(aItem);
     108           0 :   nsCOMPtr<nsIPaymentCurrencyAmount> amount;
     109           0 :   nsresult rv = PaymentCurrencyAmount::Create(aIPCItem.amount(),
     110           0 :                                               getter_AddRefs(amount));
     111           0 :   if (NS_WARN_IF(NS_FAILED(rv))) {
     112           0 :     return rv;
     113             :   }
     114             :   nsCOMPtr<nsIPaymentItem> item =
     115           0 :     new PaymentItem(aIPCItem.label(), amount, aIPCItem.pending());
     116           0 :   item.forget(aItem);
     117           0 :   return NS_OK;
     118             : }
     119             : 
     120             : NS_IMETHODIMP
     121           0 : PaymentItem::GetLabel(nsAString& aLabel)
     122             : {
     123           0 :   aLabel = mLabel;
     124           0 :   return NS_OK;
     125             : }
     126             : 
     127             : NS_IMETHODIMP
     128           0 : PaymentItem::GetAmount(nsIPaymentCurrencyAmount** aAmount)
     129             : {
     130           0 :   NS_ENSURE_ARG_POINTER(aAmount);
     131           0 :   MOZ_ASSERT(mAmount);
     132           0 :   nsCOMPtr<nsIPaymentCurrencyAmount> amount = mAmount;
     133           0 :   amount.forget(aAmount);
     134           0 :   return NS_OK;
     135             : }
     136             : 
     137             : NS_IMETHODIMP
     138           0 : PaymentItem::GetPending(bool* aPending)
     139             : {
     140           0 :   NS_ENSURE_ARG_POINTER(aPending);
     141           0 :   *aPending = mPending;
     142           0 :   return NS_OK;
     143             : }
     144             : 
     145             : /* PaymentDetailsModifier */
     146             : 
     147           0 : NS_IMPL_ISUPPORTS(PaymentDetailsModifier,
     148             :                   nsIPaymentDetailsModifier)
     149             : 
     150           0 : PaymentDetailsModifier::PaymentDetailsModifier(const nsAString& aSupportedMethods,
     151             :                                                nsIPaymentItem* aTotal,
     152             :                                                nsIArray* aAdditionalDisplayItems,
     153           0 :                                                const nsAString& aData)
     154             :   : mSupportedMethods(aSupportedMethods)
     155             :   , mTotal(aTotal)
     156             :   , mAdditionalDisplayItems(aAdditionalDisplayItems)
     157           0 :   , mData(aData)
     158             : {
     159           0 : }
     160             : 
     161             : nsresult
     162           0 : PaymentDetailsModifier::Create(const IPCPaymentDetailsModifier& aIPCModifier,
     163             :                                nsIPaymentDetailsModifier** aModifier)
     164             : {
     165           0 :   NS_ENSURE_ARG_POINTER(aModifier);
     166           0 :   nsCOMPtr<nsIPaymentItem> total;
     167           0 :   nsresult rv = PaymentItem::Create(aIPCModifier.total(), getter_AddRefs(total));
     168           0 :   if (NS_WARN_IF(NS_FAILED(rv))) {
     169           0 :     return rv;
     170             :   }
     171             : 
     172           0 :   nsCOMPtr<nsIArray> displayItems;
     173           0 :   if (aIPCModifier.additionalDisplayItemsPassed()) {
     174           0 :     nsCOMPtr<nsIMutableArray> items = do_CreateInstance(NS_ARRAY_CONTRACTID);
     175           0 :     MOZ_ASSERT(items);
     176           0 :     for (const IPCPaymentItem& item : aIPCModifier.additionalDisplayItems()) {
     177           0 :       nsCOMPtr<nsIPaymentItem> additionalItem;
     178           0 :       rv = PaymentItem::Create(item, getter_AddRefs(additionalItem));
     179           0 :       if (NS_WARN_IF(NS_FAILED(rv))) {
     180           0 :         return rv;
     181             :       }
     182           0 :       rv = items->AppendElement(additionalItem, false);
     183           0 :       if (NS_WARN_IF(NS_FAILED(rv))) {
     184           0 :         return rv;
     185             :       }
     186             :     }
     187           0 :     displayItems = items.forget();
     188             :   }
     189             :   nsCOMPtr<nsIPaymentDetailsModifier> modifier =
     190           0 :     new PaymentDetailsModifier(aIPCModifier.supportedMethods(),
     191             :                                total,
     192             :                                displayItems,
     193           0 :                                aIPCModifier.data());
     194           0 :   modifier.forget(aModifier);
     195           0 :   return NS_OK;
     196             : }
     197             : 
     198             : NS_IMETHODIMP
     199           0 : PaymentDetailsModifier::GetSupportedMethods(nsAString& aSupportedMethods)
     200             : {
     201           0 :   aSupportedMethods = mSupportedMethods;
     202           0 :   return NS_OK;
     203             : }
     204             : 
     205             : NS_IMETHODIMP
     206           0 : PaymentDetailsModifier::GetTotal(nsIPaymentItem** aTotal)
     207             : {
     208           0 :   NS_ENSURE_ARG_POINTER(aTotal);
     209           0 :   MOZ_ASSERT(mTotal);
     210           0 :   nsCOMPtr<nsIPaymentItem> total = mTotal;
     211           0 :   total.forget(aTotal);
     212           0 :   return NS_OK;
     213             : }
     214             : 
     215             : NS_IMETHODIMP
     216           0 : PaymentDetailsModifier::GetAdditionalDisplayItems(nsIArray** aAdditionalDisplayItems)
     217             : {
     218           0 :   NS_ENSURE_ARG_POINTER(aAdditionalDisplayItems);
     219           0 :   nsCOMPtr<nsIArray> additionalItems = mAdditionalDisplayItems;
     220           0 :   additionalItems.forget(aAdditionalDisplayItems);
     221           0 :   return NS_OK;
     222             : }
     223             : 
     224             : NS_IMETHODIMP
     225           0 : PaymentDetailsModifier::GetData(nsAString& aData)
     226             : {
     227           0 :   aData = mData;
     228           0 :   return NS_OK;
     229             : }
     230             : 
     231             : /* PaymentShippingOption */
     232             : 
     233           0 : NS_IMPL_ISUPPORTS(PaymentShippingOption,
     234             :                   nsIPaymentShippingOption)
     235             : 
     236           0 : PaymentShippingOption::PaymentShippingOption(const nsAString& aId,
     237             :                                              const nsAString& aLabel,
     238             :                                              nsIPaymentCurrencyAmount* aAmount,
     239           0 :                                              const bool aSelected)
     240             :   : mId(aId)
     241             :   , mLabel(aLabel)
     242             :   , mAmount(aAmount)
     243           0 :   , mSelected(aSelected)
     244             : {
     245           0 : }
     246             : 
     247             : nsresult
     248           0 : PaymentShippingOption::Create(const IPCPaymentShippingOption& aIPCOption,
     249             :                               nsIPaymentShippingOption** aOption)
     250             : {
     251           0 :   NS_ENSURE_ARG_POINTER(aOption);
     252           0 :   nsCOMPtr<nsIPaymentCurrencyAmount> amount;
     253           0 :   nsresult rv = PaymentCurrencyAmount::Create(aIPCOption.amount(), getter_AddRefs(amount));
     254           0 :   if (NS_WARN_IF(NS_FAILED(rv))) {
     255           0 :     return rv;
     256             :   }
     257             :   nsCOMPtr<nsIPaymentShippingOption> option =
     258           0 :     new PaymentShippingOption(aIPCOption.id(), aIPCOption.label(), amount, aIPCOption.selected());
     259           0 :   option.forget(aOption);
     260           0 :   return NS_OK;
     261             : }
     262             : 
     263             : NS_IMETHODIMP
     264           0 : PaymentShippingOption::GetId(nsAString& aId)
     265             : {
     266           0 :   aId = mId;
     267           0 :   return NS_OK;
     268             : }
     269             : 
     270             : NS_IMETHODIMP
     271           0 : PaymentShippingOption::GetLabel(nsAString& aLabel)
     272             : {
     273           0 :   aLabel = mLabel;
     274           0 :   return NS_OK;
     275             : }
     276             : 
     277             : NS_IMETHODIMP
     278           0 : PaymentShippingOption::GetAmount(nsIPaymentCurrencyAmount** aAmount)
     279             : {
     280           0 :   NS_ENSURE_ARG_POINTER(aAmount);
     281           0 :   MOZ_ASSERT(mAmount);
     282           0 :   nsCOMPtr<nsIPaymentCurrencyAmount> amount = mAmount;
     283           0 :   amount.forget(aAmount);
     284           0 :   return NS_OK;
     285             : }
     286             : 
     287             : NS_IMETHODIMP
     288           0 : PaymentShippingOption::GetSelected(bool* aSelected)
     289             : {
     290           0 :   NS_ENSURE_ARG_POINTER(aSelected);
     291           0 :   *aSelected = mSelected;
     292           0 :   return NS_OK;
     293             : }
     294             : 
     295             : NS_IMETHODIMP
     296           0 : PaymentShippingOption::SetSelected(bool aSelected)
     297             : {
     298           0 :   mSelected = aSelected;
     299           0 :   return NS_OK;
     300             : }
     301             : 
     302             : /* PaymentDetails */
     303             : 
     304           0 : NS_IMPL_ISUPPORTS(PaymentDetails,
     305             :                   nsIPaymentDetails)
     306             : 
     307           0 : PaymentDetails::PaymentDetails(const nsAString& aId,
     308             :                                nsIPaymentItem* aTotalItem,
     309             :                                nsIArray* aDisplayItems,
     310             :                                nsIArray* aShippingOptions,
     311             :                                nsIArray* aModifiers,
     312           0 :                                const nsAString& aError)
     313             :   : mId(aId)
     314             :   , mTotalItem(aTotalItem)
     315             :   , mDisplayItems(aDisplayItems)
     316             :   , mShippingOptions(aShippingOptions)
     317             :   , mModifiers(aModifiers)
     318           0 :   , mError(aError)
     319             : {
     320           0 : }
     321             : 
     322             : nsresult
     323           0 : PaymentDetails::Create(const IPCPaymentDetails& aIPCDetails,
     324             :                        nsIPaymentDetails** aDetails)
     325             : {
     326           0 :   NS_ENSURE_ARG_POINTER(aDetails);
     327             : 
     328           0 :   nsCOMPtr<nsIPaymentItem> total;
     329           0 :   nsresult rv = PaymentItem::Create(aIPCDetails.total(), getter_AddRefs(total));
     330           0 :   if (NS_WARN_IF(NS_FAILED(rv))) {
     331           0 :     return rv;
     332             :   }
     333             : 
     334           0 :   nsCOMPtr<nsIArray> displayItems;
     335           0 :   if (aIPCDetails.displayItemsPassed()) {
     336           0 :     nsCOMPtr<nsIMutableArray> items = do_CreateInstance(NS_ARRAY_CONTRACTID);
     337           0 :     MOZ_ASSERT(items);
     338           0 :     for (const IPCPaymentItem& displayItem : aIPCDetails.displayItems()) {
     339           0 :       nsCOMPtr<nsIPaymentItem> item;
     340           0 :       rv = PaymentItem::Create(displayItem, getter_AddRefs(item));
     341           0 :       if (NS_WARN_IF(NS_FAILED(rv))) {
     342           0 :         return rv;
     343             :       }
     344           0 :       rv = items->AppendElement(item, false);
     345           0 :       if (NS_WARN_IF(NS_FAILED(rv))) {
     346           0 :         return rv;
     347             :       }
     348             :     }
     349           0 :     displayItems = items.forget();
     350             :   }
     351             : 
     352           0 :   nsCOMPtr<nsIArray> shippingOptions;
     353           0 :   if (aIPCDetails.shippingOptionsPassed()) {
     354           0 :     nsCOMPtr<nsIMutableArray> options = do_CreateInstance(NS_ARRAY_CONTRACTID);
     355           0 :     MOZ_ASSERT(options);
     356           0 :     for (const IPCPaymentShippingOption& shippingOption : aIPCDetails.shippingOptions()) {
     357           0 :       nsCOMPtr<nsIPaymentShippingOption> option;
     358           0 :       rv = PaymentShippingOption::Create(shippingOption, getter_AddRefs(option));
     359           0 :       if (NS_WARN_IF(NS_FAILED(rv))) {
     360           0 :         return rv;
     361             :       }
     362           0 :       rv = options->AppendElement(option, false);
     363           0 :       if (NS_WARN_IF(NS_FAILED(rv))) {
     364           0 :         return rv;
     365             :       }
     366             :     }
     367           0 :     shippingOptions = options.forget();
     368             :   }
     369             : 
     370           0 :   nsCOMPtr<nsIArray> modifiers;
     371           0 :   if (aIPCDetails.modifiersPassed()) {
     372           0 :     nsCOMPtr<nsIMutableArray> detailsModifiers = do_CreateInstance(NS_ARRAY_CONTRACTID);
     373           0 :     MOZ_ASSERT(detailsModifiers);
     374           0 :     for (const IPCPaymentDetailsModifier& modifier : aIPCDetails.modifiers()) {
     375           0 :       nsCOMPtr<nsIPaymentDetailsModifier> detailsModifier;
     376           0 :       rv = PaymentDetailsModifier::Create(modifier, getter_AddRefs(detailsModifier));
     377           0 :       if (NS_WARN_IF(NS_FAILED(rv))) {
     378           0 :         return rv;
     379             :       }
     380           0 :       rv = detailsModifiers->AppendElement(detailsModifier, false);
     381           0 :       if (NS_WARN_IF(NS_FAILED(rv))) {
     382           0 :         return rv;
     383             :       }
     384             :     }
     385           0 :     modifiers = detailsModifiers.forget();
     386             :   }
     387             : 
     388             :   nsCOMPtr<nsIPaymentDetails> details =
     389           0 :     new PaymentDetails(aIPCDetails.id(), total, displayItems, shippingOptions,
     390           0 :                        modifiers, aIPCDetails.error());
     391             : 
     392           0 :   details.forget(aDetails);
     393           0 :   return NS_OK;
     394             : }
     395             : 
     396             : NS_IMETHODIMP
     397           0 : PaymentDetails::GetId(nsAString& aId)
     398             : {
     399           0 :   aId = mId;
     400           0 :   return NS_OK;
     401             : }
     402             : 
     403             : NS_IMETHODIMP
     404           0 : PaymentDetails::GetTotalItem(nsIPaymentItem** aTotalItem)
     405             : {
     406           0 :   NS_ENSURE_ARG_POINTER(aTotalItem);
     407           0 :   MOZ_ASSERT(mTotalItem);
     408           0 :   nsCOMPtr<nsIPaymentItem> total = mTotalItem;
     409           0 :   total.forget(aTotalItem);
     410           0 :   return NS_OK;
     411             : }
     412             : 
     413             : NS_IMETHODIMP
     414           0 : PaymentDetails::GetDisplayItems(nsIArray** aDisplayItems)
     415             : {
     416           0 :   NS_ENSURE_ARG_POINTER(aDisplayItems);
     417           0 :   nsCOMPtr<nsIArray> displayItems = mDisplayItems;
     418           0 :   displayItems.forget(aDisplayItems);
     419           0 :   return NS_OK;
     420             : }
     421             : 
     422             : NS_IMETHODIMP
     423           0 : PaymentDetails::GetShippingOptions(nsIArray** aShippingOptions)
     424             : {
     425           0 :   NS_ENSURE_ARG_POINTER(aShippingOptions);
     426           0 :   nsCOMPtr<nsIArray> options = mShippingOptions;
     427           0 :   options.forget(aShippingOptions);
     428           0 :   return NS_OK;
     429             : }
     430             : 
     431             : NS_IMETHODIMP
     432           0 : PaymentDetails::GetModifiers(nsIArray** aModifiers)
     433             : {
     434           0 :   NS_ENSURE_ARG_POINTER(aModifiers);
     435           0 :   nsCOMPtr<nsIArray> modifiers = mModifiers;
     436           0 :   modifiers.forget(aModifiers);
     437           0 :   return NS_OK;
     438             : }
     439             : 
     440             : NS_IMETHODIMP
     441           0 : PaymentDetails::GetError(nsAString& aError)
     442             : {
     443           0 :   aError = mError;
     444           0 :   return NS_OK;
     445             : }
     446             : 
     447             : NS_IMETHODIMP
     448           0 : PaymentDetails::Update(nsIPaymentDetails* aDetails)
     449             : {
     450           0 :   MOZ_ASSERT(aDetails);
     451             :   /*
     452             :    * According to the spec [1], update the attributes if they present in new
     453             :    * details (i.e., PaymentDetailsUpdate); otherwise, keep original value.
     454             :    * Note |id| comes only from initial details (i.e., PaymentDetailsInit) and
     455             :    * |error| only from new details.
     456             :    *
     457             :    *   [1] https://www.w3.org/TR/payment-request/#updatewith-method
     458             :    */
     459             : 
     460           0 :   nsresult rv = aDetails->GetTotalItem(getter_AddRefs(mTotalItem));
     461           0 :   if (NS_WARN_IF(NS_FAILED(rv))) {
     462           0 :     return rv;
     463             :   }
     464             : 
     465           0 :   nsCOMPtr<nsIArray> displayItems;
     466           0 :   rv = aDetails->GetDisplayItems(getter_AddRefs(displayItems));
     467           0 :   if (NS_WARN_IF(NS_FAILED(rv))) {
     468           0 :     return rv;
     469             :   }
     470           0 :   if (displayItems) {
     471           0 :     mDisplayItems = displayItems;
     472             :   }
     473             : 
     474           0 :   nsCOMPtr<nsIArray> shippingOptions;
     475           0 :   rv = aDetails->GetShippingOptions(getter_AddRefs(shippingOptions));
     476           0 :   if (NS_WARN_IF(NS_FAILED(rv))) {
     477           0 :     return rv;
     478             :   }
     479           0 :   if (shippingOptions) {
     480           0 :     mShippingOptions = shippingOptions;
     481             :   }
     482             : 
     483           0 :   nsCOMPtr<nsIArray> modifiers;
     484           0 :   rv = aDetails->GetModifiers(getter_AddRefs(modifiers));
     485           0 :   if (NS_WARN_IF(NS_FAILED(rv))) {
     486           0 :     return rv;
     487             :   }
     488           0 :   if (modifiers) {
     489           0 :     mModifiers = modifiers;
     490             :   }
     491             : 
     492           0 :   rv = aDetails->GetError(mError);
     493           0 :   if (NS_WARN_IF(NS_FAILED(rv))) {
     494           0 :     return rv;
     495             :   }
     496           0 :   return NS_OK;
     497             : 
     498             : }
     499             : /* PaymentOptions */
     500             : 
     501           0 : NS_IMPL_ISUPPORTS(PaymentOptions,
     502             :                   nsIPaymentOptions)
     503             : 
     504           0 : PaymentOptions::PaymentOptions(const bool aRequestPayerName,
     505             :                                const bool aRequestPayerEmail,
     506             :                                const bool aRequestPayerPhone,
     507             :                                const bool aRequestShipping,
     508           0 :                                const nsAString& aShippingType)
     509             :   : mRequestPayerName(aRequestPayerName)
     510             :   , mRequestPayerEmail(aRequestPayerEmail)
     511             :   , mRequestPayerPhone(aRequestPayerPhone)
     512             :   , mRequestShipping(aRequestShipping)
     513           0 :   , mShippingType(aShippingType)
     514             : {
     515           0 : }
     516             : 
     517             : nsresult
     518           0 : PaymentOptions::Create(const IPCPaymentOptions& aIPCOptions,
     519             :                        nsIPaymentOptions** aOptions)
     520             : {
     521           0 :   NS_ENSURE_ARG_POINTER(aOptions);
     522             : 
     523             :   nsCOMPtr<nsIPaymentOptions> options =
     524           0 :     new PaymentOptions(aIPCOptions.requestPayerName(),
     525           0 :                        aIPCOptions.requestPayerEmail(),
     526           0 :                        aIPCOptions.requestPayerPhone(),
     527           0 :                        aIPCOptions.requestShipping(),
     528           0 :                        aIPCOptions.shippingType());
     529           0 :   options.forget(aOptions);
     530           0 :   return NS_OK;
     531             : }
     532             : 
     533             : NS_IMETHODIMP
     534           0 : PaymentOptions::GetRequestPayerName(bool* aRequestPayerName)
     535             : {
     536           0 :   NS_ENSURE_ARG_POINTER(aRequestPayerName);
     537           0 :   *aRequestPayerName = mRequestPayerName;
     538           0 :   return NS_OK;
     539             : }
     540             : 
     541             : NS_IMETHODIMP
     542           0 : PaymentOptions::GetRequestPayerEmail(bool* aRequestPayerEmail)
     543             : {
     544           0 :   NS_ENSURE_ARG_POINTER(aRequestPayerEmail);
     545           0 :   *aRequestPayerEmail = mRequestPayerEmail;
     546           0 :   return NS_OK;
     547             : }
     548             : 
     549             : NS_IMETHODIMP
     550           0 : PaymentOptions::GetRequestPayerPhone(bool* aRequestPayerPhone)
     551             : {
     552           0 :   NS_ENSURE_ARG_POINTER(aRequestPayerPhone);
     553           0 :   *aRequestPayerPhone = mRequestPayerPhone;
     554           0 :   return NS_OK;
     555             : }
     556             : 
     557             : NS_IMETHODIMP
     558           0 : PaymentOptions::GetRequestShipping(bool* aRequestShipping)
     559             : {
     560           0 :   NS_ENSURE_ARG_POINTER(aRequestShipping);
     561           0 :   *aRequestShipping = mRequestShipping;
     562           0 :   return NS_OK;
     563             : }
     564             : 
     565             : NS_IMETHODIMP
     566           0 : PaymentOptions::GetShippingType(nsAString& aShippingType)
     567             : {
     568           0 :   aShippingType = mShippingType;
     569           0 :   return NS_OK;
     570             : }
     571             : 
     572             : /* PaymentReqeust */
     573             : 
     574           0 : NS_IMPL_ISUPPORTS(PaymentRequest,
     575             :                   nsIPaymentRequest)
     576             : 
     577           0 : PaymentRequest::PaymentRequest(const uint64_t aTabId,
     578             :                                const nsAString& aRequestId,
     579             :                                nsIArray* aPaymentMethods,
     580             :                                nsIPaymentDetails* aPaymentDetails,
     581           0 :                                nsIPaymentOptions* aPaymentOptions)
     582             :   : mTabId(aTabId)
     583             :   , mRequestId(aRequestId)
     584             :   , mPaymentMethods(aPaymentMethods)
     585             :   , mPaymentDetails(aPaymentDetails)
     586           0 :   , mPaymentOptions(aPaymentOptions)
     587             : {
     588           0 : }
     589             : 
     590             : NS_IMETHODIMP
     591           0 : PaymentRequest::GetTabId(uint64_t* aTabId)
     592             : {
     593           0 :   NS_ENSURE_ARG_POINTER(aTabId);
     594           0 :   *aTabId = mTabId;
     595           0 :   return NS_OK;
     596             : }
     597             : 
     598             : NS_IMETHODIMP
     599           0 : PaymentRequest::GetRequestId(nsAString& aRequestId)
     600             : {
     601           0 :   aRequestId = mRequestId;
     602           0 :   return NS_OK;
     603             : }
     604             : 
     605             : NS_IMETHODIMP
     606           0 : PaymentRequest::GetPaymentMethods(nsIArray** aPaymentMethods)
     607             : {
     608           0 :   NS_ENSURE_ARG_POINTER(aPaymentMethods);
     609           0 :   MOZ_ASSERT(mPaymentMethods);
     610           0 :   nsCOMPtr<nsIArray> methods = mPaymentMethods;
     611           0 :   methods.forget(aPaymentMethods);
     612           0 :   return NS_OK;
     613             : }
     614             : 
     615             : NS_IMETHODIMP
     616           0 : PaymentRequest::GetPaymentDetails(nsIPaymentDetails** aPaymentDetails)
     617             : {
     618           0 :   NS_ENSURE_ARG_POINTER(aPaymentDetails);
     619           0 :   MOZ_ASSERT(mPaymentDetails);
     620           0 :   nsCOMPtr<nsIPaymentDetails> details = mPaymentDetails;
     621           0 :   details.forget(aPaymentDetails);
     622           0 :   return NS_OK;
     623             : }
     624             : 
     625             : NS_IMETHODIMP
     626           0 : PaymentRequest::GetPaymentOptions(nsIPaymentOptions** aPaymentOptions)
     627             : {
     628           0 :   NS_ENSURE_ARG_POINTER(aPaymentOptions);
     629           0 :   MOZ_ASSERT(mPaymentOptions);
     630           0 :   nsCOMPtr<nsIPaymentOptions> options = mPaymentOptions;
     631           0 :   options.forget(aPaymentOptions);
     632           0 :   return NS_OK;
     633             : }
     634             : 
     635             : NS_IMETHODIMP
     636           0 : PaymentRequest::UpdatePaymentDetails(nsIPaymentDetails* aPaymentDetails)
     637             : {
     638           0 :   MOZ_ASSERT(aPaymentDetails);
     639           0 :   return mPaymentDetails->Update(aPaymentDetails);
     640             : }
     641             : 
     642             : /* PaymentAddress */
     643             : 
     644           0 : NS_IMPL_ISUPPORTS(PaymentAddress, nsIPaymentAddress)
     645             : 
     646             : NS_IMETHODIMP
     647           0 : PaymentAddress::Init(const nsAString& aCountry,
     648             :                      nsIArray* aAddressLine,
     649             :                      const nsAString& aRegion,
     650             :                      const nsAString& aCity,
     651             :                      const nsAString& aDependentLocality,
     652             :                      const nsAString& aPostalCode,
     653             :                      const nsAString& aSortingCode,
     654             :                      const nsAString& aLanguageCode,
     655             :                      const nsAString& aOrganization,
     656             :                      const nsAString& aRecipient,
     657             :                      const nsAString& aPhone)
     658             : {
     659           0 :   mCountry = aCountry;
     660           0 :   mAddressLine = aAddressLine;
     661           0 :   mRegion = aRegion;
     662           0 :   mCity = aCity;
     663           0 :   mDependentLocality = aDependentLocality;
     664           0 :   mPostalCode = aPostalCode;
     665           0 :   mSortingCode = aSortingCode;
     666           0 :   mLanguageCode = aLanguageCode;
     667           0 :   mOrganization = aOrganization;
     668           0 :   mRecipient = aRecipient;
     669           0 :   mPhone = aPhone;
     670           0 :   return NS_OK;
     671             : }
     672             : 
     673             : NS_IMETHODIMP
     674           0 : PaymentAddress::GetCountry(nsAString& aCountry)
     675             : {
     676           0 :   aCountry = mCountry;
     677           0 :   return NS_OK;
     678             : }
     679             : 
     680             : NS_IMETHODIMP
     681           0 : PaymentAddress::GetAddressLine(nsIArray** aAddressLine)
     682             : {
     683           0 :   NS_ENSURE_ARG_POINTER(aAddressLine);
     684           0 :   nsCOMPtr<nsIArray> addressLine = mAddressLine;
     685           0 :   addressLine.forget(aAddressLine);
     686           0 :   return NS_OK;
     687             : }
     688             : 
     689             : NS_IMETHODIMP
     690           0 : PaymentAddress::GetRegion(nsAString& aRegion)
     691             : {
     692           0 :   aRegion = mRegion;
     693           0 :   return NS_OK;
     694             : }
     695             : 
     696             : NS_IMETHODIMP
     697           0 : PaymentAddress::GetCity(nsAString& aCity)
     698             : {
     699           0 :   aCity = mCity;
     700           0 :   return NS_OK;
     701             : }
     702             : 
     703             : NS_IMETHODIMP
     704           0 : PaymentAddress::GetDependentLocality(nsAString& aDependentLocality)
     705             : {
     706           0 :   aDependentLocality = mDependentLocality;
     707           0 :   return NS_OK;
     708             : }
     709             : 
     710             : NS_IMETHODIMP
     711           0 : PaymentAddress::GetPostalCode(nsAString& aPostalCode)
     712             : {
     713           0 :   aPostalCode = mPostalCode;
     714           0 :   return NS_OK;
     715             : }
     716             : 
     717             : NS_IMETHODIMP
     718           0 : PaymentAddress::GetSortingCode(nsAString& aSortingCode)
     719             : {
     720           0 :   aSortingCode = mSortingCode;
     721           0 :   return NS_OK;
     722             : }
     723             : 
     724             : NS_IMETHODIMP
     725           0 : PaymentAddress::GetLanguageCode(nsAString& aLanguageCode)
     726             : {
     727           0 :   aLanguageCode = mLanguageCode;
     728           0 :   return NS_OK;
     729             : }
     730             : 
     731             : NS_IMETHODIMP
     732           0 : PaymentAddress::GetOrganization(nsAString& aOrganization)
     733             : {
     734           0 :   aOrganization = mOrganization;
     735           0 :   return NS_OK;
     736             : }
     737             : 
     738             : NS_IMETHODIMP
     739           0 : PaymentAddress::GetRecipient(nsAString& aRecipient)
     740             : {
     741           0 :   aRecipient = mRecipient;
     742           0 :   return NS_OK;
     743             : }
     744             : 
     745             : NS_IMETHODIMP
     746           0 : PaymentAddress::GetPhone(nsAString& aPhone)
     747             : {
     748           0 :   aPhone = mPhone;
     749           0 :   return NS_OK;
     750             : }
     751             : 
     752             : } // end of namespace payment
     753             : } // end of namespace dom
     754             : } // end of namespace mozilla

Generated by: LCOV version 1.13