mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 10:18:41 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			2.4 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/. */
 | 
						|
 | 
						|
#ifndef mozilla_dom_cache_CacheOpParent_h
 | 
						|
#define mozilla_dom_cache_CacheOpParent_h
 | 
						|
 | 
						|
#include "mozilla/dom/cache/Manager.h"
 | 
						|
#include "mozilla/dom/cache/PCacheOpParent.h"
 | 
						|
#include "mozilla/dom/cache/PrincipalVerifier.h"
 | 
						|
#include "nsTArray.h"
 | 
						|
 | 
						|
namespace mozilla {
 | 
						|
namespace ipc {
 | 
						|
class PBackgroundParent;
 | 
						|
}  // namespace ipc
 | 
						|
namespace dom::cache {
 | 
						|
 | 
						|
class CacheOpParent final : public PCacheOpParent,
 | 
						|
                            public PrincipalVerifier::Listener,
 | 
						|
                            public Manager::Listener {
 | 
						|
  // to allow use of convenience overrides
 | 
						|
  using Manager::Listener::OnOpComplete;
 | 
						|
 | 
						|
 public:
 | 
						|
  CacheOpParent(mozilla::ipc::PBackgroundParent* aIpcManager, CacheId aCacheId,
 | 
						|
                const CacheOpArgs& aOpArgs);
 | 
						|
  CacheOpParent(mozilla::ipc::PBackgroundParent* aIpcManager,
 | 
						|
                Namespace aNamespace, const CacheOpArgs& aOpArgs);
 | 
						|
 | 
						|
  void Execute(const SafeRefPtr<ManagerId>& aManagerId);
 | 
						|
 | 
						|
  void Execute(SafeRefPtr<cache::Manager> aManager);
 | 
						|
 | 
						|
  void WaitForVerification(PrincipalVerifier* aVerifier);
 | 
						|
 | 
						|
  NS_INLINE_DECL_REFCOUNTING(CacheOpParent, override)
 | 
						|
 | 
						|
 private:
 | 
						|
  ~CacheOpParent();
 | 
						|
 | 
						|
  // PCacheOpParent methods
 | 
						|
  virtual void ActorDestroy(ActorDestroyReason aReason) override;
 | 
						|
 | 
						|
  // PrincipalVerifier::Listener methods
 | 
						|
  virtual void OnPrincipalVerified(
 | 
						|
      nsresult aRv, const SafeRefPtr<ManagerId>& aManagerId) override;
 | 
						|
 | 
						|
  // Manager::Listener methods
 | 
						|
  virtual void OnOpComplete(ErrorResult&& aRv, const CacheOpResult& aResult,
 | 
						|
                            CacheId aOpenedCacheId,
 | 
						|
                            const Maybe<StreamInfo>& aStreamInfo) override;
 | 
						|
 | 
						|
  // utility methods
 | 
						|
  already_AddRefed<nsIInputStream> DeserializeCacheStream(
 | 
						|
      const Maybe<CacheReadStream>& aMaybeStream);
 | 
						|
 | 
						|
  void ProcessCrossOriginResourcePolicyHeader(
 | 
						|
      ErrorResult& aRv, const nsTArray<SavedResponse>& aResponses);
 | 
						|
 | 
						|
  mozilla::ipc::PBackgroundParent* mIpcManager;
 | 
						|
  const CacheId mCacheId;
 | 
						|
  const Namespace mNamespace;
 | 
						|
  const CacheOpArgs mOpArgs;
 | 
						|
  SafeRefPtr<cache::Manager> mManager;
 | 
						|
  RefPtr<PrincipalVerifier> mVerifier;
 | 
						|
};
 | 
						|
 | 
						|
}  // namespace dom::cache
 | 
						|
}  // namespace mozilla
 | 
						|
 | 
						|
#endif  // mozilla_dom_cache_CacheOpParent_h
 |