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: 4; 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 "mozilla/ModuleUtils.h"
8 #include "nsCharDetConstructors.h"
10 NS_DEFINE_NAMED_CID(NS_RU_PROBDETECTOR_CID);
11 NS_DEFINE_NAMED_CID(NS_UK_PROBDETECTOR_CID);
12 NS_DEFINE_NAMED_CID(NS_RU_STRING_PROBDETECTOR_CID);
13 NS_DEFINE_NAMED_CID(NS_UK_STRING_PROBDETECTOR_CID);
15 static const mozilla::Module::CIDEntry kChardetCIDs[] = {
16 { &kNS_RU_PROBDETECTOR_CID, false, nullptr, nsRUProbDetectorConstructor },
17 { &kNS_UK_PROBDETECTOR_CID, false, nullptr, nsUKProbDetectorConstructor },
18 { &kNS_RU_STRING_PROBDETECTOR_CID, false, nullptr, nsRUStringProbDetectorConstructor },
19 { &kNS_UK_STRING_PROBDETECTOR_CID, false, nullptr, nsUKStringProbDetectorConstructor },
20 { nullptr }
21 };
23 static const mozilla::Module::ContractIDEntry kChardetContracts[] = {
24 { NS_CHARSET_DETECTOR_CONTRACTID_BASE "ruprob", &kNS_RU_PROBDETECTOR_CID },
25 { NS_CHARSET_DETECTOR_CONTRACTID_BASE "ukprob", &kNS_UK_PROBDETECTOR_CID },
26 { NS_STRCDETECTOR_CONTRACTID_BASE "ruprob", &kNS_RU_STRING_PROBDETECTOR_CID },
27 { NS_STRCDETECTOR_CONTRACTID_BASE "ukprob", &kNS_UK_STRING_PROBDETECTOR_CID },
28 { nullptr }
29 };
31 static const mozilla::Module::CategoryEntry kChardetCategories[] = {
32 { NS_CHARSET_DETECTOR_CATEGORY, "off", "off" },
33 { NS_CHARSET_DETECTOR_CATEGORY, "ruprob", NS_CHARSET_DETECTOR_CONTRACTID_BASE "ruprob" },
34 { NS_CHARSET_DETECTOR_CATEGORY, "ukprob", NS_CHARSET_DETECTOR_CONTRACTID_BASE "ukprob" },
35 { nullptr }
36 };
38 static const mozilla::Module kChardetModule = {
39 mozilla::Module::kVersion,
40 kChardetCIDs,
41 kChardetContracts,
42 kChardetCategories
43 };
45 NSMODULE_DEFN(nsChardetModule) = &kChardetModule;