Source code

Revision control

Copy as Markdown

Other Tools

// 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
// 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'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
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.log
method console.table
method console.trace
method console.warn
method console.dir
method console.dirxml
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
// information
custom DocumentOpen calls 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
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.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 with an empty url argument
// Unsupported web APIs in Private Browsing Mode
custom PrivateBrowsingIDBFactoryOpen calls 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 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