Backed out changeset b462e7b742d8 (bug 1908261) for causing multiple reftest failures...
[gecko.git] / dom / base / UseCounters.conf
blob3c48fb7167258d3ac3ae45e6ad69fce75995957d
1 // This Source Code Form is subject to the terms of the Mozilla Public
2 // License, v. 2.0. If a copy of the MPL was not distributed with this
3 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 // This file defines a list of use counters, which are things that can
6 // record usage of Web platform features and then report this information
7 // through Telemetry.
8 //
9 // The format of this file is very strict.  Each line can be:
11 //   (a) a blank line
13 //   (b) a comment, which is a line that begins with "//"
15 //   (c) one of three possible use counter declarations:
17 //         method <IDL interface name>.<IDL operation name>
18 //         attribute <IDL interface name>.<IDL attribute name>
19 //         custom <any valid identifier> <description>
21 // The <description> for custom counters will be appended to "Whether a document "
22 // or "Whether a page ", so phrase it appropriately.  For instance, "constructs a
23 // Foo object" or "calls Document.bar('some value')".  It may contain any
24 // character (including whitespace).
26 // To actually cause use counters to be incremented, DOM methods
27 // and attributes must have a [UseCounter] extended attribute in
28 // the Web IDL file.
30 // Custom counters are incremented when
31 // SetUseCounter(eUseCounter_custom_MyName) is called on a Document object.
33 // You might reasonably ask why we have this file and we require
34 // annotating things with [UseCounter] in the relevant WebIDL file as
35 // well.  Generating things from bindings codegen and ensuring all the
36 // dependencies were correct would have been rather difficult.
38 // NOTE: You might need a data collection review if you are adding
39 // a custom use counter. And for WebIDL methods or attributes,
40 // deprecated operations, or CSS properties: you almost certainly
41 // don't need a data collection review.
42 // https://firefox-source-docs.mozilla.org/dom/use-counters.html#data-review
44 method SVGSVGElement.getElementById
45 attribute SVGSVGElement.currentScale
47 // Push API
48 method PushManager.subscribe
49 method PushSubscription.unsubscribe
51 // window.sidebar
52 attribute Window.sidebar
54 // DataTransfer API (gecko-only methods)
55 method DataTransfer.addElement
56 attribute DataTransfer.mozItemCount
57 attribute DataTransfer.mozCursor
58 method DataTransfer.mozTypesAt
59 method DataTransfer.mozClearDataAt
60 method DataTransfer.mozSetDataAt
61 method DataTransfer.mozGetDataAt
62 attribute DataTransfer.mozUserCancelled
63 attribute DataTransfer.mozSourceNode
65 // Element non-standard events
66 custom onoverflow sets an element onoverflow event listener
67 custom onunderflow sets an element onunderflow event listener
69 // JavaScript feature usage
70 custom JS_asmjs uses asm.js
71 custom JS_wasm uses WebAssembly
72 custom JS_wasm_legacy_exceptions uses WebAssembly legacy exception-handling
73 custom JS_isHTMLDDA_fuse has used the document.all getter (popping the EmulatesUndefined Fuse)
74 custom JS_optimizeGetIterator_fuse has modified any builtins such that the GetIterator fuse is popped
75 custom JS_thenable resolved a promise using thenable support rather than builtin methods
76 custom JS_thenable_proto resolved a promise using thenable on prototype
77 custom JS_thenable_standard_proto resolved a promise using thenable on a standard prototype
78 custom JS_legacy_lang_subtag uses a 5-to-8-character language subtag in Intl.Locale constructor
79 custom JS_ic_stub_too_large tried to create an IC stub that was too large
80 custom JS_ic_stub_oom OOMed while creating IC stub 
81 custom JS_errorstack_getter called error.stack getter
82 custom JS_errorstack_getter_no_errordata called error.stack getter on object without ErrorData internal slot
83 custom JS_errorstack_setter called error.stack setter
84 custom JS_errorstack_setter_nonstring called error.stack setter with non-string input
85 custom JS_errorstack_setter_no_errordata called error.stack setter on object without ErrorData internal slot
87 // Console API
88 method console.assert
89 method console.clear
90 method console.count
91 method console.countReset
92 method console.debug
93 method console.error
94 method console.info
95 method console.log
96 method console.table
97 method console.trace
98 method console.warn
99 method console.dir
100 method console.dirxml
101 method console.group
102 method console.groupCollapsed
103 method console.groupEnd
104 method console.time
105 method console.timeLog
106 method console.timeEnd
107 method console.exception
108 method console.timeStamp
109 method console.profile
110 method console.profileEnd
112 // CookieStore API
113 method CookieStore.get
114 method CookieStore.getAll
115 method CookieStore.set
116 method CookieStore.delete
118 // document.open information
119 custom DocumentOpen calls document.open in a way that creates a new Window object
121 // HTMLDocument named getter
122 custom HTMLDocumentNamedGetterHit calls to the named getter on HTMLDocument that find something via the name lookup
124 custom FilteredCrossOriginIFrame cross-origin <iframe> within a CSS/SVG filter
126 // Custom Elements
127 method CustomElementRegistry.define
128 custom CustomizedBuiltin registers a customized built-in element
130 // XSLT
131 custom XSLStylesheet uses an XSL Stylesheet
132 method XSLTProcessor.constructor
134 // Shadow DOM
135 method Element.attachShadow
137 // Non-standard capture methods
138 method Element.setCapture
139 method Element.releaseCapture
141 // Pointer Capture
142 method Element.setPointerCapture
143 method Element.releasePointerCapture
145 // Media Device Access
146 method MediaDevices.enumerateDevices
147 custom EnumerateDevicesInsec calls MediaDevices.enumerateDevices from an insecure context
148 custom EnumerateDevicesUnfocused calls MediaDevices.enumerateDevices from a unfocused document
149 method MediaDevices.getUserMedia
150 method Navigator.mozGetUserMedia
151 custom GetUserMediaUnfocused calls MediaDevices.getUserMedia from an unfocused document
152 custom GetUserMediaInsec calls MediaDevices.getUserMedia from an insecure context
153 custom MozGetUserMediaInsec calls Navigator.mozGetUserMedia from an insecure context
154 method MediaDevices.getDisplayMedia
156 // Non-standard Messaging Layer Security
157 method MLS.stateDelete
158 method MLS.stateDeleteGroup
159 method MLS.generateSignatureKeypair
160 method MLS.generateCredentialBasic
161 method MLS.generateKeyPackage
162 method MLS.groupCreate
163 method MLS.groupJoin
164 method MLS.groupAdd
165 method MLS.groupProposeAdd
166 method MLS.groupRemove
167 method MLS.groupProposeRemove
168 method MLS.groupClose
169 method MLS.groupMembers
170 method MLS.receive
171 method MLS.send
172 method MLS.deriveExporter
174 // Non-standard Document.mozSetImageElement.
175 method Document.mozSetImageElement
177 // Non-standard Window.DOMMouseScroll and MozMousePixelScroll
178 custom ondommousescroll sets DOMMouseScroll event listener
179 custom onmozmousepixelscroll sets MozMousePixelScroll event listener
181 custom PercentageStrokeWidthInSVG whether percentage stroke-width is used in SVG elements (excluding <text>)
182 custom PercentageStrokeWidthInSVGText whether percentage stroke-width is used in SVG <text>
184 // Missing-property use counters.  We claim these are "method" use
185 // counters, because we don't need a separate description string for
186 // them and we only need one use counter, not a getter/setter pair.
187 method Clipboard.read
188 method Clipboard.readText
189 method Clipboard.write
190 method DataTransferItem.webkitGetAsEntry
191 method Document.caretRangeFromPoint
192 method Document.exitPictureInPicture
193 method Document.featurePolicy
194 method Document.onbeforecopy
195 method Document.onbeforecut
196 method Document.onbeforepaste
197 method Document.oncancel
198 method Document.onfreeze
199 method Document.onmousewheel
200 method Document.onresume
201 method Document.onsearch
202 method Document.onwebkitfullscreenchange
203 method Document.onwebkitfullscreenerror
204 method Document.pictureInPictureElement
205 method Document.pictureInPictureEnabled
206 method Document.registerElement
207 method Document.wasDiscarded
208 method Document.webkitCancelFullScreen
209 method Document.webkitCurrentFullScreenElement
210 method Document.webkitExitFullscreen
211 method Document.webkitFullscreenElement
212 method Document.webkitFullscreenEnabled
213 method Document.webkitHidden
214 method Document.webkitIsFullScreen
215 method Document.webkitVisibilityState
216 method Document.xmlEncoding
217 method Document.xmlStandalone
218 method Document.xmlVersion
219 method Element.computedStyleMap
220 method Element.onmousewheel
221 method Element.scrollIntoViewIfNeeded
222 method HTMLButtonElement.popoverTargetAction
223 method HTMLButtonElement.popoverTargetElement
224 method HTMLElement.attributeStyleMap
225 method HTMLElement.hidePopover
226 method HTMLElement.popover
227 method HTMLElement.showPopover
228 method HTMLElement.togglePopover
229 method HTMLIFrameElement.loading
230 method HTMLInputElement.capture
231 method HTMLInputElement.incremental
232 method HTMLInputElement.onsearch
233 method HTMLInputElement.popoverTargetAction
234 method HTMLInputElement.popoverTargetElement
235 method HTMLInputElement.webkitdirectory
236 method HTMLInputElement.webkitEntries
237 method HTMLMediaElement.disableRemotePlayback
238 method HTMLMediaElement.remote
239 method HTMLVideoElement.cancelVideoFrameCallback
240 method HTMLVideoElement.disablePictureInPicture
241 method HTMLVideoElement.onenterpictureinpicture
242 method HTMLVideoElement.onleavepictureinpicture
243 method HTMLVideoElement.playsInline
244 method HTMLVideoElement.requestPictureInPicture
245 method HTMLVideoElement.requestVideoFrameCallback
246 method ImageData.colorSpace
247 method Location.ancestorOrigins
248 method Navigator.canShare
249 method Navigator.clearAppBadge
250 method Navigator.setAppBadge
251 method Navigator.share
252 method Navigator.userActivation
253 method Navigator.wakeLock
254 method ShadowRoot.pictureInPictureElement
255 method Window.AbsoluteOrientationSensor
256 method Window.Accelerometer
257 method Window.BackgroundFetchManager
258 method Window.BackgroundFetchRecord
259 method Window.BackgroundFetchRegistration
260 method Window.BeforeInstallPromptEvent
261 method Window.Bluetooth
262 method Window.BluetoothCharacteristicProperties
263 method Window.BluetoothDevice
264 method Window.BluetoothRemoteGATTCharacteristic
265 method Window.BluetoothRemoteGATTDescriptor
266 method Window.BluetoothRemoteGATTServer
267 method Window.BluetoothRemoteGATTService
268 method Window.BluetoothUUID
269 method Window.CanvasCaptureMediaStreamTrack
270 method Window.chrome
271 method Window.ClipboardItem
272 method Window.CSSImageValue
273 method Window.CSSKeywordValue
274 method Window.CSSMathClamp
275 method Window.CSSMathInvert
276 method Window.CSSMathMax
277 method Window.CSSMathMin
278 method Window.CSSMathNegate
279 method Window.CSSMathProduct
280 method Window.CSSMathSum
281 method Window.CSSMathValue
282 method Window.CSSMatrixComponent
283 method Window.CSSNumericArray
284 method Window.CSSNumericValue
285 method Window.CSSPerspective
286 method Window.CSSPositionValue
287 method Window.CSSPropertyRule
288 method Window.CSSRotate
289 method Window.CSSScale
290 method Window.CSSSkew
291 method Window.CSSSkewX
292 method Window.CSSSkewY
293 method Window.CSSStyleValue
294 method Window.CSSTransformComponent
295 method Window.CSSTransformValue
296 method Window.CSSTranslate
297 method Window.CSSUnitValue
298 method Window.CSSUnparsedValue
299 method Window.CSSVariableReferenceValue
300 method Window.defaultStatus
301 // See comments in Window.webidl about why this is disabled.
302 //method Window.defaultstatus
303 method Window.DeviceMotionEventAcceleration
304 method Window.DeviceMotionEventRotationRate
305 method Window.DOMError
306 method Window.EncodedVideoChunk
307 method Window.EnterPictureInPictureEvent
308 method Window.External
309 method Window.FederatedCredential
310 method Window.Gyroscope
311 method Window.HTMLContentElement
312 method Window.HTMLShadowElement
313 method Window.ImageCapture
314 method Window.InputDeviceCapabilities
315 method Window.InputDeviceInfo
316 method Window.Keyboard
317 method Window.KeyboardLayoutMap
318 method Window.LinearAccelerationSensor
319 method Window.MediaSettingsRange
320 method Window.MIDIAccess
321 method Window.MIDIConnectionEvent
322 method Window.MIDIInput
323 method Window.MIDIInputMap
324 method Window.MIDIMessageEvent
325 method Window.MIDIOutput
326 method Window.MIDIOutputMap
327 method Window.MIDIPort
328 method Window.NetworkInformation
329 method Window.offscreenBuffering
330 method Window.onbeforeinstallprompt
331 method Window.oncancel
332 method Window.onmousewheel
333 method Window.onorientationchange
334 method Window.onsearch
335 method Window.onselectionchange
336 method Window.openDatabase
337 method Window.orientation
338 method Window.OrientationSensor
339 method Window.OverconstrainedError
340 method Window.PasswordCredential
341 method Window.PaymentAddress
342 method Window.PaymentInstruments
343 method Window.PaymentManager
344 method Window.PaymentMethodChangeEvent
345 method Window.PaymentRequest
346 method Window.PaymentRequestUpdateEvent
347 method Window.PaymentResponse
348 method Window.PerformanceLongTaskTiming
349 method Window.PhotoCapabilities
350 method Window.PictureInPictureEvent
351 method Window.PictureInPictureWindow
352 method Window.Presentation
353 method Window.PresentationAvailability
354 method Window.PresentationConnection
355 method Window.PresentationConnectionAvailableEvent
356 method Window.PresentationConnectionCloseEvent
357 method Window.PresentationConnectionList
358 method Window.PresentationReceiver
359 method Window.PresentationRequest
360 method Window.RelativeOrientationSensor
361 method Window.RemotePlayback
362 method Window.Report
363 method Window.ReportBody
364 method Window.ReportingObserver
365 method Window.RTCError
366 method Window.RTCErrorEvent
367 method Window.RTCIceTransport
368 method Window.RTCPeerConnectionIceErrorEvent
369 method Window.Sensor
370 method Window.SensorErrorEvent
371 method Window.SpeechRecognitionAlternative
372 method Window.SpeechRecognitionResult
373 method Window.SpeechRecognitionResultList
374 method Window.styleMedia
375 method Window.StylePropertyMap
376 method Window.StylePropertyMapReadOnly
377 method Window.SVGDiscardElement
378 method Window.SyncManager
379 method Window.TaskAttributionTiming
380 method Window.TextEvent
381 method Window.Touch
382 method Window.TouchEvent
383 method Window.TouchList
384 method Window.USB
385 method Window.USBAlternateInterface
386 method Window.USBConfiguration
387 method Window.USBConnectionEvent
388 method Window.USBDevice
389 method Window.USBEndpoint
390 method Window.USBInterface
391 method Window.USBInTransferResult
392 method Window.USBIsochronousInTransferPacket
393 method Window.USBIsochronousInTransferResult
394 method Window.USBIsochronousOutTransferPacket
395 method Window.USBIsochronousOutTransferResult
396 method Window.USBOutTransferResult
397 method Window.UserActivation
398 method Window.VideoColorSpace
399 method Window.VideoDecoder
400 method Window.VideoEncoder
401 method Window.VideoFrame
402 method Window.WakeLock
403 method Window.WakeLockSentinel
404 method Window.webkitCancelAnimationFrame
405 method Window.webkitMediaStream
406 method Window.WebKitMutationObserver
407 method Window.webkitRequestAnimationFrame
408 method Window.webkitRequestFileSystem
409 method Window.webkitResolveLocalFileSystemURL
410 method Window.webkitRTCPeerConnection
411 method Window.webkitSpeechGrammar
412 method Window.webkitSpeechGrammarList
413 method Window.webkitSpeechRecognition
414 method Window.webkitSpeechRecognitionError
415 method Window.webkitSpeechRecognitionEvent
416 method Window.webkitStorageInfo
417 method WorkerNavigator.permissions
419 // Gecko-specific command usage of `Document.execCommand`
420 custom DocumentExecCommandContentReadOnly calls execCommand with contentReadOnly
422 // Methods used in frameworks to create DOM from strings
423 method DOMParser.parseFromString
424 method Range.createContextualFragment
426 // Gecko-specific command usage of `Document.queryCommandState` or `Document.queryCommandValue`
427 custom DocumentQueryCommandStateOrValueContentReadOnly calls queryCommandState or queryCommandValue with contentReadOnly
428 custom DocumentQueryCommandStateOrValueInsertBrOnReturn calls queryCommandState or queryCommandValue with insertBrOnReturn
430 // Gecko-specific command usage of `Document.queryCommandSupported` or `Document.queryCommandEnabled`
431 custom DocumentQueryCommandSupportedOrEnabledContentReadOnly calls queryCommandSupported or queryCommandEnabled with contentReadOnly
432 custom DocumentQueryCommandSupportedOrEnabledInsertBrOnReturn calls queryCommandSupported or queryCommandEnabled with insertBrOnReturn
434 // SVG filters
435 custom feBlend uses the feBlend SVG filter.
436 custom feColorMatrix uses the feColorMatrix SVG filter.
437 custom feComponentTransfer uses the feComponentTransfer SVG filter.
438 custom feComposite uses the feComposite SVG filter.
439 custom feConvolveMatrix uses the feConvolveMatrix SVG filter.
440 custom feDiffuseLighting uses the feDiffuseLighting SVG filter.
441 custom feDisplacementMap uses the feDisplacementMap SVG filter.
442 custom feFlood uses the feFlood SVG filter.
443 custom feGaussianBlur uses the feGaussianBlur SVG filter.
444 custom feImage uses the feImage SVG filter.
445 custom feMerge uses the feMerge SVG filter.
446 custom feMorphology uses the feMorphology SVG filter.
447 custom feOffset uses the feOffset SVG filter.
448 custom feSpecularLighting uses the feSpecularLighting SVG filter.
449 custom feTile uses the feTile SVG filter.
450 custom feTurbulence uses the feTurbulence SVG filter.
452 custom WrFilterFallback triggers the blob fallback for an SVG filter.
454 // Sanitizer API
455 method Sanitizer.constructor
456 method Sanitizer.sanitize
457 method Element.setHTML
459 // Features that might be deprecated in the future
460 custom WindowOpenEmptyUrl calls window.open with an empty url argument
462 // Unsupported web APIs in Private Browsing Mode
463 custom PrivateBrowsingIDBFactoryOpen calls indexedDB.open in Private Browsing Mode
464 custom PrivateBrowsingIDBFactoryDeleteDatabase calls indexedDB.deleteDatabase in Private Browsing Mode
465 custom PrivateBrowsingCachesMatch calls caches.match in Private Browsing Mode
466 custom PrivateBrowsingCachesHas calls caches.has in Private Browsing Mode
467 custom PrivateBrowsingCachesOpen calls caches.open in Private Browsing Mode
468 custom PrivateBrowsingCachesDelete calls caches.delete in Private Browsing Mode
469 custom PrivateBrowsingCachesKeys calls caches.keys in Private Browsing Mode
470 custom PrivateBrowsingNavigatorServiceWorker accesses navigator.serviceWorker in Private Browsing Mode
472 // Mechanism for rewriting old YouTube flash embeds to use HTML5 video
473 custom YouTubeFlashEmbed in <object> or <embed>
475 method Scheduler.postTask
477 method HTMLDialogElement.show
479 // Use Counters for HTTPS Features like Mixed-Content-Blocking, HTTPS-First ...
480 custom MixedContentUpgradedImageSuccess includes a mixed content img element that loads.
481 custom MixedContentUpgradedImageFailure includes a mixed content img element that does not load.
482 custom MixedContentUpgradedVideoSuccess includes a mixed content video element that loads.
483 custom MixedContentUpgradedVideoFailure includes a mixed content video element that does not laod.
484 custom MixedContentUpgradedAudioSuccess includes a mixed content audio element that loads.
485 custom MixedContentUpgradedAudioFailure includes a mixed content audio element that does not load.
486 // Counterparts for when we do not enable upgrading
487 custom MixedContentNotUpgradedImageSuccess includes a mixed content img element that loads.
488 custom MixedContentNotUpgradedImageFailure includes a mixed content img element that does not load.
489 custom MixedContentNotUpgradedVideoSuccess includes a mixed content video element that loads.
490 custom MixedContentNotUpgradedVideoFailure includes a mixed content video element that does not laod.
491 custom MixedContentNotUpgradedAudioSuccess includes a mixed content audio element that loads.
492 custom MixedContentNotUpgradedAudioFailure includes a mixed content audio element that does not load.
494 custom ComponentsShimResolved resolves the components shim.
496 custom SectioningH1WithNoFontSizeOrMargins found sectioned h1 element with no font-size or no margins
498 // NOTE: You might need a data collection review if you are adding
499 // a custom use counter. And for WebIDL methods or attributes,
500 // deprecated operations, or CSS properties: you almost certainly
501 // don't need a data collection review.
502 // https://firefox-source-docs.mozilla.org/dom/use-counters.html#data-review