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

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #include "QuotaRequests.h"
       8             : 
       9             : #include "ActorsChild.h"
      10             : #include "nsIQuotaCallbacks.h"
      11             : 
      12             : namespace mozilla {
      13             : namespace dom {
      14             : namespace quota {
      15             : 
      16           0 : RequestBase::RequestBase()
      17             :   : mResultCode(NS_OK)
      18           0 :   , mHaveResultOrErrorCode(false)
      19             : {
      20           0 :   AssertIsOnOwningThread();
      21           0 : }
      22             : 
      23           0 : RequestBase::RequestBase(nsIPrincipal* aPrincipal)
      24             :   : mPrincipal(aPrincipal)
      25             :   , mResultCode(NS_OK)
      26           0 :   , mHaveResultOrErrorCode(false)
      27             : {
      28           0 :   AssertIsOnOwningThread();
      29           0 : }
      30             : 
      31             : #ifdef DEBUG
      32             : 
      33             : void
      34           0 : RequestBase::AssertIsOnOwningThread() const
      35             : {
      36           0 :   NS_ASSERT_OWNINGTHREAD(RequestBase);
      37           0 : }
      38             : 
      39             : #endif // DEBUG
      40             : 
      41             : void
      42           0 : RequestBase::SetError(nsresult aRv)
      43             : {
      44           0 :   AssertIsOnOwningThread();
      45           0 :   MOZ_ASSERT(mResultCode == NS_OK);
      46           0 :   MOZ_ASSERT(!mHaveResultOrErrorCode);
      47             : 
      48           0 :   mResultCode = aRv;
      49           0 :   mHaveResultOrErrorCode = true;
      50             : 
      51           0 :   FireCallback();
      52           0 : }
      53             : 
      54           0 : NS_IMPL_CYCLE_COLLECTION_0(RequestBase)
      55             : 
      56           0 : NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(RequestBase)
      57           0 :   NS_INTERFACE_MAP_ENTRY(nsISupports)
      58           0 : NS_INTERFACE_MAP_END
      59             : 
      60           0 : NS_IMPL_CYCLE_COLLECTING_ADDREF(RequestBase)
      61           0 : NS_IMPL_CYCLE_COLLECTING_RELEASE(RequestBase)
      62             : 
      63             : NS_IMETHODIMP
      64           0 : RequestBase::GetPrincipal(nsIPrincipal** aPrincipal)
      65             : {
      66           0 :   AssertIsOnOwningThread();
      67           0 :   MOZ_ASSERT(aPrincipal);
      68             : 
      69           0 :   NS_IF_ADDREF(*aPrincipal = mPrincipal);
      70           0 :   return NS_OK;
      71             : }
      72             : 
      73             : NS_IMETHODIMP
      74           0 : RequestBase::GetResultCode(nsresult* aResultCode)
      75             : {
      76           0 :   AssertIsOnOwningThread();
      77           0 :   MOZ_ASSERT(aResultCode);
      78             : 
      79           0 :   if (!mHaveResultOrErrorCode) {
      80           0 :     return NS_ERROR_FAILURE;
      81             :   }
      82             : 
      83           0 :   *aResultCode = mResultCode;
      84           0 :   return NS_OK;
      85             : }
      86             : 
      87           0 : UsageRequest::UsageRequest(nsIQuotaUsageCallback* aCallback)
      88             :   : mCallback(aCallback)
      89             :   , mBackgroundActor(nullptr)
      90           0 :   , mCanceled(false)
      91             : {
      92           0 :   AssertIsOnOwningThread();
      93           0 :   MOZ_ASSERT(aCallback);
      94           0 : }
      95             : 
      96           0 : UsageRequest::UsageRequest(nsIPrincipal* aPrincipal,
      97           0 :                            nsIQuotaUsageCallback* aCallback)
      98             :   : RequestBase(aPrincipal)
      99             :   , mCallback(aCallback)
     100             :   , mBackgroundActor(nullptr)
     101           0 :   , mCanceled(false)
     102             : {
     103           0 :   AssertIsOnOwningThread();
     104           0 :   MOZ_ASSERT(aPrincipal);
     105           0 :   MOZ_ASSERT(aCallback);
     106           0 : }
     107             : 
     108           0 : UsageRequest::~UsageRequest()
     109             : {
     110           0 :   AssertIsOnOwningThread();
     111           0 : }
     112             : 
     113             : void
     114           0 : UsageRequest::SetBackgroundActor(QuotaUsageRequestChild* aBackgroundActor)
     115             : {
     116           0 :   AssertIsOnOwningThread();
     117           0 :   MOZ_ASSERT(aBackgroundActor);
     118           0 :   MOZ_ASSERT(!mBackgroundActor);
     119             : 
     120           0 :   mBackgroundActor = aBackgroundActor;
     121             : 
     122           0 :   if (mCanceled) {
     123           0 :     mBackgroundActor->SendCancel();
     124             :   }
     125           0 : }
     126             : 
     127             : void
     128           0 : UsageRequest::SetResult(nsIVariant* aResult)
     129             : {
     130           0 :   AssertIsOnOwningThread();
     131           0 :   MOZ_ASSERT(aResult);
     132           0 :   MOZ_ASSERT(!mHaveResultOrErrorCode);
     133             : 
     134           0 :   mResult = aResult;
     135             : 
     136           0 :   mHaveResultOrErrorCode = true;
     137             : 
     138           0 :   FireCallback();
     139           0 : }
     140             : 
     141           0 : NS_IMPL_CYCLE_COLLECTION_INHERITED(UsageRequest, RequestBase, mCallback)
     142             : 
     143           0 : NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(UsageRequest)
     144           0 :   NS_INTERFACE_MAP_ENTRY(nsIQuotaUsageRequest)
     145           0 : NS_INTERFACE_MAP_END_INHERITING(RequestBase)
     146             : 
     147           0 : NS_IMPL_ADDREF_INHERITED(UsageRequest, RequestBase)
     148           0 : NS_IMPL_RELEASE_INHERITED(UsageRequest, RequestBase)
     149             : 
     150             : NS_IMETHODIMP
     151           0 : UsageRequest::GetResult(nsIVariant** aResult)
     152             : {
     153           0 :   AssertIsOnOwningThread();
     154           0 :   MOZ_ASSERT(aResult);
     155             : 
     156           0 :   if (!mHaveResultOrErrorCode) {
     157           0 :     return NS_ERROR_FAILURE;
     158             :   }
     159             : 
     160           0 :   NS_IF_ADDREF(*aResult = mResult);
     161           0 :   return NS_OK;
     162             : }
     163             : 
     164             : NS_IMETHODIMP
     165           0 : UsageRequest::GetCallback(nsIQuotaUsageCallback** aCallback)
     166             : {
     167           0 :   AssertIsOnOwningThread();
     168           0 :   MOZ_ASSERT(aCallback);
     169             : 
     170           0 :   NS_IF_ADDREF(*aCallback = mCallback);
     171           0 :   return NS_OK;
     172             : }
     173             : 
     174             : NS_IMETHODIMP
     175           0 : UsageRequest::SetCallback(nsIQuotaUsageCallback* aCallback)
     176             : {
     177           0 :   AssertIsOnOwningThread();
     178             : 
     179           0 :   mCallback = aCallback;
     180           0 :   return NS_OK;
     181             : }
     182             : 
     183             : NS_IMETHODIMP
     184           0 : UsageRequest::Cancel()
     185             : {
     186           0 :   AssertIsOnOwningThread();
     187             : 
     188           0 :   if (mCanceled) {
     189           0 :     NS_WARNING("Canceled more than once?!");
     190           0 :     return NS_ERROR_UNEXPECTED;
     191             :   }
     192             : 
     193           0 :   if (mBackgroundActor) {
     194           0 :     mBackgroundActor->SendCancel();
     195             :   }
     196             : 
     197           0 :   mCanceled = true;
     198             : 
     199           0 :   return NS_OK;
     200             : }
     201             : 
     202             : void
     203           0 : UsageRequest::FireCallback()
     204             : {
     205           0 :   AssertIsOnOwningThread();
     206           0 :   MOZ_ASSERT(mCallback);
     207             : 
     208           0 :   mCallback->OnUsageResult(this);
     209             : 
     210             :   // Clean up.
     211           0 :   mCallback = nullptr;
     212           0 : }
     213             : 
     214           0 : Request::Request()
     215             : {
     216           0 :   AssertIsOnOwningThread();
     217           0 : }
     218             : 
     219           0 : Request::Request(nsIPrincipal* aPrincipal)
     220           0 :   : RequestBase(aPrincipal)
     221             : {
     222           0 :   AssertIsOnOwningThread();
     223           0 :   MOZ_ASSERT(aPrincipal);
     224           0 : }
     225             : 
     226           0 : Request::~Request()
     227             : {
     228           0 :   AssertIsOnOwningThread();
     229           0 : }
     230             : 
     231             : void
     232           0 : Request::SetResult(nsIVariant* aResult)
     233             : {
     234           0 :   AssertIsOnOwningThread();
     235           0 :   MOZ_ASSERT(aResult);
     236           0 :   MOZ_ASSERT(!mHaveResultOrErrorCode);
     237             : 
     238           0 :   mResult = aResult;
     239             : 
     240           0 :   mHaveResultOrErrorCode = true;
     241             : 
     242           0 :   FireCallback();
     243           0 : }
     244             : 
     245             : NS_IMETHODIMP
     246           0 : Request::GetResult(nsIVariant** aResult)
     247             : {
     248           0 :   AssertIsOnOwningThread();
     249           0 :   MOZ_ASSERT(aResult);
     250             : 
     251           0 :   if (!mHaveResultOrErrorCode) {
     252           0 :     return NS_ERROR_FAILURE;
     253             :   }
     254             : 
     255           0 :   NS_IF_ADDREF(*aResult = mResult);
     256           0 :   return NS_OK;
     257             : }
     258             : 
     259           0 : NS_IMPL_CYCLE_COLLECTION_INHERITED(Request, RequestBase, mCallback, mResult)
     260             : 
     261           0 : NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(Request)
     262           0 :   NS_INTERFACE_MAP_ENTRY(nsIQuotaRequest)
     263           0 : NS_INTERFACE_MAP_END_INHERITING(RequestBase)
     264             : 
     265           0 : NS_IMPL_ADDREF_INHERITED(mozilla::dom::quota::Request, RequestBase)
     266           0 : NS_IMPL_RELEASE_INHERITED(mozilla::dom::quota::Request, RequestBase)
     267             : 
     268             : NS_IMETHODIMP
     269           0 : Request::GetCallback(nsIQuotaCallback** aCallback)
     270             : {
     271           0 :   AssertIsOnOwningThread();
     272           0 :   MOZ_ASSERT(aCallback);
     273             : 
     274           0 :   NS_IF_ADDREF(*aCallback = mCallback);
     275           0 :   return NS_OK;
     276             : }
     277             : 
     278             : NS_IMETHODIMP
     279           0 : Request::SetCallback(nsIQuotaCallback* aCallback)
     280             : {
     281           0 :   AssertIsOnOwningThread();
     282             : 
     283           0 :   mCallback = aCallback;
     284           0 :   return NS_OK;
     285             : }
     286             : 
     287             : void
     288           0 : Request::FireCallback()
     289             : {
     290           0 :   AssertIsOnOwningThread();
     291             : 
     292           0 :   if (mCallback) {
     293           0 :     mCallback->OnComplete(this);
     294             : 
     295             :     // Clean up.
     296           0 :     mCallback = nullptr;
     297             :   }
     298           0 : }
     299             : 
     300             : } // namespace quota
     301             : } // namespace dom
     302             : } // namespace mozilla

Generated by: LCOV version 1.13