gecko-dev/netwerk/cookie/CookieServiceParent.h
Ehsan Akhgari ab20502fb9 Bug 1547813 - Part 7: Introduce a storage partitioning API; r=baku
This API abstracts away the details of the decision on what context should be
partitioned away from the consumers and centralizes the decision making into
the same location in the code base.

Differential Revision: https://phabricator.services.mozilla.com/D29742

--HG--
extra : moz-landing-system : lando
2019-05-25 01:25:41 +00:00

75 lines
2.4 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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_net_CookieServiceParent_h
#define mozilla_net_CookieServiceParent_h
#include "mozilla/net/PCookieServiceParent.h"
class nsCookie;
class nsICookie;
class nsCookieService;
namespace mozilla {
class OriginAttributes;
}
namespace mozilla {
namespace net {
class CookieServiceParent : public PCookieServiceParent {
friend class PCookieServiceParent;
public:
CookieServiceParent();
virtual ~CookieServiceParent() = default;
void TrackCookieLoad(nsIChannel* aChannel);
void RemoveBatchDeletedCookies(nsIArray* aCookieList);
void RemoveAll();
void RemoveCookie(nsICookie* aCookie);
void AddCookie(nsICookie* aCookie);
// This will return true if the CookieServiceParent is currently processing
// an update from the content process. This is used in ContentParent to make
// sure that we are only forwarding those cookie updates to other content
// processes, not the one they originated from.
bool ProcessingCookie() { return mProcessingCookie; }
protected:
virtual void ActorDestroy(ActorDestroyReason aWhy) override;
mozilla::ipc::IPCResult RecvSetCookieString(
const URIParams& aHost, const Maybe<URIParams>& aChannelURI,
const Maybe<LoadInfoArgs>& aLoadInfoArgs, const bool& aIsForeign,
const bool& aIsTrackingResource,
const bool& aFirstPartyStorageAccessGranted,
const uint32_t& aRejectedReason, const OriginAttributes& aAttrs,
const nsCString& aCookieString, const nsCString& aServerTime,
const bool& aFromHttp);
mozilla::ipc::IPCResult RecvPrepareCookieList(
const URIParams& aHost, const bool& aIsForeign,
const bool& aIsTrackingResource,
const bool& aFirstPartyStorageAccessGranted,
const uint32_t& aRejectedReason, const bool& aIsSafeTopLevelNav,
const bool& aIsSameSiteForeign, const OriginAttributes& aAttrs);
void SerialializeCookieList(const nsTArray<nsCookie*>& aFoundCookieList,
nsTArray<CookieStruct>& aCookiesList,
nsIURI* aHostURI);
RefPtr<nsCookieService> mCookieService;
bool mProcessingCookie;
};
} // namespace net
} // namespace mozilla
#endif // mozilla_net_CookieServiceParent_h