// 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 . // attribute . // property // custom // // The |CSS property method name| should be identical to the |method| // argument to CSS_PROP and related macros. The method name is // identical to the name of the property, except that all hyphens are // removed and CamelCase naming is used. See nsCSSPropList.h for // further details. // // The 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 attribute DOMError.name attribute DOMError.message custom DOMErrorConstructor constructed a DOMError // Push API method PushManager.subscribe method PushSubscription.unsubscribe // window.sidebar.addSearchEngine attribute Window.sidebar method External.addSearchEngine // 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 // JavaScript feature usage custom JS_asmjs uses asm.js custom JS_wasm uses WebAssembly