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