intl/chardet/src/nsChardetModule.cpp

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

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;

mercurial