forked from mirrors/gecko-dev
		
	 fde06f6d21
			
		
	
	
		fde06f6d21
		
	
	
	
	
		
			
			Also add some missing namespace qualifications
Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')
Differential Revision: https://phabricator.services.mozilla.com/D95456
		
	
			
		
			
				
	
	
		
			288 lines
		
	
	
	
		
			6.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			288 lines
		
	
	
	
		
			6.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | |
| /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 | |
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| #include "QuotaRequests.h"
 | |
| 
 | |
| // Local includes
 | |
| #include "ActorsChild.h"
 | |
| 
 | |
| // Global includes
 | |
| #include "mozilla/ErrorNames.h"
 | |
| #include "mozilla/MacroForEach.h"
 | |
| #include "nsDebug.h"
 | |
| #include "nsIQuotaCallbacks.h"
 | |
| #include "nsISupportsUtils.h"
 | |
| #include "nsIVariant.h"
 | |
| #include "nsStringFwd.h"
 | |
| #include "nscore.h"
 | |
| 
 | |
| namespace mozilla {
 | |
| class Runnable;
 | |
| }
 | |
| 
 | |
| namespace mozilla::dom::quota {
 | |
| 
 | |
| RequestBase::RequestBase() : mResultCode(NS_OK), mHaveResultOrErrorCode(false) {
 | |
|   AssertIsOnOwningThread();
 | |
| }
 | |
| 
 | |
| RequestBase::RequestBase(nsIPrincipal* aPrincipal)
 | |
|     : mPrincipal(aPrincipal),
 | |
|       mResultCode(NS_OK),
 | |
|       mHaveResultOrErrorCode(false) {
 | |
|   AssertIsOnOwningThread();
 | |
| }
 | |
| 
 | |
| #ifdef DEBUG
 | |
| 
 | |
| void RequestBase::AssertIsOnOwningThread() const {
 | |
|   NS_ASSERT_OWNINGTHREAD(RequestBase);
 | |
| }
 | |
| 
 | |
| #endif  // DEBUG
 | |
| 
 | |
| void RequestBase::SetError(nsresult aRv) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(mResultCode == NS_OK);
 | |
|   MOZ_ASSERT(!mHaveResultOrErrorCode);
 | |
| 
 | |
|   mResultCode = aRv;
 | |
|   mHaveResultOrErrorCode = true;
 | |
| 
 | |
|   FireCallback();
 | |
| }
 | |
| 
 | |
| NS_IMPL_CYCLE_COLLECTION_0(RequestBase)
 | |
| 
 | |
| NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(RequestBase)
 | |
|   NS_INTERFACE_MAP_ENTRY(nsISupports)
 | |
| NS_INTERFACE_MAP_END
 | |
| 
 | |
| NS_IMPL_CYCLE_COLLECTING_ADDREF(RequestBase)
 | |
| NS_IMPL_CYCLE_COLLECTING_RELEASE(RequestBase)
 | |
| 
 | |
| NS_IMETHODIMP
 | |
| RequestBase::GetPrincipal(nsIPrincipal** aPrincipal) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aPrincipal);
 | |
| 
 | |
|   NS_IF_ADDREF(*aPrincipal = mPrincipal);
 | |
|   return NS_OK;
 | |
| }
 | |
| 
 | |
| NS_IMETHODIMP
 | |
| RequestBase::GetResultCode(nsresult* aResultCode) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aResultCode);
 | |
| 
 | |
|   if (!mHaveResultOrErrorCode) {
 | |
|     return NS_ERROR_FAILURE;
 | |
|   }
 | |
| 
 | |
|   *aResultCode = mResultCode;
 | |
|   return NS_OK;
 | |
| }
 | |
| 
 | |
| NS_IMETHODIMP
 | |
| RequestBase::GetResultName(nsACString& aResultName) {
 | |
|   AssertIsOnOwningThread();
 | |
| 
 | |
|   if (!mHaveResultOrErrorCode) {
 | |
|     return NS_ERROR_FAILURE;
 | |
|   }
 | |
| 
 | |
|   mozilla::GetErrorName(mResultCode, aResultName);
 | |
|   return NS_OK;
 | |
| }
 | |
| 
 | |
| UsageRequest::UsageRequest(nsIQuotaUsageCallback* aCallback)
 | |
|     : mCallback(aCallback), mBackgroundActor(nullptr), mCanceled(false) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aCallback);
 | |
| }
 | |
| 
 | |
| UsageRequest::UsageRequest(nsIPrincipal* aPrincipal,
 | |
|                            nsIQuotaUsageCallback* aCallback)
 | |
|     : RequestBase(aPrincipal),
 | |
|       mCallback(aCallback),
 | |
|       mBackgroundActor(nullptr),
 | |
|       mCanceled(false) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aPrincipal);
 | |
|   MOZ_ASSERT(aCallback);
 | |
| }
 | |
| 
 | |
| UsageRequest::~UsageRequest() { AssertIsOnOwningThread(); }
 | |
| 
 | |
| void UsageRequest::SetBackgroundActor(
 | |
|     QuotaUsageRequestChild* aBackgroundActor) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aBackgroundActor);
 | |
|   MOZ_ASSERT(!mBackgroundActor);
 | |
| 
 | |
|   mBackgroundActor = aBackgroundActor;
 | |
| 
 | |
|   if (mCanceled) {
 | |
|     mBackgroundActor->SendCancel();
 | |
|   }
 | |
| }
 | |
| 
 | |
| void UsageRequest::SetResult(nsIVariant* aResult) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aResult);
 | |
|   MOZ_ASSERT(!mHaveResultOrErrorCode);
 | |
| 
 | |
|   mResult = aResult;
 | |
| 
 | |
