From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../timermanager/nsIUpdateTimerManager.idl | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 toolkit/components/timermanager/nsIUpdateTimerManager.idl (limited to 'toolkit/components/timermanager/nsIUpdateTimerManager.idl') diff --git a/toolkit/components/timermanager/nsIUpdateTimerManager.idl b/toolkit/components/timermanager/nsIUpdateTimerManager.idl new file mode 100644 index 0000000000..c0ac4266f6 --- /dev/null +++ b/toolkit/components/timermanager/nsIUpdateTimerManager.idl @@ -0,0 +1,62 @@ +/* -*- Mode: IDL; 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/. */ + +#include "nsISupports.idl" + +interface nsITimerCallback; + +/** + * An interface describing a global application service that allows long + * duration (e.g. 1-7 or more days, weeks or months) timers to be registered + * and then fired. + */ +[scriptable, uuid(0765c92c-6145-4253-9db4-594d8023087e)] +interface nsIUpdateTimerManager : nsISupports +{ + /** + * Register an interval with the timer manager. The timer manager + * periodically checks to see if the interval has expired and if it has + * calls the specified callback. This is persistent across application + * restarts and can handle intervals of long durations. The callback will be + * called soon after the first registration unless you ask to skip it. + * @param id + * An id that identifies the interval, used for persistence + * @param callback + * A nsITimerCallback object that is notified when the interval + * expires + * @param interval + * The length of time, in seconds, of the interval + * @param skipFirst + * Whether to skip the initial callback on first registration. + * + * Note: to avoid having to instantiate a component to call registerTimer + * the component can intead register an update-timer category with comma + * separated values as a single string: + * + * contractID,method,id,preference,interval + * + * via a manifest entry. The values are as follows: + * contractID : the contract ID for the component. + * method : the method used to instantiate the interface. This should be + * either getService or createInstance depending on your + * component. + * id : the id that identifies the interval, used for persistence. + * preference : the preference to for timer interval. This value can be + * optional by specifying an empty string for the value. + * interval : the default interval in seconds for the timer. + */ + void registerTimer(in AString id, + in nsITimerCallback callback, + in unsigned long interval, + [optional] in boolean skipFirst); + + /** + * Unregister an existing interval from the timer manager. + * + * @param id + * An id that identifies the interval. + */ + void unregisterTimer(in AString id); +}; -- cgit v1.2.3