intl/build/nsI18nModule.cpp

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
     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 // lwbrk
     9 #include "nsLWBrkCIID.h"
    10 #include "nsJISx4051LineBreaker.h"
    11 #include "nsSampleWordBreaker.h"
    13 #include "nsSemanticUnitScanner.h"
    15 // unicharutil
    16 #include "nsCategoryImp.h"
    17 #include "nsUnicharUtilCIID.h"
    18 #include "nsCaseConversionImp2.h"
    19 #include "nsEntityConverter.h"
    20 #include "nsSaveAsCharset.h"
    21 #include "nsUnicodeNormalizer.h"
    23 // string bundles (intl)
    24 #include "nsStringBundleService.h"
    25 #include "nsStringBundleTextOverride.h"
    27 // locale
    28 #include "nsLocaleConstructors.h"
    30 // uconv
    31 #include "nsCharsetConverterManager.h"
    33 NS_GENERIC_FACTORY_CONSTRUCTOR(nsJISx4051LineBreaker)
    34 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSampleWordBreaker)
    36 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSemanticUnitScanner)
    38 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStringBundleService, Init)
    39 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStringBundleTextOverride, Init)
    41 NS_GENERIC_FACTORY_CONSTRUCTOR(nsCaseConversionImp2)
    42 NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsCategoryImp,
    43                                          nsCategoryImp::GetInstance)
    44 NS_GENERIC_FACTORY_CONSTRUCTOR(nsEntityConverter)
    45 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSaveAsCharset)
    46 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeNormalizer)
    48 NS_DEFINE_NAMED_CID(NS_LBRK_CID);
    49 NS_DEFINE_NAMED_CID(NS_WBRK_CID);
    50 NS_DEFINE_NAMED_CID(NS_SEMANTICUNITSCANNER_CID);
    51 NS_DEFINE_NAMED_CID(NS_UNICHARUTIL_CID);
    52 NS_DEFINE_NAMED_CID(NS_UNICHARCATEGORY_CID);
    53 NS_DEFINE_NAMED_CID(NS_ENTITYCONVERTER_CID);
    54 NS_DEFINE_NAMED_CID(NS_SAVEASCHARSET_CID);
    55 NS_DEFINE_NAMED_CID(NS_UNICODE_NORMALIZER_CID);
    56 NS_DEFINE_NAMED_CID(NS_STRINGBUNDLESERVICE_CID);
    57 NS_DEFINE_NAMED_CID(NS_STRINGBUNDLETEXTOVERRIDE_CID);
    58 NS_DEFINE_NAMED_CID(NS_LOCALESERVICE_CID);
    59 NS_DEFINE_NAMED_CID(NS_COLLATIONFACTORY_CID);
    60 NS_DEFINE_NAMED_CID(NS_SCRIPTABLEDATEFORMAT_CID);
    61 NS_DEFINE_NAMED_CID(NS_LANGUAGEATOMSERVICE_CID);
    62 NS_DEFINE_NAMED_CID(NS_PLATFORMCHARSET_CID);
    63 #ifdef XP_WIN
    64 NS_DEFINE_NAMED_CID(NS_COLLATION_CID);
    65 NS_DEFINE_NAMED_CID(NS_DATETIMEFORMAT_CID);
    66 #endif
    67 #ifdef USE_UNIX_LOCALE
    68 NS_DEFINE_NAMED_CID(NS_COLLATION_CID);
    69 NS_DEFINE_NAMED_CID(NS_DATETIMEFORMAT_CID);
    70 #endif
    71 #ifdef USE_MAC_LOCALE
    72 NS_DEFINE_NAMED_CID(NS_COLLATION_CID);
    73 NS_DEFINE_NAMED_CID(NS_DATETIMEFORMAT_CID);
    74 #endif
    76 static const mozilla::Module::CIDEntry kIntlCIDs[] = {
    77     { &kNS_LBRK_CID, false, nullptr, nsJISx4051LineBreakerConstructor },
    78     { &kNS_WBRK_CID, false, nullptr, nsSampleWordBreakerConstructor },
    79     { &kNS_SEMANTICUNITSCANNER_CID, false, nullptr, nsSemanticUnitScannerConstructor },
    80     { &kNS_UNICHARUTIL_CID, false, nullptr, nsCaseConversionImp2Constructor },
    81     { &kNS_UNICHARCATEGORY_CID, false, nullptr, nsCategoryImpConstructor },
    82     { &kNS_ENTITYCONVERTER_CID, false, nullptr, nsEntityConverterConstructor },
    83     { &kNS_SAVEASCHARSET_CID, false, nullptr, nsSaveAsCharsetConstructor },
    84     { &kNS_UNICODE_NORMALIZER_CID, false, nullptr, nsUnicodeNormalizerConstructor },
    85     { &kNS_STRINGBUNDLESERVICE_CID, false, nullptr, nsStringBundleServiceConstructor },
    86     { &kNS_STRINGBUNDLETEXTOVERRIDE_CID, false, nullptr, nsStringBundleTextOverrideConstructor },
    87     { &kNS_LOCALESERVICE_CID, false, nullptr, CreateLocaleService },
    88     { &kNS_COLLATIONFACTORY_CID, false, nullptr, nsCollationFactoryConstructor },
    89     { &kNS_SCRIPTABLEDATEFORMAT_CID, false, nullptr, NS_NewScriptableDateFormat },
    90     { &kNS_LANGUAGEATOMSERVICE_CID, false, nullptr, nsLanguageAtomServiceConstructor },
    91     { &kNS_PLATFORMCHARSET_CID, false, nullptr, nsPlatformCharsetConstructor },
    92 #ifdef XP_WIN
    93     { &kNS_COLLATION_CID, false, nullptr, nsCollationWinConstructor },
    94     { &kNS_DATETIMEFORMAT_CID, false, nullptr, nsDateTimeFormatWinConstructor },
    95 #endif
    96 #ifdef USE_UNIX_LOCALE
    97     { &kNS_COLLATION_CID, false, nullptr, nsCollationUnixConstructor },
    98     { &kNS_DATETIMEFORMAT_CID, false, nullptr, nsDateTimeFormatUnixConstructor },
    99 #endif
   100 #ifdef USE_MAC_LOCALE
   101     { &kNS_COLLATION_CID, false, nullptr, nsCollationMacUCConstructor },
   102     { &kNS_DATETIMEFORMAT_CID, false, nullptr, nsDateTimeFormatMacConstructor },
   103 #endif
   104     { nullptr }
   105 };
   107 static const mozilla::Module::ContractIDEntry kIntlContracts[] = {
   108     { NS_LBRK_CONTRACTID, &kNS_LBRK_CID },
   109     { NS_WBRK_CONTRACTID, &kNS_WBRK_CID },
   110     { NS_SEMANTICUNITSCANNER_CONTRACTID, &kNS_SEMANTICUNITSCANNER_CID },
   111     { NS_UNICHARUTIL_CONTRACTID, &kNS_UNICHARUTIL_CID },
   112     { NS_UNICHARCATEGORY_CONTRACTID, &kNS_UNICHARCATEGORY_CID },
   113     { NS_ENTITYCONVERTER_CONTRACTID, &kNS_ENTITYCONVERTER_CID },
   114     { NS_SAVEASCHARSET_CONTRACTID, &kNS_SAVEASCHARSET_CID },
   115     { NS_UNICODE_NORMALIZER_CONTRACTID, &kNS_UNICODE_NORMALIZER_CID },
   116     { NS_STRINGBUNDLE_CONTRACTID, &kNS_STRINGBUNDLESERVICE_CID },
   117     { NS_STRINGBUNDLETEXTOVERRIDE_CONTRACTID, &kNS_STRINGBUNDLETEXTOVERRIDE_CID },
   118     { NS_LOCALESERVICE_CONTRACTID, &kNS_LOCALESERVICE_CID },
   119     { NS_COLLATIONFACTORY_CONTRACTID, &kNS_COLLATIONFACTORY_CID },
   120     { NS_SCRIPTABLEDATEFORMAT_CONTRACTID, &kNS_SCRIPTABLEDATEFORMAT_CID },
   121     { NS_LANGUAGEATOMSERVICE_CONTRACTID, &kNS_LANGUAGEATOMSERVICE_CID },
   122     { NS_PLATFORMCHARSET_CONTRACTID, &kNS_PLATFORMCHARSET_CID },
   123 #ifdef XP_WIN
   124     { NS_COLLATION_CONTRACTID, &kNS_COLLATION_CID },
   125     { NS_DATETIMEFORMAT_CONTRACTID, &kNS_DATETIMEFORMAT_CID },
   126 #endif
   127 #ifdef USE_UNIX_LOCALE
   128     { NS_COLLATION_CONTRACTID, &kNS_COLLATION_CID },
   129     { NS_DATETIMEFORMAT_CONTRACTID, &kNS_DATETIMEFORMAT_CID },
   130 #endif
   131 #ifdef USE_MAC_LOCALE
   132     { NS_COLLATION_CONTRACTID, &kNS_COLLATION_CID },
   133     { NS_DATETIMEFORMAT_CONTRACTID, &kNS_DATETIMEFORMAT_CID },
   134 #endif
   135     { nullptr }
   136 };
   138 static void
   139 I18nModuleDtor()
   140 {
   141     nsCharsetConverterManager::Shutdown();
   142 }
   144 static const mozilla::Module kIntlModule = {
   145     mozilla::Module::kVersion,
   146     kIntlCIDs,
   147     kIntlContracts,
   148     nullptr,
   149     nullptr,
   150     nullptr,
   151     I18nModuleDtor
   152 };
   154 NSMODULE_DEFN(nsI18nModule) = &kIntlModule;

mercurial