1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// Names should not be re-used.
ITEM_VALUE(TouchEvents, 1u << 0)
ITEM_VALUE(PointerEvents, 1u << 1)
ITEM_VALUE(KeyboardEvents, 1u << 2)
ITEM_VALUE(ScreenOrientation, 1u << 3)
// SpeechSynthesis part of the Web Speech API
ITEM_VALUE(SpeechSynthesis, 1u << 4)
// `prefers-color-scheme` CSS media feature
ITEM_VALUE(CSSPrefersColorScheme, 1u << 5)
// `prefers-reduced-motion` CSS media feature
ITEM_VALUE(CSSPrefersReducedMotion, 1u << 6)
// `prefers-contrast` CSS media feature
ITEM_VALUE(CSSPrefersContrast, 1u << 7)
// Add random noises to image data extracted from canvas.
ITEM_VALUE(CanvasRandomization, 1u << 8)
// Canvas targets: For unusual combinations of these, see comments
// in IsImageExtractionAllowed
ITEM_VALUE(CanvasImageExtractionPrompt, 1u << 9)
ITEM_VALUE(CanvasExtractionFromThirdPartiesIsBlocked, 1u << 10)
ITEM_VALUE(CanvasExtractionBeforeUserInputIsBlocked, 1u << 11)
// Various "client identification" values of the navigator object
ITEM_VALUE(NavigatorAppName, 1u << 12)
ITEM_VALUE(NavigatorAppVersion, 1u << 13)
ITEM_VALUE(NavigatorBuildID, 1u << 14)
ITEM_VALUE(NavigatorHWConcurrency, 1u << 15)
ITEM_VALUE(NavigatorOscpu, 1u << 16)
ITEM_VALUE(NavigatorPlatform, 1u << 17)
ITEM_VALUE(NavigatorUserAgent, 1u << 18)
// Audio/VideoStreamTrack labels
ITEM_VALUE(StreamTrackLabel, 1u << 19)
ITEM_VALUE(StreamVideoFacingMode, 1u << 20)
// !!! Don't forget to update kDefaultFingerintingProtections in nsRFPService.cpp
// if necessary.
/*
* In certain cases, we precompute the value of ShouldRFP for e.g. a Document.
* (This saves us more computation and casting later.) This document will still
* need to check whether an individual target is allowed, but the initial
* question of "Does this document have any RFP applied to it ever?" can still
* be precomputed. This enum value will always be included in RFPLite, so when a
* document asks if they might have RFP enabled, it will return true. (Putting
* this value in the overrides pref is undefined behavior and may do anything.)
*/
ITEM_VALUE(IsAlwaysEnabledForPrecompute, 0)
/*
* This value is the default argument value, to allow all callsites to ShouldRFP
* continue working. We will eventually remove the default argument, and then also
* remove this enum value.
*/
ITEM_VALUE(Unknown, 0xffffffff)
|