mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 13:21:05 +00:00
52e65cee71
Firefox background tasks use a new temporary profile directory for every invocation. We would like to write as little data as possible into the temporary profile directory in this mode. This patch allows to make the persistent cookie storage discard cookies just like private cookie storage. This approach simply uses that the base `CookieStorage` class is close to sufficient already. There may be a performance impact with more virtual invocations, but none of these functions seem likely to be hot. Differential Revision: https://phabricator.services.mozilla.com/D139910
59 lines
1.9 KiB
C++
59 lines
1.9 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_CookiePrivateStorage_h
|
|
#define mozilla_net_CookiePrivateStorage_h
|
|
|
|
#include "CookieStorage.h"
|
|
|
|
class nsICookieTransactionCallback;
|
|
|
|
namespace mozilla {
|
|
namespace net {
|
|
|
|
class CookiePrivateStorage final : public CookieStorage {
|
|
public:
|
|
static already_AddRefed<CookiePrivateStorage> Create();
|
|
|
|
void StaleCookies(const nsTArray<Cookie*>& aCookieList,
|
|
int64_t aCurrentTimeInUsec) override;
|
|
|
|
void Close() override{};
|
|
|
|
void EnsureInitialized() override{};
|
|
|
|
nsresult RunInTransaction(nsICookieTransactionCallback* aCallback) override {
|
|
// It might make sense for this to be a no-op, or to return
|
|
// `NS_ERROR_NOT_AVAILABLE`, or to evalute `aCallback` (in case it has
|
|
// side-effects), but for now, just crash.
|
|
MOZ_CRASH("RunInTransaction is not supported for private storage");
|
|
};
|
|
|
|
protected:
|
|
const char* NotificationTopic() const override {
|
|
return "private-cookie-changed";
|
|
}
|
|
|
|
void NotifyChangedInternal(nsISupports* aSubject, const char16_t* aData,
|
|
bool aOldCookieIsSession) override {}
|
|
|
|
void RemoveAllInternal() override {}
|
|
|
|
void RemoveCookieFromDB(const CookieListIter& aIter) override {}
|
|
|
|
already_AddRefed<nsIArray> PurgeCookies(int64_t aCurrentTimeInUsec,
|
|
uint16_t aMaxNumberOfCookies,
|
|
int64_t aCookiePurgeAge) override;
|
|
|
|
void StoreCookie(const nsACString& aBaseDomain,
|
|
const OriginAttributes& aOriginAttributes,
|
|
Cookie* aCookie) override {}
|
|
};
|
|
|
|
} // namespace net
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_net_CookiePrivateStorage_h
|