Sat, 03 Jan 2015 20:18:00 +0100
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: 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 "nsJohabToUnicode.h"
7 #include "nsUCvKODll.h"
8 #include "nsUCConstructors.h"
9 #include "mozilla/Telemetry.h"
11 using namespace mozilla;
13 //----------------------------------------------------------------------
14 // Global functions and data [declaration]
16 static const uScanClassID g_JOHABScanClassIDs[] = {
17 u1ByteCharset,
18 uJohabHangulCharset,
19 u2BytesCharset,
20 uJohabSymbolCharset,
21 uJohabSymbolCharset
22 };
24 static const uRange g_JOHABRanges[] = {
25 { 0x00, 0x7E },
26 { 0x84, 0xD3 },
27 { 0x84, 0xD3 },
28 { 0xD8, 0xDE },
29 { 0xE0, 0xF9 }
30 };
32 static const uint16_t g_utJohabJamoMapping[] ={
33 #include "johabjamo.ut"
34 };
36 static const uint16_t *g_JOHABMappingTableSet [] ={
37 g_ASCIIMappingTable,
38 g_HangulNullMapping,
39 g_utJohabJamoMapping,
40 g_utKSC5601Mapping,
41 g_utKSC5601Mapping
42 };
45 //----------------------------------------------------------------------
46 // Class nsJohabToUnicode [implementation]
48 nsresult
49 nsJohabToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
50 void **aResult)
51 {
52 Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_JOHAB, true);
53 return CreateMultiTableDecoder(sizeof(g_JOHABRanges) / sizeof(g_JOHABRanges[0]),
54 (const uRange*) &g_JOHABRanges,
55 (uScanClassID*) &g_JOHABScanClassIDs,
56 (uMappingTable**) &g_JOHABMappingTableSet, 1,
57 aOuter, aIID, aResult);
58 }