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 /*
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 SkPanose_DEFINED
9 #define SkPanose_DEFINED
11 #include "SkOTTableTypes.h"
12 #include "SkTypedEnum.h"
14 #pragma pack(push, 1)
16 struct SkPanose {
17 //This value changes the meaning of the following 9 bytes.
18 struct FamilyType {
19 SK_TYPED_ENUM(Value, SK_OT_BYTE,
20 ((Any, 0))
21 ((NoFit, 1))
22 ((TextAndDisplay, 2))
23 ((Script, 3))
24 ((Decorative, 4))
25 ((Pictoral, 5))
26 SK_SEQ_END,
27 (value)SK_SEQ_END)
28 } bFamilyType;
30 union Data {
31 struct TextAndDisplay {
32 struct SerifStyle {
33 SK_TYPED_ENUM(Value, SK_OT_BYTE,
34 ((Any, 0))
35 ((NoFit, 1))
36 ((Cove, 2))
37 ((ObtuseCove, 3))
38 ((SquareCove, 4))
39 ((ObtuseSquareCove, 5))
40 ((Square, 6))
41 ((Thin, 7))
42 ((Bone, 8))
43 ((Exaggerated, 9))
44 ((Triangle, 10))
45 ((NormalSans, 11))
46 ((ObtuseSans, 12))
47 ((PerpSans, 13))
48 ((Flared, 14))
49 ((Rounded, 15))
50 SK_SEQ_END,
51 (value)SK_SEQ_END)
52 } bSerifStyle;
54 struct Weight {
55 SK_TYPED_ENUM(Value, SK_OT_BYTE,
56 ((Any, 0))
57 ((NoFit, 1))
58 ((VeryLight, 2))
59 ((Light, 3))
60 ((Thin, 4))
61 ((Book, 5))
62 ((Medium, 6))
63 ((Demi, 7))
64 ((Bold, 8))
65 ((Heavy, 9))
66 ((Black, 10))
67 ((ExtraBlack, 11))
68 SK_SEQ_END,
69 (value)SK_SEQ_END)
70 } bWeight;
72 struct Proportion {
73 SK_TYPED_ENUM(Value, SK_OT_BYTE,
74 ((Any, 0))
75 ((NoFit, 1))
76 ((OldStyle, 2))
77 ((Modern, 3))
78 ((EvenWidth, 4))
79 ((Expanded, 5))
80 ((Condensed, 6))
81 ((VeryExpanded, 7))
82 ((VeryCondensed, 8))
83 ((Monospaced, 9))
84 SK_SEQ_END,
85 (value)SK_SEQ_END)
86 } bProportion;
88 struct Contrast {
89 SK_TYPED_ENUM(Value, SK_OT_BYTE,
90 ((Any, 0))
91 ((NoFit, 1))
92 ((None, 2))
93 ((VeryLow, 3))
94 ((Low, 4))
95 ((MediumLow, 5))
96 ((Medium, 6))
97 ((MediumHigh, 7))
98 ((High, 8))
99 ((VeryHigh, 9))
100 SK_SEQ_END,
101 (value)SK_SEQ_END)
102 } bContrast;
104 #ifdef SK_WIN_PANOSE
105 //This is what Windows (and FontForge and Apple TT spec) define.
106 //The Impact font uses 9.
107 struct StrokeVariation {
108 SK_TYPED_ENUM(Value, SK_OT_BYTE,
109 ((Any, 0))
110 ((NoFit, 1))
111 ((GradualDiagonal, 2))
112 ((GradualTransitional, 3))
113 ((GradualVertical, 4))
114 ((GradualHorizontal, 5))
115 ((RapidVertical, 6))
116 ((RapidHorizontal, 7))
117 ((InstantVertical, 8))
118 SK_SEQ_END,
119 (value)SK_SEQ_END)
120 } bStrokeVariation;
121 #else
122 //Stroke variation description in OT OS/2 ver0,ver1 is incorrect.
123 //This is what HP Panose says.
124 struct StrokeVariation {
125 SK_TYPED_ENUM(Value, SK_OT_BYTE,
126 ((Any, 0))
127 ((NoFit, 1))
128 ((NoVariation, 2))
129 ((Gradual_Diagonal, 3))
130 ((Gradual_Transitional, 4))
131 ((Gradual_Vertical, 5))
132 ((Gradual_Horizontal, 6))
133 ((Rapid_Vertical, 7))
134 ((Rapid_Horizontal, 8))
135 ((Instant_Vertical, 9))
136 ((Instant_Horizontal, 10))
137 SK_SEQ_END,
138 (value)SK_SEQ_END)
139 } bStrokeVariation;
140 #endif
142 struct ArmStyle {
143 SK_TYPED_ENUM(Value, SK_OT_BYTE,
144 ((Any, 0))
145 ((NoFit, 1))
146 ((StraightArms_Horizontal, 2))
147 ((StraightArms_Wedge, 3))
148 ((StraightArms_Vertical, 4))
149 ((StraightArms_SingleSerif, 5))
150 ((StraightArms_DoubleSerif, 6))
151 ((NonStraightArms_Horizontal, 7))
152 ((NonStraightArms_Wedge, 8))
153 ((NonStraightArms_Vertical, 9))
154 ((NonStraightArms_SingleSerif, 10))
155 ((NonStraightArms_DoubleSerif, 11))
156 SK_SEQ_END,
157 (value)SK_SEQ_END)
158 } bArmStyle;
160 struct Letterform {
161 SK_TYPED_ENUM(Value, SK_OT_BYTE,
162 ((Any, 0))
163 ((NoFit, 1))
164 ((Normal_Contact, 2))
165 ((Normal_Weighted, 3))
166 ((Normal_Boxed, 4))
167 ((Normal_Flattened, 5))
168 ((Normal_Rounded, 6))
169 ((Normal_OffCenter, 7))
170 ((Normal_Square, 8))
171 ((Oblique_Contact, 9))
172 ((Oblique_Weighted, 10))
173 ((Oblique_Boxed, 11))
174 ((Oblique_Flattened, 12))
175 ((Oblique_Rounded, 13))
176 ((Oblique_OffCenter, 14))
177 ((Oblique_Square, 15))
178 SK_SEQ_END,
179 (value)SK_SEQ_END)
180 } bLetterform;
182 struct Midline {
183 SK_TYPED_ENUM(Value, SK_OT_BYTE,
184 ((Any, 0))
185 ((NoFit, 1))
186 ((Standard_Trimmed, 2))
187 ((Standard_Pointed, 3))
188 ((Standard_Serifed, 4))
189 ((High_Trimmed, 5))
190 ((High_Pointed, 6))
191 ((High_Serifed, 7))
192 ((Constant_Trimmed, 8))
193 ((Constant_Pointed, 9))
194 ((Constant_Serifed, 10))
195 ((Low_Trimmed, 11))
196 ((Low_Pointed, 12))
197 ((Low_Serifed, 13))
198 SK_SEQ_END,
199 (value)SK_SEQ_END)
200 } bMidline;
202 struct XHeight {
203 SK_TYPED_ENUM(Value, SK_OT_BYTE,
204 ((Any, 0))
205 ((NoFit, 1))
206 ((Constant_Small, 2))
207 ((Constant_Standard, 3))
208 ((Constant_Large, 4))
209 ((Ducking_Small, 5))
210 ((Ducking_Standard, 6))
211 ((Ducking_Large, 7))
212 SK_SEQ_END,
213 (value)SK_SEQ_END)
214 } bXHeight;
215 } textAndDisplay;
217 struct Script {
218 struct ToolKind {
219 SK_TYPED_ENUM(Value, SK_OT_BYTE,
220 ((Any, 0))
221 ((NoFit, 1))
222 ((FlatNib, 2))
223 ((PressurePoint, 3))
224 ((Engraved, 4))
225 ((Ball, 5))
226 ((Brush, 6))
227 ((Rough, 7))
228 ((FeltPen, 8))
229 ((WildBrush, 9))
230 SK_SEQ_END,
231 (value)SK_SEQ_END)
232 } bToolKind;
234 struct Weight {
235 SK_TYPED_ENUM(Value, SK_OT_BYTE,
236 ((Any, 0))
237 ((NoFit, 1))
238 ((VeryLight, 2))
239 ((Light, 3))
240 ((Thin, 4))
241 ((Book, 5))
242 ((Medium, 6))
243 ((Demi, 7))
244 ((Bold, 8))
245 ((Heavy, 9))
246 ((Black, 10))
247 ((ExtraBlack, 11))
248 SK_SEQ_END,
249 (value)SK_SEQ_END)
250 } bWeight;
252 struct Spacing {
253 SK_TYPED_ENUM(Value, SK_OT_BYTE,
254 ((Any, 0))
255 ((NoFit, 1))
256 ((ProportionalSpaced, 2))
257 ((Monospaced, 3))
258 SK_SEQ_END,
259 (value)SK_SEQ_END)
260 } bSpacing;
262 struct AspectRatio {
263 SK_TYPED_ENUM(Value, SK_OT_BYTE,
264 ((Any, 0))
265 ((NoFit, 1))
266 ((VeryCondensed, 2))
267 ((Condensed, 3))
268 ((Normal, 4))
269 ((Expanded, 5))
270 ((VeryExpanded, 6))
271 SK_SEQ_END,
272 (value)SK_SEQ_END)
273 } bAspectRatio;
275 struct Contrast {
276 SK_TYPED_ENUM(Value, SK_OT_BYTE,
277 ((Any, 0))
278 ((NoFit, 1))
279 ((None, 2))
280 ((VeryLow, 3))
281 ((Low, 4))
282 ((MediumLow, 5))
283 ((Medium, 6))
284 ((MediumHigh, 7))
285 ((High, 8))
286 ((VeryHigh, 9))
287 SK_SEQ_END,
288 (value)SK_SEQ_END)
289 } bContrast;
291 struct Topology {
292 SK_TYPED_ENUM(Value, SK_OT_BYTE,
293 ((Any, 0))
294 ((NoFit, 1))
295 ((Roman_Disconnected, 2))
296 ((Roman_Trailing, 3))
297 ((Roman_Connected, 4))
298 ((Cursive_Disconnected, 5))
299 ((Cursive_Trailing, 6))
300 ((Cursive_Connected, 7))
301 ((Blackletter_Disconnected, 8))
302 ((Blackletter_Trailing, 9))
303 ((Blackletter_Connected, 10))
304 SK_SEQ_END,
305 (value)SK_SEQ_END)
306 } bTopology;
308 struct Form {
309 SK_TYPED_ENUM(Value, SK_OT_BYTE,
310 ((Any, 0))
311 ((NoFit, 1))
312 ((Upright_NoWrapping, 2))
313 ((Upright_SomeWrapping, 3))
314 ((Upright_MoreWrapping, 4))
315 ((Upright_ExtremeWrapping, 5))
316 ((Oblique_NoWrapping, 6))
317 ((Oblique_SomeWrapping, 7))
318 ((Oblique_MoreWrapping, 8))
319 ((Oblique_ExtremeWrapping, 9))
320 ((Exaggerated_NoWrapping, 10))
321 ((Exaggerated_SomeWrapping, 11))
322 ((Exaggerated_MoreWrapping, 12))
323 ((Exaggerated_ExtremeWrapping, 13))
324 SK_SEQ_END,
325 (value)SK_SEQ_END)
326 } bForm;
328 struct Finials {
329 SK_TYPED_ENUM(Value, SK_OT_BYTE,
330 ((Any, 0))
331 ((NoFit, 1))
332 ((None_NoLoops, 2))
333 ((None_ClosedLoops, 3))
334 ((None_OpenLoops, 4))
335 ((Sharp_NoLoops, 5))
336 ((Sharp_ClosedLoops, 6))
337 ((Sharp_OpenLoops, 7))
338 ((Tapered_NoLoops, 8))
339 ((Tapered_ClosedLoops, 9))
340 ((Tapered_OpenLoops, 10))
341 ((Round_NoLoops, 11))
342 ((Round_ClosedLoops, 12))
343 ((Round_OpenLoops, 13))
344 SK_SEQ_END,
345 (value)SK_SEQ_END)
346 } bFinials;
348 struct XAscent {
349 SK_TYPED_ENUM(Value, SK_OT_BYTE,
350 ((Any, 0))
351 ((NoFit, 1))
352 ((VeryLow, 2))
353 ((Low, 3))
354 ((Medium, 4))
355 ((High, 5))
356 ((VeryHigh, 6))
357 SK_SEQ_END,
358 (value)SK_SEQ_END)
359 } bXAscent;
360 } script;
362 struct Decorative {
363 struct Class {
364 SK_TYPED_ENUM(Value, SK_OT_BYTE,
365 ((Any, 0))
366 ((NoFit, 1))
367 ((Derivative, 2))
368 ((NonStandard_Topology, 3))
369 ((NonStandard_Elements, 4))
370 ((NonStandard_Aspect, 5))
371 ((Initials, 6))
372 ((Cartoon, 7))
373 ((PictureStems, 8))
374 ((Ornamented, 9))
375 ((TextAndBackground, 10))
376 ((Collage, 11))
377 ((Montage, 12))
378 SK_SEQ_END,
379 (value)SK_SEQ_END)
380 } bClass;
382 struct Weight {
383 SK_TYPED_ENUM(Value, SK_OT_BYTE,
384 ((Any, 0))
385 ((NoFit, 1))
386 ((VeryLight, 2))
387 ((Light, 3))
388 ((Thin, 4))
389 ((Book, 5))
390 ((Medium, 6))
391 ((Demi, 7))
392 ((Bold, 8))
393 ((Heavy, 9))
394 ((Black, 10))
395 ((ExtraBlack, 11))
396 SK_SEQ_END,
397 (value)SK_SEQ_END)
398 } bWeight;
400 struct Aspect {
401 SK_TYPED_ENUM(Value, SK_OT_BYTE,
402 ((Any, 0))
403 ((NoFit, 1))
404 ((SuperCondensed, 2))
405 ((VeryCondensed, 3))
406 ((Condensed, 4))
407 ((Normal, 5))
408 ((Extended, 6))
409 ((VeryExtended, 7))
410 ((SuperExtended, 8))
411 ((Monospaced, 9))
412 SK_SEQ_END,
413 (value)SK_SEQ_END)
414 } bAspect;
416 struct Contrast {
417 SK_TYPED_ENUM(Value, SK_OT_BYTE,
418 ((Any, 0))
419 ((NoFit, 1))
420 ((None, 2))
421 ((VeryLow, 3))
422 ((Low, 4))
423 ((MediumLow, 5))
424 ((Medium, 6))
425 ((MediumHigh, 7))
426 ((High, 8))
427 ((VeryHigh, 9))
428 ((HorizontalLow, 10))
429 ((HorizontalMedium, 11))
430 ((HorizontalHigh, 12))
431 ((Broken, 13))
432 SK_SEQ_END,
433 (value)SK_SEQ_END)
434 } bContrast;
436 struct SerifVariant {
437 SK_TYPED_ENUM(Value, SK_OT_BYTE,
438 ((Any, 0))
439 ((NoFit, 1))
440 ((Cove, 2))
441 ((ObtuseCove, 3))
442 ((SquareCove, 4))
443 ((ObtuseSquareCove, 5))
444 ((Square, 6))
445 ((Thin, 7))
446 ((Oval, 8))
447 ((Exaggerated, 9))
448 ((Triangle, 10))
449 ((NormalSans, 11))
450 ((ObtuseSans, 12))
451 ((PerpendicularSans, 13))
452 ((Flared, 14))
453 ((Rounded, 15))
454 ((Script, 16))
455 SK_SEQ_END,
456 (value)SK_SEQ_END)
457 } bSerifVariant;
459 struct Treatment {
460 SK_TYPED_ENUM(Value, SK_OT_BYTE,
461 ((Any, 0))
462 ((NoFit, 1))
463 ((None_StandardSolidFill, 2))
464 ((White_NoFill, 3))
465 ((PatternedFill, 4))
466 ((ComplexFill, 5))
467 ((ShapedFill, 6))
468 ((DrawnDistressed, 7))
469 SK_SEQ_END,
470 (value)SK_SEQ_END)
471 } bTreatment;
473 struct Lining {
474 SK_TYPED_ENUM(Value, SK_OT_BYTE,
475 ((Any, 0))
476 ((NoFit, 1))
477 ((None, 2))
478 ((Inline, 3))
479 ((Outline, 4))
480 ((Engraved, 5))
481 ((Shadow, 6))
482 ((Relief, 7))
483 ((Backdrop, 8))
484 SK_SEQ_END,
485 (value)SK_SEQ_END)
486 } bLining;
488 struct Topology {
489 SK_TYPED_ENUM(Value, SK_OT_BYTE,
490 ((Any, 0))
491 ((NoFit, 1))
492 ((Standard, 2))
493 ((Square, 3))
494 ((MultipleSegment, 4))
495 ((DecoWacoMidlines, 5))
496 ((UnevenWeighting, 6))
497 ((DiverseArms, 7))
498 ((DiverseForms, 8))
499 ((LombardicForms, 9))
500 ((UpperCaseInLowerCase, 10))
501 ((ImpliedTopology, 11))
502 ((HorseshoeEandA, 12))
503 ((Cursive, 13))
504 ((Blackletter, 14))
505 ((SwashVariance, 15))
506 SK_SEQ_END,
507 (value)SK_SEQ_END)
508 } bTopology;
510 struct RangeOfCharacters {
511 SK_TYPED_ENUM(Value, SK_OT_BYTE,
512 ((Any, 0))
513 ((NoFit, 1))
514 ((ExtendedCollection, 2))
515 ((Litterals, 3))
516 ((NoLowerCase, 4))
517 ((SmallCaps, 5))
518 SK_SEQ_END,
519 (value)SK_SEQ_END)
520 } bRangeOfCharacters;
521 } decorative;
523 struct Pictoral {
524 struct Kind {
525 SK_TYPED_ENUM(Value, SK_OT_BYTE,
526 ((Any, 0))
527 ((NoFit, 1))
528 ((Montages, 2))
529 ((Pictures, 3))
530 ((Shapes, 4))
531 ((Scientific, 5))
532 ((Music, 6))
533 ((Expert, 7))
534 ((Patterns, 8))
535 ((Boarders, 9))
536 ((Icons, 10))
537 ((Logos, 11))
538 ((IndustrySpecific, 12))
539 SK_SEQ_END,
540 (value)SK_SEQ_END)
541 } bKind;
543 struct Weight {
544 SK_TYPED_ENUM(Value, SK_OT_BYTE,
545 ((NoFit, 1))
546 SK_SEQ_END,
547 (value)SK_SEQ_END)
548 } bWeight;
550 struct Spacing {
551 SK_TYPED_ENUM(Value, SK_OT_BYTE,
552 ((Any, 0))
553 ((NoFit, 1))
554 ((ProportionalSpaced, 2))
555 ((Monospaced, 3))
556 SK_SEQ_END,
557 (value)SK_SEQ_END)
558 } bSpacing;
560 struct AspectRatioAndContrast {
561 SK_TYPED_ENUM(Value, SK_OT_BYTE,
562 ((NoFit, 1))
563 SK_SEQ_END,
564 (value)SK_SEQ_END)
565 } bAspectRatioAndContrast;
567 struct AspectRatio94 {
568 SK_TYPED_ENUM(Value, SK_OT_BYTE,
569 ((Any, 0))
570 ((NoFit, 1))
571 ((NoWidth, 2))
572 ((ExceptionallyWide, 3))
573 ((SuperWide, 4))
574 ((VeryWide, 5))
575 ((Wide, 6))
576 ((Normal, 7))
577 ((Narrow, 8))
578 ((VeryNarrow, 9))
579 SK_SEQ_END,
580 (value)SK_SEQ_END)
581 } bAspectRatio94;
583 struct AspectRatio119 {
584 SK_TYPED_ENUM(Value, SK_OT_BYTE,
585 ((Any, 0))
586 ((NoFit, 1))
587 ((NoWidth, 2))
588 ((ExceptionallyWide, 3))
589 ((SuperWide, 4))
590 ((VeryWide, 5))
591 ((Wide, 6))
592 ((Normal, 7))
593 ((Narrow, 8))
594 ((VeryNarrow, 9))
595 SK_SEQ_END,
596 (value)SK_SEQ_END)
597 } bAspectRatio119;
599 struct AspectRatio157 {
600 SK_TYPED_ENUM(Value, SK_OT_BYTE,
601 ((Any, 0))
602 ((NoFit, 1))
603 ((NoWidth, 2))
604 ((ExceptionallyWide, 3))
605 ((SuperWide, 4))
606 ((VeryWide, 5))
607 ((Wide, 6))
608 ((Normal, 7))
609 ((Narrow, 8))
610 ((VeryNarrow, 9))
611 SK_SEQ_END,
612 (value)SK_SEQ_END)
613 } bAspectRatio157;
615 struct AspectRatio163 {
616 SK_TYPED_ENUM(Value, SK_OT_BYTE,
617 ((Any, 0))
618 ((NoFit, 1))
619 ((NoWidth, 2))
620 ((ExceptionallyWide, 3))
621 ((SuperWide, 4))
622 ((VeryWide, 5))
623 ((Wide, 6))
624 ((Normal, 7))
625 ((Narrow, 8))
626 ((VeryNarrow, 9))
627 SK_SEQ_END,
628 (value)SK_SEQ_END)
629 } bAspectRatio163;
630 } pictoral;
631 } data;
632 };
634 #pragma pack(pop)
637 SK_COMPILE_ASSERT(sizeof(SkPanose) == 10, sizeof_SkPanose_not_10);
639 #endif