Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: chrome/common/extensions/api/alarms.idl

Issue 10545104: Refactor chrome.alarms interface to support absolute alarm deadlines. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Split create into createOneShot and createRepeating Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/extensions/test_extension_system.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // File-level comment to appease parser. Eventually this will not be necessary. 5 // File-level comment to appease parser. Eventually this will not be necessary.
6 // TODO(mpcomplete): We need documentation before we can release this. 6 // TODO(mpcomplete): We need documentation before we can release this.
7 7
8 namespace alarms { 8 namespace alarms {
9 dictionary Alarm { 9 dictionary Alarm {
10 // Name of this alarm. 10 // Name of this alarm.
11 DOMString name; 11 DOMString name;
12 12
13 // Original length of time in minutes after which the onAlarm event should 13 // Time at which this alarm was scheduled to fire, in milliseconds past the
14 // fire. 14 // epoch (e.g. Date.now() + n). For performance reasons, the alarm may have
15 // been delayed an arbitrary amount beyond this.
16 double scheduledTime;
17
18 // If not null, the alarm is a repeating alarm and will fire again in
19 // 'periodInMinutes' minutes.
20 double? periodInMinutes;
21 };
22
23 // TODO(mpcomplete): rename to OneShotCreateInfo when http://crbug.com/123073
24 // is fixed.
25 dictionary AlarmOneShotCreateInfo {
26 // Time at which the alarm should fire, in milliseconds past the epoch
27 // (e.g. Date.now() + n). Note that granularity is not guaranteed: this
28 // value is more of a hint to the browser. For performance reasons, alarms
29 // may be delayed an arbitrary amount of time before firing.
30 //
31 // Exactly one of timeToFire or delayInMinutes must be set.
32 double? timeToFire;
Aaron Boodman 2012/06/11 20:57:28 Just 'time' is fine for the name.
Jeffrey Yasskin 2012/06/11 21:05:06 Done.
33
34 // Length of time in minutes after which the onAlarm event should fire.
35 // Note that granularity is not guaranteed: this value is more of a hint to
36 // the browser. For performance reasons, alarms may be delayed an arbitrary
37 // amount of time before firing.
38 //
39 // Exactly one of timeToFire or delayInMinutes must be set.
40 //
15 // TODO: need minimum=0 41 // TODO: need minimum=0
16 double delayInMinutes; 42 double? delayInMinutes;
17
18 // True if the alarm repeatedly fires at regular intervals, false if it
19 // only fires once.
20 boolean repeating;
21 }; 43 };
22 44
23 // TODO(mpcomplete): rename to CreateInfo when http://crbug.com/123073 is 45 // TODO(mpcomplete): rename to CreateInfo when http://crbug.com/123073 is
24 // fixed. 46 // fixed.
25 dictionary AlarmCreateInfo { 47 dictionary AlarmRepeatingCreateInfo {
26 // Length of time in minutes after which the onAlarm event should fire. 48 // Length of time in minutes between times the onAlarm event should fire,
27 // Note that granularity is not guaranteed: this value is more of a hint to 49 // and the delay before the first time it fires. Note that granularity is
28 // the browser. For performance reasons, alarms may be delayed an arbitrary 50 // not guaranteed: this value is more of a hint to the browser. For
29 // amount of time before firing. 51 // performance reasons, alarms may be delayed an arbitrary amount of time
52 // before firing.
53 //
30 // TODO: need minimum=0 54 // TODO: need minimum=0
31 double delayInMinutes; 55 double periodInMinutes;
32
33 // True if the alarm should repeatedly fire at regular intervals. Defaults
34 // to false.
35 boolean? repeating;
36 }; 56 };
37 57
38 callback AlarmCallback = void (Alarm alarm); 58 callback AlarmCallback = void (Alarm alarm);
39 callback AlarmListCallback = void (Alarm[] alarms); 59 callback AlarmListCallback = void (Alarm[] alarms);
40 60
41 interface Functions { 61 interface Functions {
42 // Creates an alarm. After the delay is elapsed, the onAlarm event is 62 // Creates an alarm that will fire once. Near the time specified by
43 // fired. If there is another alarm with the same name (or no name if none 63 // 'alarmInfo', the onAlarm event is fired. If there is another alarm
44 // is specified), it will be cancelled and replaced by this alarm. 64 // (either one-shot or repeating) with the same name (or no name if none is
45 // |name|: Optional name to identify this alarm. Defaults to the empty 65 // specified), it will be cancelled and replaced by this alarm. |name|:
46 // string. 66 // Optional name to identify this alarm. Defaults to the empty string.
47 static void create(optional DOMString name, AlarmCreateInfo alarmInfo); 67 static void createOneShot(optional DOMString name,
68 AlarmOneShotCreateInfo alarmInfo);
69
70 // Creates an alarm that will fire repeatedly. The onAlarm event is fired
71 // with a period specified by 'alarmInfo'. If there is another alarm (either
72 // one-shot or repeating) with the same name (or no name if none is
73 // specified), it will be cancelled and replaced by this alarm. |name|:
74 // Optional name to identify this alarm. Defaults to the empty string.
75 static void createRepeating(optional DOMString name,
76 AlarmRepeatingCreateInfo alarmInfo);
48 77
49 // Retrieves details about the specified alarm. 78 // Retrieves details about the specified alarm.
50 // |name|: The name of the alarm to get. Defaults to the empty string. 79 // |name|: The name of the alarm to get. Defaults to the empty string.
51 static void get(optional DOMString name, AlarmCallback callback); 80 static void get(optional DOMString name, AlarmCallback callback);
52 81
53 // Gets an array of all the alarms. 82 // Gets an array of all the alarms.
54 static void getAll(AlarmListCallback callback); 83 static void getAll(AlarmListCallback callback);
55 84
56 // Clears the alarm with the given name. 85 // Clears the alarm with the given name.
57 // |name|: The name of the alarm to clear. Defaults to the empty string. 86 // |name|: The name of the alarm to clear. Defaults to the empty string.
58 static void clear(optional DOMString name); 87 static void clear(optional DOMString name);
59 88
60 // Clears all alarms. 89 // Clears all alarms.
61 static void clearAll(); 90 static void clearAll();
62 }; 91 };
63 92
64 interface Events { 93 interface Events {
65 // Fired when an alarm has elapsed. Useful for transient background pages. 94 // Fired when an alarm has elapsed. Useful for transient background pages.
66 // |alarm|: The alarm that has elapsed. 95 // |alarm|: The alarm that has elapsed.
67 static void onAlarm(Alarm alarm); 96 static void onAlarm(Alarm alarm);
68 }; 97 };
69 }; 98 };
OLDNEW
« no previous file with comments | « chrome/browser/extensions/test_extension_system.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698