gecko-dev/dom/base/UseCounters.conf

146 строки
5.0 KiB
Plaintext

// 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 four possible use counter declarations:
//
// method <IDL interface name>.<IDL operation name>
// attribute <IDL interface name>.<IDL attribute name>
// property <CSS property method name>
// custom <any valid identifier> <description>
//
// The |CSS property method name| should be CamelCase form of the property
// name with -moz- and -x- prefix removed.
//
// The <description> for custom counters will be appended to "When a document "
// or "When 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. CSS properties require no special treatment
// beyond being listed below. Custom counters are incremented when
// SetDocumentAndPageUseCounter(eUseCounter_custom_MyName) is called on an
// ns(I)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, and
// annotating the WebIDL files does nothing for identifying CSS
// property usage, which we would also like to track.
method SVGSVGElement.getElementById
attribute SVGSVGElement.currentScale
property Fill
property FillOpacity
attribute XMLDocument.async
// 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
// Non-standard IndexedDB API
method IDBDatabase.createMutableFile
method IDBDatabase.mozCreateFileHandle
method IDBMutableFile.open
method IDBMutableFile.getFile
// 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
// 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
custom FilteredCrossOriginIFrame cross-origin <iframe> within a CSS/SVG filter
// Custom Elements
method CustomElementRegistry.define
// Shadow DOM
method Element.attachShadow
// 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
custom GetUserMediaXOrigin calls MediaDevices.getUserMedia from a cross origin context
custom MozGetUserMediaXOrigin calls Navigator.mozGetUserMedia from a cross origin context
method MediaDevices.getDisplayMedia
custom GetDisplayMediaXOrigin calls MediaDevices.getDisplayMedia from a cross origin context