tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

UseCounters.conf (18933B)


      1 // This Source Code Form is subject to the terms of the Mozilla Public
      2 // License, v. 2.0. If a copy of the MPL was not distributed with this
      3 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
      4 
      5 // This file defines a list of use counters, which are things that can
      6 // record usage of Web platform features and then report this information
      7 // through Telemetry.
      8 //
      9 // The format of this file is very strict.  Each line can be:
     10 //
     11 //   (a) a blank line
     12 //
     13 //   (b) a comment, which is a line that begins with "//"
     14 //
     15 //   (c) one of three possible use counter declarations:
     16 //
     17 //         method <IDL interface name>.<IDL operation name>
     18 //         attribute <IDL interface name>.<IDL attribute name>
     19 //         custom <any valid identifier> <description>
     20 //
     21 // The <description> for custom counters will be appended to "Whether a document "
     22 // or "Whether a page ", so phrase it appropriately.  For instance, "constructs a
     23 // Foo object" or "calls Document.bar('some value')".  It may contain any
     24 // character (including whitespace).
     25 //
     26 // To actually cause use counters to be incremented, DOM methods
     27 // and attributes must have a [UseCounter] extended attribute in
     28 // the Web IDL file.
     29 //
     30 // Custom counters are incremented when
     31 // SetUseCounter(eUseCounter_custom_MyName) is called on a Document object.
     32 //
     33 // You might reasonably ask why we have this file and we require
     34 // annotating things with [UseCounter] in the relevant WebIDL file as
     35 // well.  Generating things from bindings codegen and ensuring all the
     36 // dependencies were correct would have been rather difficult.
     37 //
     38 // NOTE: You might need a data collection review if you are adding
     39 // a custom use counter. And for WebIDL methods or attributes,
     40 // deprecated operations, or CSS properties: you almost certainly
     41 // don't need a data collection review.
     42 // https://firefox-source-docs.mozilla.org/dom/use-counters.html#data-review
     43 
     44 method SVGSVGElement.getElementById
     45 attribute SVGSVGElement.currentScale
     46 
     47 // Push API
     48 method PushManager.subscribe
     49 method PushSubscription.unsubscribe
     50 
     51 // window.sidebar
     52 attribute Window.sidebar
     53 
     54 // DataTransfer API (gecko-only methods)
     55 method DataTransfer.addElement
     56 attribute DataTransfer.mozItemCount
     57 attribute DataTransfer.mozCursor
     58 method DataTransfer.mozTypesAt
     59 method DataTransfer.mozClearDataAt
     60 method DataTransfer.mozSetDataAt
     61 method DataTransfer.mozGetDataAt
     62 attribute DataTransfer.mozUserCancelled
     63 attribute DataTransfer.mozSourceNode
     64 
     65 // JavaScript feature usage
     66 custom JS_asmjs uses asm.js
     67 custom JS_wasm uses WebAssembly
     68 custom JS_use_asm has instantiated a script containing "use asm" either in the top level or a nested function
     69 custom JS_wasm_legacy_exceptions uses WebAssembly legacy exception-handling
     70 custom JS_isHTMLDDA_fuse has used the document.all getter (popping the EmulatesUndefined Fuse)
     71 custom JS_optimizeGetIterator_fuse has modified any builtins such that the GetIterator fuse is popped
     72 custom JS_optimizeArraySpecies_fuse has modified builtin Array objects such that the ArraySpecies fuse is popped
     73 custom JS_optimizePromiseLookup_fuse has modified builtin Promise objects such that the PromiseLookup fuse is popped
     74 custom JS_thenable resolved a promise using thenable support rather than builtin methods
     75 custom JS_thenable_proto resolved a promise using thenable on prototype
     76 custom JS_thenable_standard_proto resolved a promise using thenable on a standard prototype
     77 custom JS_thenable_object_proto resolved a promise using thenable on a realms Object.prototype
     78 custom JS_legacy_lang_subtag uses a 5-to-8-character language subtag in Intl.Locale constructor
     79 custom JS_ic_stub_too_large tried to create an IC stub that was too large
     80 custom JS_ic_stub_oom OOMed while creating IC stub
     81 custom JS_dateparse called Date.parse
     82 custom JS_dateparse_impl_def call to Date.parse used implementation defined behaviour
     83 custom JS_large_oom_reported reported a large oom
     84 custom JS_small_oom_reported reported a small oom
     85 custom JS_large_oom_recovered recovered a large oom
     86 custom JS_small_oom_recovered recovered a small oom
     87 
     88 // Console API
     89 method console.assert
     90 method console.clear
     91 method console.count
     92 method console.countReset
     93 method console.debug
     94 method console.error
     95 method console.info
     96 method console.log
     97 method console.table
     98 method console.trace
     99 method console.warn
    100 method console.dir
    101 method console.dirxml
    102 method console.group
    103 method console.groupCollapsed
    104 method console.groupEnd
    105 method console.time
    106 method console.timeLog
    107 method console.timeEnd
    108 method console.exception
    109 method console.timeStamp
    110 method console.profile
    111 method console.profileEnd
    112 
    113 // CookieStore API
    114 method CookieStore.get
    115 method CookieStore.getAll
    116 method CookieStore.set
    117 method CookieStore.delete
    118 
    119 // document.open information
    120 custom DocumentOpen calls document.open in a way that creates a new Window object
    121 
    122 // HTMLDocument named getter
    123 custom HTMLDocumentNamedGetterHit calls to the named getter on HTMLDocument that find something via the name lookup
    124 
    125 custom FilteredCrossOriginIFrame cross-origin <iframe> within a CSS/SVG filter
    126 
    127 // Custom Elements
    128 method CustomElementRegistry.define
    129 custom CustomizedBuiltin registers a customized built-in element
    130 
    131 // XSLT
    132 custom XSLStylesheet uses an XSL Stylesheet
    133 method XSLTProcessor.constructor
    134 
    135 // Shadow DOM
    136 method Element.attachShadow
    137 
    138 // Non-standard capture methods
    139 method Element.setCapture
    140 method Element.releaseCapture
    141 
    142 // Pointer Capture
    143 method Element.setPointerCapture
    144 method Element.releasePointerCapture
    145 
    146 // Media Device Access
    147 method MediaDevices.enumerateDevices
    148 custom EnumerateDevicesInsec calls MediaDevices.enumerateDevices from an insecure context
    149 custom EnumerateDevicesUnfocused calls MediaDevices.enumerateDevices from a unfocused document
    150 method MediaDevices.getUserMedia
    151 method Navigator.mozGetUserMedia
    152 custom GetUserMediaUnfocused calls MediaDevices.getUserMedia from an unfocused document
    153 custom GetUserMediaInsec calls MediaDevices.getUserMedia from an insecure context
    154 method MediaDevices.getDisplayMedia
    155 
    156 // Non-standard Messaging Layer Security
    157 method MLS.stateDelete
    158 method MLS.stateDeleteGroup
    159 method MLS.generateSignatureKeypair
    160 method MLS.generateCredentialBasic
    161 method MLS.generateKeyPackage
    162 method MLS.groupCreate
    163 method MLS.groupJoin
    164 method MLS.groupAdd
    165 method MLS.groupProposeAdd
    166 method MLS.groupRemove
    167 method MLS.groupProposeRemove
    168 method MLS.groupClose
    169 method MLS.groupMembers
    170 method MLS.receive
    171 method MLS.send
    172 method MLS.deriveExporter
    173 
    174 // Non-standard Document.mozSetImageElement.
    175 method Document.mozSetImageElement
    176 
    177 // Non-standard Window.DOMMouseScroll and MozMousePixelScroll
    178 custom ondommousescroll sets DOMMouseScroll event listener
    179 custom onmozmousepixelscroll sets MozMousePixelScroll event listener
    180 
    181 custom PercentageStrokeWidthInSVG whether percentage stroke-width is used in SVG elements (excluding <text>)
    182 custom PercentageStrokeWidthInSVGText whether percentage stroke-width is used in SVG <text>
    183 
    184 // Missing-property use counters.  We claim these are "method" use
    185 // counters, because we don't need a separate description string for
    186 // them and we only need one use counter, not a getter/setter pair.
    187 method HTMLDocument.caretRangeFromPoint
    188 method HTMLDocument.exitPictureInPicture
    189 method HTMLDocument.featurePolicy
    190 method HTMLDocument.onbeforecopy
    191 method HTMLDocument.onbeforecut
    192 method HTMLDocument.onbeforepaste
    193 method HTMLDocument.oncancel
    194 method HTMLDocument.onfreeze
    195 method HTMLDocument.onmousewheel
    196 method HTMLDocument.onresume
    197 method HTMLDocument.onsearch
    198 method HTMLDocument.onwebkitfullscreenchange
    199 method HTMLDocument.onwebkitfullscreenerror
    200 method HTMLDocument.pictureInPictureElement
    201 method HTMLDocument.pictureInPictureEnabled
    202 method HTMLDocument.registerElement
    203 method HTMLDocument.wasDiscarded
    204 method HTMLDocument.webkitCancelFullScreen
    205 method HTMLDocument.webkitCurrentFullScreenElement
    206 method HTMLDocument.webkitExitFullscreen
    207 method HTMLDocument.webkitFullscreenElement
    208 method HTMLDocument.webkitFullscreenEnabled
    209 method HTMLDocument.webkitHidden
    210 method HTMLDocument.webkitIsFullScreen
    211 method HTMLDocument.webkitVisibilityState
    212 method HTMLDocument.xmlEncoding
    213 method HTMLDocument.xmlStandalone
    214 method HTMLDocument.xmlVersion
    215 method Location.ancestorOrigins
    216 method Window.AbsoluteOrientationSensor
    217 method Window.Accelerometer
    218 method Window.BackgroundFetchManager
    219 method Window.BackgroundFetchRecord
    220 method Window.BackgroundFetchRegistration
    221 method Window.BeforeInstallPromptEvent
    222 method Window.Bluetooth
    223 method Window.BluetoothCharacteristicProperties
    224 method Window.BluetoothDevice
    225 method Window.BluetoothRemoteGATTCharacteristic
    226 method Window.BluetoothRemoteGATTDescriptor
    227 method Window.BluetoothRemoteGATTServer
    228 method Window.BluetoothRemoteGATTService
    229 method Window.BluetoothUUID
    230 method Window.CanvasCaptureMediaStreamTrack
    231 method Window.chrome
    232 method Window.ClipboardItem
    233 method Window.CSSImageValue
    234 method Window.CSSKeywordValue
    235 method Window.CSSMathClamp
    236 method Window.CSSMathInvert
    237 method Window.CSSMathMax
    238 method Window.CSSMathMin
    239 method Window.CSSMathNegate
    240 method Window.CSSMathProduct
    241 method Window.CSSMathSum
    242 method Window.CSSMathValue
    243 method Window.CSSMatrixComponent
    244 method Window.CSSNumericArray
    245 method Window.CSSNumericValue
    246 method Window.CSSPerspective
    247 method Window.CSSPositionValue
    248 method Window.CSSPropertyRule
    249 method Window.CSSRotate
    250 method Window.CSSScale
    251 method Window.CSSSkew
    252 method Window.CSSSkewX
    253 method Window.CSSSkewY
    254 method Window.CSSStyleValue
    255 method Window.CSSTransformComponent
    256 method Window.CSSTransformValue
    257 method Window.CSSTranslate
    258 method Window.CSSUnitValue
    259 method Window.CSSUnparsedValue
    260 method Window.CSSVariableReferenceValue
    261 method Window.defaultStatus
    262 // See comments in Window.webidl about why this is disabled.
    263 //method Window.defaultstatus
    264 method Window.DeviceMotionEventAcceleration
    265 method Window.DeviceMotionEventRotationRate
    266 method Window.DOMError
    267 method Window.EncodedVideoChunk
    268 method Window.EnterPictureInPictureEvent
    269 method Window.External
    270 method Window.FederatedCredential
    271 method Window.Gyroscope
    272 method Window.HTMLContentElement
    273 method Window.HTMLShadowElement
    274 method Window.ImageCapture
    275 method Window.InputDeviceCapabilities
    276 method Window.InputDeviceInfo
    277 method Window.Keyboard
    278 method Window.KeyboardLayoutMap
    279 method Window.LinearAccelerationSensor
    280 method Window.MediaSettingsRange
    281 method Window.MIDIAccess
    282 method Window.MIDIConnectionEvent
    283 method Window.MIDIInput
    284 method Window.MIDIInputMap
    285 method Window.MIDIMessageEvent
    286 method Window.MIDIOutput
    287 method Window.MIDIOutputMap
    288 method Window.MIDIPort
    289 method Window.NetworkInformation
    290 method Window.offscreenBuffering
    291 method Window.onbeforeinstallprompt
    292 method Window.oncancel
    293 method Window.onmousewheel
    294 method Window.onorientationchange
    295 method Window.onsearch
    296 method Window.onselectionchange
    297 method Window.openDatabase
    298 method Window.orientation
    299 method Window.OrientationSensor
    300 method Window.OverconstrainedError
    301 method Window.PasswordCredential
    302 method Window.PaymentAddress
    303 method Window.PaymentInstruments
    304 method Window.PaymentManager
    305 method Window.PaymentMethodChangeEvent
    306 method Window.PaymentRequest
    307 method Window.PaymentRequestUpdateEvent
    308 method Window.PaymentResponse
    309 method Window.PerformanceLongTaskTiming
    310 method Window.PhotoCapabilities
    311 method Window.PictureInPictureEvent
    312 method Window.PictureInPictureWindow
    313 method Window.Presentation
    314 method Window.PresentationAvailability
    315 method Window.PresentationConnection
    316 method Window.PresentationConnectionAvailableEvent
    317 method Window.PresentationConnectionCloseEvent
    318 method Window.PresentationConnectionList
    319 method Window.PresentationReceiver
    320 method Window.PresentationRequest
    321 method Window.RelativeOrientationSensor
    322 method Window.RemotePlayback
    323 method Window.Report
    324 method Window.ReportBody
    325 method Window.ReportingObserver
    326 method Window.RTCError
    327 method Window.RTCErrorEvent
    328 method Window.RTCIceTransport
    329 method Window.RTCPeerConnectionIceErrorEvent
    330 method Window.Sensor
    331 method Window.SensorErrorEvent
    332 method Window.SpeechRecognitionAlternative
    333 method Window.SpeechRecognitionResult
    334 method Window.SpeechRecognitionResultList
    335 method Window.styleMedia
    336 method Window.StylePropertyMap
    337 method Window.StylePropertyMapReadOnly
    338 method Window.SVGDiscardElement
    339 method Window.SyncManager
    340 method Window.TaskAttributionTiming
    341 method Window.TextEvent
    342 method Window.Touch
    343 method Window.TouchEvent
    344 method Window.TouchList
    345 method Window.USB
    346 method Window.USBAlternateInterface
    347 method Window.USBConfiguration
    348 method Window.USBConnectionEvent
    349 method Window.USBDevice
    350 method Window.USBEndpoint
    351 method Window.USBInterface
    352 method Window.USBInTransferResult
    353 method Window.USBIsochronousInTransferPacket
    354 method Window.USBIsochronousInTransferResult
    355 method Window.USBIsochronousOutTransferPacket
    356 method Window.USBIsochronousOutTransferResult
    357 method Window.USBOutTransferResult
    358 method Window.UserActivation
    359 method Window.VideoColorSpace
    360 method Window.VideoDecoder
    361 method Window.VideoEncoder
    362 method Window.VideoFrame
    363 method Window.WakeLock
    364 method Window.WakeLockSentinel
    365 method Window.webkitCancelAnimationFrame
    366 method Window.webkitMediaStream
    367 method Window.WebKitMutationObserver
    368 method Window.webkitRequestAnimationFrame
    369 method Window.webkitRequestFileSystem
    370 method Window.webkitResolveLocalFileSystemURL
    371 method Window.webkitRTCPeerConnection
    372 method Window.webkitSpeechGrammar
    373 method Window.webkitSpeechGrammarList
    374 method Window.webkitSpeechRecognition
    375 method Window.webkitSpeechRecognitionError
    376 method Window.webkitSpeechRecognitionEvent
    377 method Window.webkitStorageInfo
    378 
    379 // Gecko-specific command usage of `Document.execCommand`
    380 custom DocumentExecCommandContentReadOnly calls execCommand with contentReadOnly
    381 
    382 // Methods used in frameworks to create DOM from strings
    383 method DOMParser.parseFromString
    384 method Range.createContextualFragment
    385 
    386 // Gecko-specific command usage of `Document.queryCommandState` or `Document.queryCommandValue`
    387 custom DocumentQueryCommandStateOrValueContentReadOnly calls queryCommandState or queryCommandValue with contentReadOnly
    388 custom DocumentQueryCommandStateOrValueInsertBrOnReturn calls queryCommandState or queryCommandValue with insertBrOnReturn
    389 
    390 // Gecko-specific command usage of `Document.queryCommandSupported` or `Document.queryCommandEnabled`
    391 custom DocumentQueryCommandSupportedOrEnabledContentReadOnly calls queryCommandSupported or queryCommandEnabled with contentReadOnly
    392 custom DocumentQueryCommandSupportedOrEnabledInsertBrOnReturn calls queryCommandSupported or queryCommandEnabled with insertBrOnReturn
    393 
    394 // SVG filters
    395 custom feBlend uses the feBlend SVG filter.
    396 custom feColorMatrix uses the feColorMatrix SVG filter.
    397 custom feComponentTransfer uses the feComponentTransfer SVG filter.
    398 custom feComposite uses the feComposite SVG filter.
    399 custom feConvolveMatrix uses the feConvolveMatrix SVG filter.
    400 custom feDiffuseLighting uses the feDiffuseLighting SVG filter.
    401 custom feDisplacementMap uses the feDisplacementMap SVG filter.
    402 custom feFlood uses the feFlood SVG filter.
    403 custom feGaussianBlur uses the feGaussianBlur SVG filter.
    404 custom feImage uses the feImage SVG filter.
    405 custom feMerge uses the feMerge SVG filter.
    406 custom feMorphology uses the feMorphology SVG filter.
    407 custom feOffset uses the feOffset SVG filter.
    408 custom feSpecularLighting uses the feSpecularLighting SVG filter.
    409 custom feTile uses the feTile SVG filter.
    410 custom feTurbulence uses the feTurbulence SVG filter.
    411 
    412 custom WrFilterFallback triggers the blob fallback for an SVG filter.
    413 
    414 // WebGPU
    415 custom WebgpuRequestAdapter requests a WebGPU adapter
    416 custom WebgpuRenderOutput displays WebGPU rendering output
    417 
    418 // Sanitizer API
    419 method Sanitizer.constructor
    420 method Sanitizer.sanitize
    421 method Element.setHTML
    422 
    423 // Features that might be deprecated in the future
    424 custom WindowOpenEmptyUrl calls window.open with an empty url argument
    425 
    426 // Unsupported web APIs in Private Browsing Mode
    427 custom PrivateBrowsingIDBFactoryOpen calls indexedDB.open in Private Browsing Mode
    428 custom PrivateBrowsingIDBFactoryDeleteDatabase calls indexedDB.deleteDatabase in Private Browsing Mode
    429 custom PrivateBrowsingCachesMatch calls caches.match in Private Browsing Mode
    430 custom PrivateBrowsingCachesHas calls caches.has in Private Browsing Mode
    431 custom PrivateBrowsingCachesOpen calls caches.open in Private Browsing Mode
    432 custom PrivateBrowsingCachesDelete calls caches.delete in Private Browsing Mode
    433 custom PrivateBrowsingCachesKeys calls caches.keys in Private Browsing Mode
    434 custom PrivateBrowsingNavigatorServiceWorker accesses navigator.serviceWorker in Private Browsing Mode
    435 
    436 // Mechanism for rewriting old YouTube flash embeds to use HTML5 video
    437 custom YouTubeFlashEmbed in <object> or <embed>
    438 
    439 method Scheduler.postTask
    440 
    441 method HTMLDialogElement.show
    442 
    443 // Use Counters for HTTPS Features like Mixed-Content-Blocking, HTTPS-First ...
    444 custom MixedContentUpgradedImageSuccess includes a mixed content img element that loads.
    445 custom MixedContentUpgradedImageFailure includes a mixed content img element that does not load.
    446 custom MixedContentUpgradedVideoSuccess includes a mixed content video element that loads.
    447 custom MixedContentUpgradedVideoFailure includes a mixed content video element that does not laod.
    448 custom MixedContentUpgradedAudioSuccess includes a mixed content audio element that loads.
    449 custom MixedContentUpgradedAudioFailure includes a mixed content audio element that does not load.
    450 // Counterparts for when we do not enable upgrading
    451 custom MixedContentNotUpgradedImageSuccess includes a mixed content img element that loads.
    452 custom MixedContentNotUpgradedImageFailure includes a mixed content img element that does not load.
    453 custom MixedContentNotUpgradedVideoSuccess includes a mixed content video element that loads.
    454 custom MixedContentNotUpgradedVideoFailure includes a mixed content video element that does not laod.
    455 custom MixedContentNotUpgradedAudioSuccess includes a mixed content audio element that loads.
    456 custom MixedContentNotUpgradedAudioFailure includes a mixed content audio element that does not load.
    457 
    458 custom ComponentsShimResolved resolves the components shim.
    459 
    460 custom TextDirectivePages used text fragments
    461 custom InvalidTextDirectives had a text fragment that could not be found after loading has finished
    462 custom TextDirectiveNotCreated has not succeeded in creating a text fragment
    463 
    464 custom MathMLUsed has used MathML
    465 
    466 // Dictionary members for Notifications API
    467 // Those are not methods but it doesn't matter for the generated Glean entries.
    468 method NotificationOptions.navigate
    469 method NotificationOptions.image
    470 method NotificationOptions.badge
    471 method NotificationOptions.vibrate
    472 method NotificationOptions.timestamp
    473 method NotificationOptions.renotify
    474 method NotificationOptions.requireInteraction
    475 method NotificationOptions.actions
    476 
    477 // NOTE: You might need a data collection review if you are adding
    478 // a custom use counter. And for WebIDL methods or attributes,
    479 // deprecated operations, or CSS properties: you almost certainly
    480 // don't need a data collection review.
    481 // https://firefox-source-docs.mozilla.org/dom/use-counters.html#data-review