Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "nsXPCOM.h"
7 #include "nsIContentPolicy.h"
8 #include "nsIChannel.h"
9 #include "nsIChannelEventSink.h"
11 #define CSPSERVICE_CONTRACTID "@mozilla.org/cspservice;1"
12 #define CSPSERVICE_CID \
13 { 0x8d2f40b2, 0x4875, 0x4c95, \
14 { 0x97, 0xd9, 0x3f, 0x7d, 0xca, 0x2c, 0xb4, 0x60 } }
15 class CSPService : public nsIContentPolicy,
16 public nsIChannelEventSink
17 {
18 public:
19 NS_DECL_ISUPPORTS
20 NS_DECL_NSICONTENTPOLICY
21 NS_DECL_NSICHANNELEVENTSINK
23 CSPService();
24 virtual ~CSPService();
25 static bool sCSPEnabled;
26 private:
27 // Maps origins to app status.
28 nsDataHashtable<nsCStringHashKey, uint16_t> mAppStatusCache;
29 };