gfx/thebes/nsUnicodeRange.h

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: 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 <stdint.h>
     8 class nsIAtom;
    10 // The following constants define unicode subranges
    11 // values below kRangeNum must be continuous so that we can map to 
    12 // lang group directly.
    13 // all ranges we care about should be defined under 32, that allows 
    14 // us to store range using bits of a uint32_t
    16 // frequently used range definitions
    17 const uint8_t   kRangeCyrillic =    0;
    18 const uint8_t   kRangeGreek    =    1;
    19 const uint8_t   kRangeTurkish  =    2;
    20 const uint8_t   kRangeHebrew   =    3;
    21 const uint8_t   kRangeArabic   =    4;
    22 const uint8_t   kRangeBaltic   =    5;
    23 const uint8_t   kRangeThai     =    6;
    24 const uint8_t   kRangeKorean   =    7;
    25 const uint8_t   kRangeJapanese =    8;
    26 const uint8_t   kRangeSChinese =    9;
    27 const uint8_t   kRangeTChinese =   10;
    28 const uint8_t   kRangeDevanagari = 11;
    29 const uint8_t   kRangeTamil    =   12;
    30 const uint8_t   kRangeArmenian =   13;
    31 const uint8_t   kRangeBengali  =   14;
    32 const uint8_t   kRangeCanadian =   15;
    33 const uint8_t   kRangeEthiopic =   16;
    34 const uint8_t   kRangeGeorgian =   17;
    35 const uint8_t   kRangeGujarati =   18;
    36 const uint8_t   kRangeGurmukhi =   19;
    37 const uint8_t   kRangeKhmer    =   20;
    38 const uint8_t   kRangeMalayalam =  21;
    39 const uint8_t   kRangeOriya     =  22;
    40 const uint8_t   kRangeTelugu    =  23;
    41 const uint8_t   kRangeKannada   =  24;
    42 const uint8_t   kRangeSinhala   =  25;
    43 const uint8_t   kRangeTibetan   =  26;
    45 const uint8_t   kRangeSpecificItemNum = 27;
    47 //range/rangeSet grow to this place 27-29
    49 const uint8_t   kRangeSetStart  =  30;   // range set definition starts from here
    50 const uint8_t   kRangeSetLatin  =  30;
    51 const uint8_t   kRangeSetCJK    =  31;
    52 const uint8_t   kRangeSetEnd    =  31;   // range set definition ends here, this
    53                                          // and smaller ranges are used as bit
    54                                          // mask, don't increase this value.
    56 // less frequently used range definition
    57 const uint8_t   kRangeSurrogate            = 32;
    58 const uint8_t   kRangePrivate              = 33;
    59 const uint8_t   kRangeMisc                 = 34;
    60 const uint8_t   kRangeUnassigned           = 35;
    61 const uint8_t   kRangeSyriac               = 36;
    62 const uint8_t   kRangeThaana               = 37;
    63 const uint8_t   kRangeLao                  = 38;
    64 const uint8_t   kRangeMyanmar              = 39;
    65 const uint8_t   kRangeCherokee             = 40;
    66 const uint8_t   kRangeOghamRunic           = 41;
    67 const uint8_t   kRangeMongolian            = 42;
    68 const uint8_t   kRangeMathOperators        = 43;
    69 const uint8_t   kRangeMiscTechnical        = 44;
    70 const uint8_t   kRangeControlOpticalEnclose = 45;
    71 const uint8_t   kRangeBoxBlockGeometrics   = 46;
    72 const uint8_t   kRangeMiscSymbols          = 47;
    73 const uint8_t   kRangeDingbats             = 48;
    74 const uint8_t   kRangeBraillePattern       = 49;
    75 const uint8_t   kRangeYi                   = 50;
    76 const uint8_t   kRangeCombiningDiacriticalMarks = 51;
    77 const uint8_t   kRangeSpecials             = 52;
    79 // aggregate ranges for non-BMP codepoints (u+2xxxx are all CJK)
    80 const uint8_t   kRangeSMP                  = 53;  // u+1xxxx
    81 const uint8_t   kRangeHigherPlanes         = 54;  // u+3xxxx and above
    83 const uint8_t   kRangeTableBase   = 128;    //values over 127 are reserved for internal use only
    84 const uint8_t   kRangeTertiaryTable  = 145; // leave room for 16 subtable 
    85                                             // indices (kRangeTableBase + 1 ..
    86                                             // kRangeTableBase + 16)
    90 uint32_t FindCharUnicodeRange(uint32_t ch);
    91 nsIAtom* LangGroupFromUnicodeRange(uint8_t unicodeRange);

mercurial