|   mHaveResultOrErrorCode = true;
 | |
| 
 | |
|   FireCallback();
 | |
| }
 | |
| 
 | |
| NS_IMPL_CYCLE_COLLECTION_INHERITED(UsageRequest, RequestBase, mCallback)
 | |
| 
 | |
| NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(UsageRequest)
 | |
|   NS_INTERFACE_MAP_ENTRY(nsIQuotaUsageRequest)
 | |
| NS_INTERFACE_MAP_END_INHERITING(RequestBase)
 | |
| 
 | |
| NS_IMPL_ADDREF_INHERITED(UsageRequest, RequestBase)
 | |
| NS_IMPL_RELEASE_INHERITED(UsageRequest, RequestBase)
 | |
| 
 | |
| NS_IMETHODIMP
 | |
| UsageRequest::GetResult(nsIVariant** aResult) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aResult);
 | |
| 
 | |
|   if (!mHaveResultOrErrorCode) {
 | |
|     return NS_ERROR_FAILURE;
 | |
|   }
 | |
| 
 | |
|   NS_IF_ADDREF(*aResult = mResult);
 | |
|   return NS_OK;
 | |
| }
 | |
| 
 | |
| NS_IMETHODIMP
 | |
| UsageRequest::GetCallback(nsIQuotaUsageCallback** aCallback) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aCallback);
 | |
| 
 | |
|   NS_IF_ADDREF(*aCallback = mCallback);
 | |
|   return NS_OK;
 | |
| }
 | |
| 
 | |
| NS_IMETHODIMP
 | |
| UsageRequest::SetCallback(nsIQuotaUsageCallback* aCallback) {
 | |
|   AssertIsOnOwningThread();
 | |
| 
 | |
|   mCallback = aCallback;
 | |
|   return NS_OK;
 | |
| }
 | |
| 
 | |
| NS_IMETHODIMP
 | |
| UsageRequest::Cancel() {
 | |
|   AssertIsOnOwningThread();
 | |
| 
 | |
|   if (mCanceled) {
 | |
|     NS_WARNING("Canceled more than once?!");
 | |
|     return NS_ERROR_UNEXPECTED;
 | |
|   }
 | |
| 
 | |
|   if (mBackgroundActor) {
 | |
|     mBackgroundActor->SendCancel();
 | |
|   }
 | |
| 
 | |
|   mCanceled = true;
 | |
| 
 | |
|   return NS_OK;
 | |
| }
 | |
| 
 | |
| void UsageRequest::FireCallback() {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(mCallback);
 | |
| 
 | |
|   mCallback->OnUsageResult(this);
 | |
| 
 | |
|   // Clean up.
 | |
|   mCallback = nullptr;
 | |
| }
 | |
| 
 | |
| Request::Request() { AssertIsOnOwningThread(); }
 | |
| 
 | |
| Request::Request(nsIPrincipal* aPrincipal) : RequestBase(aPrincipal) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aPrincipal);
 | |
| }
 | |
| 
 | |
| Request::Request(nsIQuotaCallback* aCallback) : mCallback(aCallback) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aCallback);
 | |
| }
 | |
| 
 | |
| Request::~Request() { AssertIsOnOwningThread(); }
 | |
| 
 | |
| void Request::SetResult(nsIVariant* aResult) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aResult);
 | |
|   MOZ_ASSERT(!mHaveResultOrErrorCode);
 | |
| 
 | |
|   mResult = aResult;
 | |
| 
 | |
|   mHaveResultOrErrorCode = true;
 | |
| 
 | |
|   FireCallback();
 | |
| }
 | |
| 
 | |
| NS_IMETHODIMP
 | |
| Request::GetResult(nsIVariant** aResult) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aResult);
 | |
| 
 | |
|   if (!mHaveResultOrErrorCode) {
 | |
|     return NS_ERROR_FAILURE;
 | |
|   }
 | |
| 
 | |
|   NS_IF_ADDREF(*aResult = mResult);
 | |
|   return NS_OK;
 | |
| }
 | |
| 
 | |
| NS_IMPL_CYCLE_COLLECTION_INHERITED(Request, RequestBase, mCallback, mResult)
 | |
| 
 | |
| NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Request)
 | |
|   NS_INTERFACE_MAP_ENTRY(nsIQuotaRequest)
 | |
| NS_INTERFACE_MAP_END_INHERITING(RequestBase)
 | |
| 
 | |
| NS_IMPL_ADDREF_INHERITED(mozilla::dom::quota::Request, RequestBase)
 | |
| NS_IMPL_RELEASE_INHERITED(mozilla::dom::quota::Request, RequestBase)
 | |
| 
 | |
| NS_IMETHODIMP
 | |
| Request::GetCallback(nsIQuotaCallback** aCallback) {
 | |
|   AssertIsOnOwningThread();
 | |
|   MOZ_ASSERT(aCallback);
 | |
| 
 | |
|   NS_IF_ADDREF(*aCallback = mCallback);
 | |
|   return NS_OK;
 | |
| }
 | |
| 
 | |
| NS_IMETHODIMP
 | |
| Request::SetCallback(nsIQuotaCallback* aCallback) {
 | |
|   AssertIsOnOwningThread();
 | |
| 
 | |
|   mCallback = aCallback;
 | |
|   return NS_OK;
 | |
| }
 | |
| 
 | |
| void Request::FireCallback() {
 | |
|   AssertIsOnOwningThread();
 | |
| 
 | |
|   if (mCallback) {
 | |
|     mCallback->OnComplete(this);
 | |
| 
 | |
|     // Clean up.
 | |
|     mCallback = nullptr;
 | |
|   }
 | |
| }
 | |
| 
 | |
| }  // namespace mozilla::dom::quota
 |