471 lines
18 KiB
Text
471 lines
18 KiB
Text
// 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://icecat-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
|
||
|
||
// 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_wasm_legacy_exceptions uses WebAssembly legacy exception-handling
|
||
custom JS_subclassing_array_type_2 Array is Type II subclassed
|
||
custom JS_subclassing_array_type_3 Array is Type III subclassed
|
||
custom JS_subclassing_promise_type_2 Promise is Type II subclassed
|
||
custom JS_subclassing_promise_type_3 Promise is Type III subclassed
|
||
custom JS_subclassing_typedarray_type_2 TypedArray is Type II subclassed
|
||
custom JS_subclassing_typedarray_type_3 TypedArray is Type III subclassed
|
||
custom JS_subclassing_arraybuffer_type_3 ArrayBuffer is Type III subclassed
|
||
custom JS_subclassing_sharedarraybuffer_type_3 SharedArrayBuffer is Type III subclassed
|
||
custom JS_subclassing_regexp_type_3 RegExp is Type III subclassed
|
||
custom JS_subclassing_regexp_type_4 RegExp is Type IV subclassed
|
||
|
||
// 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://icecat-source-docs.mozilla.org/dom/use-counters.html#data-review
|