diff options
Diffstat (limited to '')
-rw-r--r-- | dom/base/UseCounters.conf | 420 |
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 |