// 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>
//         custom <any valid identifier> <description>
//
// The <description> for custom counters will be appended to "Whether a
// dedicated worker " or "Whether a shared worker" or "Whether a service worker
//  ", so phrase it appropriately.  For instance, "constructs a
// Foo object" or "calls Bar.baz('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 and be exposed to
// workers in the Web IDL file.
// Custom counters are incremented when
// SetUseCounter(UseCounterWoker::Custom_MyName) is called on a WorkerPrivate
// 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.

// Push API
method PushManager.subscribe
method PushSubscription.unsubscribe

// 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

// 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

method Scheduler.postTask
