Files
tubestation/toolkit/components/telemetry/core/Stopwatch.h
Stanca Serban 7df2c7072f Backed out 5 changesets (bug 1950710) for causing timeout related failures. CLOSED TREE
Backed out changeset 7a1f8fe65c63 (bug 1950710)
Backed out changeset d2514bee519f (bug 1950710)
Backed out changeset c5f6cd03c1d4 (bug 1950710)
Backed out changeset 9e57a5c12317 (bug 1950710)
Backed out changeset 482b8c741722 (bug 1950710)
2025-03-21 06:29:53 +02:00

85 lines
3.4 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
/* 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/. */
#ifndef Stopwatch_h__
#define Stopwatch_h__
#include "mozilla/dom/TelemetryStopwatchBinding.h"
namespace mozilla {
namespace telemetry {
class Stopwatch {
using GlobalObject = mozilla::dom::GlobalObject;
public:
static bool Start(const GlobalObject& global, const nsAString& histogram,
JS::Handle<JSObject*> obj,
const dom::TelemetryStopwatchOptions& options);
static bool Running(const GlobalObject& global, const nsAString& histogram,
JS::Handle<JSObject*> obj);
static bool Cancel(const GlobalObject& global, const nsAString& histogram,
JS::Handle<JSObject*> obj);
static int32_t TimeElapsed(const GlobalObject& global,
const nsAString& histogram,
JS::Handle<JSObject*> obj, bool canceledOkay);
static bool Finish(const GlobalObject& global, const nsAString& histogram,
JS::Handle<JSObject*> obj, bool canceledOkay);
static bool StartKeyed(const GlobalObject& global, const nsAString& histogram,
const nsAString& key, JS::Handle<JSObject*> obj,
const dom::TelemetryStopwatchOptions& options);
static bool RunningKeyed(const GlobalObject& global,
const nsAString& histogram, const nsAString& key,
JS::Handle<JSObject*> obj);
static bool CancelKeyed(const GlobalObject& global,
const nsAString& histogram, const nsAString& key,
JS::Handle<JSObject*> obj);
static int32_t TimeElapsedKeyed(const GlobalObject& global,
const nsAString& histogram,
const nsAString& key,
JS::Handle<JSObject*> obj, bool canceledOkay);
static bool FinishKeyed(const GlobalObject& global,
const nsAString& histogram, const nsAString& key,
JS::Handle<JSObject*> obj, bool canceledOkay);
static void SetTestModeEnabled(const GlobalObject& global, bool testing);
};
class UserInteractionStopwatch {
using GlobalObject = mozilla::dom::GlobalObject;
public:
static bool Start(const GlobalObject& aGlobal,
const nsAString& aUserInteraction, const nsACString& aValue,
JS::Handle<JSObject*> aObj);
static bool Running(const GlobalObject& aGlobal,
const nsAString& aUserInteraction,
JS::Handle<JSObject*> aObj);
static bool Update(const GlobalObject& aGlobal,
const nsAString& aUserInteraction,
const nsACString& aValue, JS::Handle<JSObject*> aObj);
static bool Cancel(const GlobalObject& aGlobal,
const nsAString& aUserInteraction,
JS::Handle<JSObject*> aObj);
static bool Finish(const GlobalObject& aGlobal,
const nsAString& aUserInteraction,
JS::Handle<JSObject*> aObj,
const dom::Optional<nsACString>& aAdditionalText);
};
} // namespace telemetry
} // namespace mozilla
#endif // Stopwatch_h__