summaryrefslogtreecommitdiffstats
path: root/dom/base/UseCounters.conf
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--dom/base/UseCounters.conf420
1 files changed, 420 insertions, 0 deletions
diff --git a/dom/base/UseCounters.conf b/dom/base/UseCounters.conf
new file mode 100644
index 0000000000..f820f88888
--- /dev/null
+++ b/dom/base/UseCounters.conf
@@ -0,0 +1,420 @@
+// 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: Adding use counters requires data review, see
+// https://wiki.mozilla.org/Data_Collection
+
+method SVGSVGElement.getElementById
+attribute SVGSVGElement.currentScale
+
+// Push API
+method PushManager.subscribe
+method PushSubscription.unsubscribe
+
+// window.sidebar
+attribute Window.sidebar
+
+// AppCache API
+method OfflineResourceList.swapCache
+method OfflineResourceList.update
+attribute OfflineResourceList.status
+attribute OfflineResourceList.onchecking
+attribute OfflineResourceList.onerror
+attribute OfflineResourceList.onnoupdate
+attribute OfflineResourceList.ondownloading
+attribute OfflineResourceList.onprogress
+attribute OfflineResourceList.onupdateready
+attribute OfflineResourceList.oncached
+attribute OfflineResourceList.onobsolete
+
+// 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
+
+// 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 ContentUrlOnImageContent how often bug 1484928 can cause trouble.
+
+// 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 HTMLDocument.adoptedStyleSheets
+method HTMLDocument.caretRangeFromPoint
+method HTMLDocument.clear
+method HTMLDocument.exitPictureInPicture
+method HTMLDocument.featurePolicy
+method HTMLDocument.onbeforecopy
+method HTMLDocument.onbeforecut
+method HTMLDocument.onbeforepaste
+method HTMLDocument.oncancel
+method HTMLDocument.onfreeze
+method HTMLDocument.onmousewheel
+method HTMLDocument.onresume
+method HTMLDocument.onsearch
+method HTMLDocument.onsecuritypolicyviolation
+method HTMLDocument.onwebkitfullscreenchange
+method HTMLDocument.onwebkitfullscreenerror
+method HTMLDocument.pictureInPictureElement
+method HTMLDocument.pictureInPictureEnabled
+method HTMLDocument.registerElement
+method HTMLDocument.wasDiscarded
+method HTMLDocument.webkitCancelFullScreen
+method HTMLDocument.webkitCurrentFullScreenElement
+method HTMLDocument.webkitExitFullscreen
+method HTMLDocument.webkitFullscreenElement
+method HTMLDocument.webkitFullscreenEnabled
+method HTMLDocument.webkitHidden
+method HTMLDocument.webkitIsFullScreen
+method HTMLDocument.webkitVisibilityState
+method HTMLDocument.xmlEncoding
+method HTMLDocument.xmlStandalone
+method HTMLDocument.xmlVersion
+method Window.AbsoluteOrientationSensor
+method Window.Accelerometer
+method Window.ApplicationCache
+method Window.ApplicationCacheErrorEvent
+method Window.Atomics
+method Window.AudioParamMap
+method Window.AudioWorklet
+method Window.AudioWorkletNode
+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.clientInformation
+method Window.ClipboardItem
+method Window.CSSImageValue
+method Window.CSSKeywordValue
+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.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.EnterPictureInPictureEvent
+method Window.External
+method Window.FederatedCredential
+method Window.Gyroscope
+method Window.HTMLContentElement
+method Window.HTMLDialogElement
+method Window.HTMLShadowElement
+method Window.ImageCapture
+method Window.InputDeviceCapabilities
+method Window.InputDeviceInfo
+method Window.Keyboard
+method Window.KeyboardLayoutMap
+method Window.LinearAccelerationSensor
+method Window.Lock
+method Window.LockManager
+method Window.MediaMetadata
+method Window.MediaSession
+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.NavigationPreloadManager
+method Window.NetworkInformation
+method Window.offscreenBuffering
+method Window.OffscreenCanvas
+method Window.OffscreenCanvasRenderingContext2D
+method Window.onbeforeinstallprompt
+method Window.oncancel
+method Window.onmousewheel
+method Window.onsearch
+method Window.onselectionchange
+method Window.openDatabase
+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.PerformanceEventTiming
+method Window.PerformanceLongTaskTiming
+method Window.PerformancePaintTiming
+method Window.PhotoCapabilities
+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.ReportingObserver
+method Window.RTCDtlsTransport
+method Window.RTCError
+method Window.RTCErrorEvent
+method Window.RTCIceTransport
+method Window.RTCSctpTransport
+method Window.Sensor
+method Window.SensorErrorEvent
+method Window.SharedArrayBuffer
+method Window.styleMedia
+method Window.StylePropertyMap
+method Window.StylePropertyMapReadOnly
+method Window.SVGDiscardElement
+method Window.SyncManager
+method Window.TaskAttributionTiming
+method Window.TextDecoderStream
+method Window.TextEncoderStream
+method Window.TextEvent
+method Window.Touch
+method Window.TouchEvent
+method Window.TouchList
+method Window.TransformStream
+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.visualViewport
+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 Window.Worklet
+method Window.WritableStream
+
+// Gecko-specific command usage of `Document.execCommand`
+custom DocumentExecCommandContentReadOnly calls execCommand with contentReadOnly
+
+// 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
+
+method Scheduler.postTask
+
+// NOTE: Adding use counters requires data review, see
+// https://wiki.mozilla.org/Data_Collection