Line data Source code
1 : /* This Source Code Form is subject to the terms of the Mozilla Public
2 : * License, v. 2.0. If a copy of the MPL was not distributed with this
3 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 :
5 : #ifndef nsCookiePermission_h__
6 : #define nsCookiePermission_h__
7 :
8 : #include "nsICookiePermission.h"
9 : #include "nsIPermissionManager.h"
10 : #include "nsIObserver.h"
11 : #include "nsCOMPtr.h"
12 : #include "mozIThirdPartyUtil.h"
13 :
14 : class nsIPrefBranch;
15 :
16 : class nsCookiePermission : public nsICookiePermission
17 : , public nsIObserver
18 : {
19 : public:
20 : NS_DECL_ISUPPORTS
21 : NS_DECL_NSICOOKIEPERMISSION
22 : NS_DECL_NSIOBSERVER
23 :
24 1 : nsCookiePermission()
25 1 : : mCookiesLifetimeSec(INT64_MAX)
26 1 : , mCookiesLifetimePolicy(0) // ACCEPT_NORMALLY
27 1 : {}
28 :
29 : bool Init();
30 : void PrefChanged(nsIPrefBranch *, const char *);
31 :
32 : private:
33 0 : virtual ~nsCookiePermission() {}
34 :
35 6 : bool EnsureInitialized() { return (mPermMgr != nullptr && mThirdPartyUtil != nullptr) || Init(); };
36 :
37 : nsCOMPtr<nsIPermissionManager> mPermMgr;
38 : nsCOMPtr<mozIThirdPartyUtil> mThirdPartyUtil;
39 :
40 : int64_t mCookiesLifetimeSec; // lifetime limit specified in seconds
41 : uint8_t mCookiesLifetimePolicy; // pref for how long cookies are stored
42 : };
43 :
44 : // {EF565D0A-AB9A-4A13-9160-0644CDFD859A}
45 : #define NS_COOKIEPERMISSION_CID \
46 : {0xEF565D0A, 0xAB9A, 0x4A13, {0x91, 0x60, 0x06, 0x44, 0xcd, 0xfd, 0x85, 0x9a }}
47 :
48 : #endif
|