summaryrefslogtreecommitdiffstats
path: root/dom/base/UseCounters.conf
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/UseCounters.conf')
-rw-r--r--dom/base/UseCounters.conf467
1 files changed, 467 insertions, 0 deletions
diff --git a/dom/base/UseCounters.conf b/dom/base/UseCounters.conf
new file mode 100644
index 0000000000..67aa988176
--- /dev/null
+++ b/dom/base/UseCounters.conf
@@ -0,0 +1,467 @@
+// 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/.
+
+// This file defines a list of use counters, which are things that can
+// record usage of Web platform features and then report this information
+// through Telemetry.
+//
+// The format of this file is very strict. Each line can be:
+//
+// (a) a blank line
+//
+// (b) a comment, which is a line that begins with "//"
+//
+// (c) one of three possible use counter declarations:
+//
+// method <IDL interface name>.<IDL operation name>
+// attribute <IDL interface name>.<IDL attribute name>
+// custom <any valid identifier> <description>
+//
+// The <description> for custom counters will be appended to "Whether a document "
+// or "Whether a page ", so phrase it appropriately. For instance, "constructs a
+// Foo object" or "calls Document.bar('some value')". It may contain any
+// character (including whitespace).
+//
+// To actually cause use counters to be incremented, DOM methods
+// and attributes must have a [UseCounter] extended attribute in
+// the Web IDL file.
+//
+// Custom counters are incremented when
+// SetUseCounter(eUseCounter_custom_MyName) is called on a Document object.
+//
+// You might reasonably ask why we have this file and we require
+// annotating things with [UseCounter] in the relevant WebIDL file as
+// well. Generating things from bindings codegen and ensuring all the
+// dependencies were correct would have been rather difficult.
+//
+// NOTE: You might need a data collection review if you are adding
+// a custom use counter. And for WebIDL methods or attributes,
+// deprecated operations, or CSS properties: you almost certainly
+// don’t need a data collection review.
+// https://firefox-source-docs.mozilla.org/dom/use-counters.html#data-review
+
+method SVGSVGElement.getElementById
+attribute SVGSVGElement.currentScale
+
+// Push API
+method PushManager.subscribe
+method PushSubscription.unsubscribe
+
+// window.sidebar
+attribute Window.sidebar
+
+// DataTransfer API (gecko-only methods)
+method DataTransfer.addElement
+attribute DataTransfer.mozItemCount
+attribute DataTransfer.mozCursor
+method DataTransfer.mozTypesAt
+method DataTransfer.mozClearDataAt
+method DataTransfer.mozSetDataAt
+method DataTransfer.mozGetDataAt
+attribute DataTransfer.mozUserCancelled
+attribute DataTransfer.mozSourceNode
+
+// Marquee events
+custom onstart sets a <marquee> onstart event listener
+custom onbounce sets a <marquee> onbounce event listener
+custom onfinish sets a <marquee> onfinish event listener
+
+// Element non-standard events
+custom onoverflow sets an element onoverflow event listener
+custom onunderflow sets an element onunderflow event listener
+
+// JavaScript feature usage
+custom JS_asmjs uses asm.js
+custom JS_wasm uses WebAssembly
+custom JS_late_weekday parses a Date with day of week in an unexpected position
+custom JS_wasm_legacy_exceptions uses WebAssembly legacy exception-handling
+
+// Console API
+method console.assert
+method console.clear
+method console.count
+method console.countReset
+method console.debug
+method console.error
+method console.info
+method console.log
+method console.table
+method console.trace
+method console.warn
+method console.dir
+method console.dirxml
+method console.group
+method console.groupCollapsed
+method console.groupEnd
+method console.time
+method console.timeLog
+method console.timeEnd
+method console.exception
+method console.timeStamp
+method console.profile
+method console.profileEnd
+
+// document.open information
+custom DocumentOpen calls document.open in a way that creates a new Window object
+
+// HTMLDocument named getter
+custom HTMLDocumentNamedGetterHit calls to the named getter on HTMLDocument that find something via the name lookup
+
+custom FilteredCrossOriginIFrame cross-origin <iframe> within a CSS/SVG filter
+
+// Custom Elements
+method CustomElementRegistry.define
+custom CustomizedBuiltin registers a customized built-in element
+
+// XSLT
+custom XSLStylesheet uses an XSL Stylesheet
+method XSLTProcessor.constructor
+
+// Shadow DOM
+method Element.attachShadow
+
+// Non-standard capture methods
+method Element.setCapture
+method Element.releaseCapture
+
+// Pointer Capture
+method Element.setPointerCapture
+method Element.releasePointerCapture
+
+// Media Device Access
+method MediaDevices.enumerateDevices
+custom EnumerateDevicesInsec calls MediaDevices.enumerateDevices from an insecure context
+custom EnumerateDevicesUnfocused calls MediaDevices.enumerateDevices from a unfocused document
+method MediaDevices.getUserMedia
+method Navigator.mozGetUserMedia
+custom GetUserMediaUnfocused calls MediaDevices.getUserMedia from an unfocused document
+custom GetUserMediaInsec calls MediaDevices.getUserMedia from an insecure context
+custom MozGetUserMediaInsec calls Navigator.mozGetUserMedia from an insecure context
+method MediaDevices.getDisplayMedia
+
+// Non-standard Document.mozSetImageElement.
+method Document.mozSetImageElement
+
+// Non-standard Window.DOMMouseScroll and MozMousePixelScroll
+custom ondommousescroll sets DOMMouseScroll event listener
+custom onmozmousepixelscroll sets MozMousePixelScroll event listener
+
+custom PercentageStrokeWidthInSVG whether percentage stroke-width is used in SVG elements (excluding <text>)
+custom PercentageStrokeWidthInSVGText whether percentage stroke-width is used in SVG <text>
+
+// Missing-property use counters. We claim these are "method" use
+// counters, because we don't need a separate description string for
+// them and we only need one use counter, not a getter/setter pair.
+method Clipboard.read
+method Clipboard.readText
+method Clipboard.write
+method DataTransferItem.webkitGetAsEntry
+method Document.caretRangeFromPoint
+method Document.exitPictureInPicture
+method Document.featurePolicy
+method Document.onbeforecopy
+method Document.onbeforecut
+method Document.onbeforepaste
+method Document.oncancel
+method Document.onfreeze
+method Document.onmousewheel
+method Document.onresume
+method Document.onsearch
+method Document.onwebkitfullscreenchange
+method Document.onwebkitfullscreenerror
+method Document.pictureInPictureElement
+method Document.pictureInPictureEnabled
+method Document.registerElement
+method Document.wasDiscarded
+method Document.webkitCancelFullScreen
+method Document.webkitCurrentFullScreenElement
+method Document.webkitExitFullscreen
+method Document.webkitFullscreenElement
+method Document.webkitFullscreenEnabled
+method Document.webkitHidden
+method Document.webkitIsFullScreen
+method Document.webkitVisibilityState
+method Document.xmlEncoding
+method Document.xmlStandalone
+method Document.xmlVersion
+method Element.computedStyleMap
+method Element.onmousewheel
+method Element.scrollIntoViewIfNeeded
+method HTMLButtonElement.popoverTargetAction
+method HTMLButtonElement.popoverTargetElement
+method HTMLElement.attributeStyleMap
+method HTMLElement.hidePopover
+method HTMLElement.popover
+method HTMLElement.showPopover
+method HTMLElement.togglePopover
+method HTMLIFrameElement.loading
+method HTMLInputElement.capture
+method HTMLInputElement.incremental
+method HTMLInputElement.onsearch
+method HTMLInputElement.popoverTargetAction
+method HTMLInputElement.popoverTargetElement
+method HTMLInputElement.webkitdirectory
+method HTMLInputElement.webkitEntries
+method HTMLMediaElement.disableRemotePlayback
+method HTMLMediaElement.remote
+method HTMLVideoElement.cancelVideoFrameCallback
+method HTMLVideoElement.disablePictureInPicture
+method HTMLVideoElement.onenterpictureinpicture
+method HTMLVideoElement.onleavepictureinpicture
+method HTMLVideoElement.playsInline
+method HTMLVideoElement.requestPictureInPicture
+method HTMLVideoElement.requestVideoFrameCallback
+method ImageData.colorSpace
+method Location.ancestorOrigins
+method Navigator.canShare
+method Navigator.clearAppBadge
+method Navigator.setAppBadge
+method Navigator.share
+method Navigator.userActivation
+method Navigator.wakeLock
+method ShadowRoot.pictureInPictureElement
+method Window.AbsoluteOrientationSensor
+method Window.Accelerometer
+method Window.BackgroundFetchManager
+method Window.BackgroundFetchRecord
+method Window.BackgroundFetchRegistration
+method Window.BeforeInstallPromptEvent
+method Window.Bluetooth
+method Window.BluetoothCharacteristicProperties
+method Window.BluetoothDevice
+method Window.BluetoothRemoteGATTCharacteristic
+method Window.BluetoothRemoteGATTDescriptor
+method Window.BluetoothRemoteGATTServer
+method Window.BluetoothRemoteGATTService
+method Window.BluetoothUUID
+method Window.CanvasCaptureMediaStreamTrack
+method Window.chrome
+method Window.ClipboardItem
+method Window.CSSImageValue
+method Window.CSSKeywordValue
+method Window.CSSMathClamp
+method Window.CSSMathInvert
+method Window.CSSMathMax
+method Window.CSSMathMin
+method Window.CSSMathNegate
+method Window.CSSMathProduct
+method Window.CSSMathSum
+method Window.CSSMathValue
+method Window.CSSMatrixComponent
+method Window.CSSNumericArray
+method Window.CSSNumericValue
+method Window.CSSPerspective
+method Window.CSSPositionValue
+method Window.CSSPropertyRule
+method Window.CSSRotate
+method Window.CSSScale
+method Window.CSSSkew
+method Window.CSSSkewX
+method Window.CSSSkewY
+method Window.CSSStyleValue
+method Window.CSSTransformComponent
+method Window.CSSTransformValue
+method Window.CSSTranslate
+method Window.CSSUnitValue
+method Window.CSSUnparsedValue
+method Window.CSSVariableReferenceValue
+method Window.defaultStatus
+// See comments in Window.webidl about why this is disabled.
+//method Window.defaultstatus
+method Window.DeviceMotionEventAcceleration
+method Window.DeviceMotionEventRotationRate
+method Window.DOMError
+method Window.EncodedVideoChunk
+method Window.EnterPictureInPictureEvent
+method Window.External
+method Window.FederatedCredential
+method Window.Gyroscope
+method Window.HTMLContentElement
+method Window.HTMLShadowElement
+method Window.ImageCapture
+method Window.InputDeviceCapabilities
+method Window.InputDeviceInfo
+method Window.Keyboard
+method Window.KeyboardLayoutMap
+method Window.LinearAccelerationSensor
+method Window.MediaSettingsRange
+method Window.MIDIAccess
+method Window.MIDIConnectionEvent
+method Window.MIDIInput
+method Window.MIDIInputMap
+method Window.MIDIMessageEvent
+method Window.MIDIOutput
+method Window.MIDIOutputMap
+method Window.MIDIPort
+method Window.NetworkInformation
+method Window.offscreenBuffering
+method Window.onbeforeinstallprompt
+method Window.oncancel
+method Window.onmousewheel
+method Window.onorientationchange
+method Window.onsearch
+method Window.onselectionchange
+method Window.openDatabase
+method Window.orientation
+method Window.OrientationSensor
+method Window.OverconstrainedError
+method Window.PasswordCredential
+method Window.PaymentAddress
+method Window.PaymentInstruments
+method Window.PaymentManager
+method Window.PaymentMethodChangeEvent
+method Window.PaymentRequest
+method Window.PaymentRequestUpdateEvent
+method Window.PaymentResponse
+method Window.PerformanceLongTaskTiming
+method Window.PhotoCapabilities
+method Window.PictureInPictureEvent
+method Window.PictureInPictureWindow
+method Window.Presentation
+method Window.PresentationAvailability
+method Window.PresentationConnection
+method Window.PresentationConnectionAvailableEvent
+method Window.PresentationConnectionCloseEvent
+method Window.PresentationConnectionList
+method Window.PresentationReceiver
+method Window.PresentationRequest
+method Window.RelativeOrientationSensor
+method Window.RemotePlayback
+method Window.Report
+method Window.ReportBody
+method Window.ReportingObserver
+method Window.RTCError
+method Window.RTCErrorEvent
+method Window.RTCIceTransport
+method Window.RTCPeerConnectionIceErrorEvent
+method Window.Sensor
+method Window.SensorErrorEvent
+method Window.SpeechRecognitionAlternative
+method Window.SpeechRecognitionResult
+method Window.SpeechRecognitionResultList
+method Window.styleMedia
+method Window.StylePropertyMap
+method Window.StylePropertyMapReadOnly
+method Window.SVGDiscardElement
+method Window.SyncManager
+method Window.TaskAttributionTiming
+method Window.TextEvent
+method Window.Touch
+method Window.TouchEvent
+method Window.TouchList
+method Window.USB
+method Window.USBAlternateInterface
+method Window.USBConfiguration
+method Window.USBConnectionEvent
+method Window.USBDevice
+method Window.USBEndpoint
+method Window.USBInterface
+method Window.USBInTransferResult
+method Window.USBIsochronousInTransferPacket
+method Window.USBIsochronousInTransferResult
+method Window.USBIsochronousOutTransferPacket
+method Window.USBIsochronousOutTransferResult
+method Window.USBOutTransferResult
+method Window.UserActivation
+method Window.VideoColorSpace
+method Window.VideoDecoder
+method Window.VideoEncoder
+method Window.VideoFrame
+method Window.WakeLock
+method Window.WakeLockSentinel
+method Window.webkitCancelAnimationFrame
+method Window.webkitMediaStream
+method Window.WebKitMutationObserver
+method Window.webkitRequestAnimationFrame
+method Window.webkitRequestFileSystem
+method Window.webkitResolveLocalFileSystemURL
+method Window.webkitRTCPeerConnection
+method Window.webkitSpeechGrammar
+method Window.webkitSpeechGrammarList
+method Window.webkitSpeechRecognition
+method Window.webkitSpeechRecognitionError
+method Window.webkitSpeechRecognitionEvent
+method Window.webkitStorageInfo
+method WorkerNavigator.permissions
+
+// Gecko-specific command usage of `Document.execCommand`
+custom DocumentExecCommandContentReadOnly calls execCommand with contentReadOnly
+
+// Methods used in frameworks to create DOM from strings
+method DOMParser.parseFromString
+method Range.createContextualFragment
+
+// Gecko-specific command usage of `Document.queryCommandState` or `Document.queryCommandValue`
+custom DocumentQueryCommandStateOrValueContentReadOnly calls queryCommandState or queryCommandValue with contentReadOnly
+custom DocumentQueryCommandStateOrValueInsertBrOnReturn calls queryCommandState or queryCommandValue with insertBrOnReturn
+
+// Gecko-specific command usage of `Document.queryCommandSupported` or `Document.queryCommandEnabled`
+custom DocumentQueryCommandSupportedOrEnabledContentReadOnly calls queryCommandSupported or queryCommandEnabled with contentReadOnly
+custom DocumentQueryCommandSupportedOrEnabledInsertBrOnReturn calls queryCommandSupported or queryCommandEnabled with insertBrOnReturn
+
+// SVG filters
+custom feBlend uses the feBlend SVG filter.
+custom feColorMatrix uses the feColorMatrix SVG filter.
+custom feComponentTransfer uses the feComponentTransfer SVG filter.
+custom feComposite uses the feComposite SVG filter.
+custom feConvolveMatrix uses the feConvolveMatrix SVG filter.
+custom feDiffuseLighting uses the feDiffuseLighting SVG filter.
+custom feDisplacementMap uses the feDisplacementMap SVG filter.
+custom feFlood uses the feFlood SVG filter.
+custom feGaussianBlur uses the feGaussianBlur SVG filter.
+custom feImage uses the feImage SVG filter.
+custom feMerge uses the feMerge SVG filter.
+custom feMorphology uses the feMorphology SVG filter.
+custom feOffset uses the feOffset SVG filter.
+custom feSpecularLighting uses the feSpecularLighting SVG filter.
+custom feTile uses the feTile SVG filter.
+custom feTurbulence uses the feTurbulence SVG filter.
+
+custom WrFilterFallback triggers the blob fallback for an SVG filter.
+
+// Sanitizer API
+method Sanitizer.constructor
+method Sanitizer.sanitize
+method Element.setHTML
+
+// Features that might be deprecated in the future
+custom WindowOpenEmptyUrl calls window.open with an empty url argument
+
+// Unsupported web APIs in Private Browsing Mode
+custom PrivateBrowsingIDBFactoryOpen calls indexedDB.open in Private Browsing Mode
+custom PrivateBrowsingIDBFactoryDeleteDatabase calls indexedDB.deleteDatabase in Private Browsing Mode
+custom PrivateBrowsingCachesMatch calls caches.match in Private Browsing Mode
+custom PrivateBrowsingCachesHas calls caches.has in Private Browsing Mode
+custom PrivateBrowsingCachesOpen calls caches.open in Private Browsing Mode
+custom PrivateBrowsingCachesDelete calls caches.delete in Private Browsing Mode
+custom PrivateBrowsingCachesKeys calls caches.keys in Private Browsing Mode
+custom PrivateBrowsingNavigatorServiceWorker accesses navigator.serviceWorker in Private Browsing Mode
+
+// Mechanism for rewriting old YouTube flash embeds to use HTML5 video
+custom YouTubeFlashEmbed in <object> or <embed>
+
+method Scheduler.postTask
+
+method HTMLDialogElement.show
+
+// Use Counters for HTTPS Features like Mixed-Content-Blocking, HTTPS-First ...
+custom MixedContentUpgradedImageSuccess includes a mixed content img element that loads.
+custom MixedContentUpgradedImageFailure includes a mixed content img element that does not load.
+custom MixedContentUpgradedVideoSuccess includes a mixed content video element that loads.
+custom MixedContentUpgradedVideoFailure includes a mixed content video element that does not laod.
+custom MixedContentUpgradedAudioSuccess includes a mixed content audio element that loads.
+custom MixedContentUpgradedAudioFailure includes a mixed content audio element that does not load.
+// Counterparts for when we do not enable upgrading
+custom MixedContentNotUpgradedImageSuccess includes a mixed content img element that loads.
+custom MixedContentNotUpgradedImageFailure includes a mixed content img element that does not load.
+custom MixedContentNotUpgradedVideoSuccess includes a mixed content video element that loads.
+custom MixedContentNotUpgradedVideoFailure includes a mixed content video element that does not laod.
+custom MixedContentNotUpgradedAudioSuccess includes a mixed content audio element that loads.
+custom MixedContentNotUpgradedAudioFailure includes a mixed content audio element that does not load.
+
+// NOTE: You might need a data collection review if you are adding
+// a custom use counter. And for WebIDL methods or attributes,
+// deprecated operations, or CSS properties: you almost certainly
+// don’t need a data collection review.
+// https://firefox-source-docs.mozilla.org/dom/use-counters.html#data-review