gfx/skia/trunk/src/sfnt/SkOTTable_OS_2_VA.h

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 /*
     2  * Copyright 2012 Google Inc.
     3  *
     4  * Use of this source code is governed by a BSD-style license that can be
     5  * found in the LICENSE file.
     6  */
     8 #ifndef SkOTTable_OS_2_VA_DEFINED
     9 #define SkOTTable_OS_2_VA_DEFINED
    11 #include "SkEndian.h"
    12 #include "SkIBMFamilyClass.h"
    13 #include "SkOTTableTypes.h"
    14 #include "SkPanose.h"
    15 #include "SkTypedEnum.h"
    17 #pragma pack(push, 1)
    19 //Original V0 TT
    20 struct SkOTTableOS2_VA {
    21     SK_OT_USHORT version;
    22     //SkOTTableOS2_VA::VERSION and SkOTTableOS2_V0::VERSION are both 0.
    23     //The only way to differentiate these two versions is by the size of the table.
    24     static const SK_OT_USHORT VERSION = SkTEndian_SwapBE16(0);
    26     SK_OT_SHORT xAvgCharWidth;
    27     struct WeightClass {
    28         SK_TYPED_ENUM(Value, SK_OT_USHORT,
    29             ((UltraLight, SkTEndian_SwapBE16(1)))
    30             ((ExtraLight, SkTEndian_SwapBE16(2)))
    31             ((Light, SkTEndian_SwapBE16(3)))
    32             ((SemiLight, SkTEndian_SwapBE16(4)))
    33             ((Medium, SkTEndian_SwapBE16(5)))
    34             ((SemiBold, SkTEndian_SwapBE16(6)))
    35             ((Bold, SkTEndian_SwapBE16(7)))
    36             ((ExtraBold, SkTEndian_SwapBE16(8)))
    37             ((UltraBold, SkTEndian_SwapBE16(9)))
    38             SK_SEQ_END,
    39         (value)SK_SEQ_END)
    40     } usWeightClass;
    41     struct WidthClass {
    42         SK_TYPED_ENUM(Value, SK_OT_USHORT,
    43             ((UltraCondensed, SkTEndian_SwapBE16(1)))
    44             ((ExtraCondensed, SkTEndian_SwapBE16(2)))
    45             ((Condensed, SkTEndian_SwapBE16(3)))
    46             ((SemiCondensed, SkTEndian_SwapBE16(4)))
    47             ((Medium, SkTEndian_SwapBE16(5)))
    48             ((SemiExpanded, SkTEndian_SwapBE16(6)))
    49             ((Expanded, SkTEndian_SwapBE16(7)))
    50             ((ExtraExpanded, SkTEndian_SwapBE16(8)))
    51             ((UltraExpanded, SkTEndian_SwapBE16(9)))
    52             SK_SEQ_END,
    53         (value)SK_SEQ_END)
    54     } usWidthClass;
    55     union Type {
    56         struct Field {
    57             //8-15
    58             SK_OT_BYTE_BITFIELD(
    59                 Reserved08,
    60                 Reserved09,
    61                 Reserved10,
    62                 Reserved11,
    63                 Reserved12,
    64                 Reserved13,
    65                 Reserved14,
    66                 Reserved15)
    67             //0-7
    68             SK_OT_BYTE_BITFIELD(
    69                 Reserved00,
    70                 Restricted,
    71                 PreviewPrint,
    72                 Editable,
    73                 Reserved04,
    74                 Reserved05,
    75                 Reserved06,
    76                 Reserved07)
    77         } field;
    78         struct Raw {
    79             static const SK_OT_USHORT Installable = 0;
    80             static const SK_OT_USHORT RestrictedMask = SkOTSetUSHORTBit<1>::value;
    81             static const SK_OT_USHORT PreviewPrintMask = SkOTSetUSHORTBit<2>::value;
    82             static const SK_OT_USHORT EditableMask = SkOTSetUSHORTBit<3>::value;
    83             SK_OT_USHORT value;
    84         } raw;
    85     } fsType;
    86     SK_OT_SHORT ySubscriptXSize;
    87     SK_OT_SHORT ySubscriptYSize;
    88     SK_OT_SHORT ySubscriptXOffset;
    89     SK_OT_SHORT ySubscriptYOffset;
    90     SK_OT_SHORT ySuperscriptXSize;
    91     SK_OT_SHORT ySuperscriptYSize;
    92     SK_OT_SHORT ySuperscriptXOffset;
    93     SK_OT_SHORT ySuperscriptYOffset;
    94     SK_OT_SHORT yStrikeoutSize;
    95     SK_OT_SHORT yStrikeoutPosition;
    96     SkIBMFamilyClass sFamilyClass;
    97     SkPanose panose;
    98     SK_OT_ULONG ulCharRange[4];
    99     SK_OT_CHAR achVendID[4];
   100     union Selection {
   101         struct Field {
   102             //8-15
   103             SK_OT_BYTE_BITFIELD(
   104                 Reserved08,
   105                 Reserved09,
   106                 Reserved10,
   107                 Reserved11,
   108                 Reserved12,
   109                 Reserved13,
   110                 Reserved14,
   111                 Reserved15)
   112             //0-7
   113             SK_OT_BYTE_BITFIELD(
   114                 Italic,
   115                 Underscore,
   116                 Negative,
   117                 Outlined,
   118                 Strikeout,
   119                 Bold,
   120                 Reserved06,
   121                 Reserved07)
   122         } field;
   123         struct Raw {
   124             static const SK_OT_USHORT ItalicMask = SkOTSetUSHORTBit<0>::value;
   125             static const SK_OT_USHORT UnderscoreMask = SkOTSetUSHORTBit<1>::value;
   126             static const SK_OT_USHORT NegativeMask = SkOTSetUSHORTBit<2>::value;
   127             static const SK_OT_USHORT OutlinedMask = SkOTSetUSHORTBit<3>::value;
   128             static const SK_OT_USHORT StrikeoutMask = SkOTSetUSHORTBit<4>::value;
   129             static const SK_OT_USHORT BoldMask = SkOTSetUSHORTBit<5>::value;
   130             SK_OT_USHORT value;
   131         } raw;
   132     } fsSelection;
   133     SK_OT_USHORT usFirstCharIndex;
   134     SK_OT_USHORT usLastCharIndex;
   135 };
   137 #pragma pack(pop)
   140 SK_COMPILE_ASSERT(sizeof(SkOTTableOS2_VA) == 68, sizeof_SkOTTableOS2_VA_not_68);
   142 #endif

mercurial