• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Use the <code>chrome.notificationProvider</code> API to intercept
6// notifications that would otherwise go into the Chrome Notification Center,
7// get notifiers' information, and inform notifiers about users' actions on the
8// notifications.
9namespace notificationProvider {
10
11  // TODO(liyanhou): Use notifications.PermissionLevel everywhere and delete
12  // this type. See http://crbug.com/398266.
13
14  // whether notifications from this notifier is permitted or blocked.
15  enum NotifierPermissionLevel {
16    // User has elected to show notifications from the notifier.
17    // This is the default at install time.
18    granted,
19
20    // User has elected not to show notifications from the notifier.
21    denied
22  };
23
24  enum NotifierType {
25    // Notifiers that are extensions or applications.
26    application,
27
28    // Notifiers that are webistes.
29    web
30  };
31
32  dictionary Notifier {
33    // Id of the notifier.
34    DOMString notifierId;
35
36    // Type of the notifier.
37    NotifierType type;
38
39    // Name of the notifier.
40    DOMString name;
41
42    // Icon of the notifier.
43    notifications.NotificationBitmap notifierIcon;
44
45    // Permission level of the notifier.
46    NotifierPermissionLevel permissionLevel;
47
48    // If a notifier has advanced settings.
49    boolean hasSettings;
50  };
51
52  callback NotifyOnClearedCallback = void (boolean wasCleared);
53
54  callback NotifyOnClickedCallback = void (boolean matchExists);
55
56  callback NotifyOnButtonClickedCallback = void (boolean matchExists);
57
58  callback NotifyOnPermissionLevelChangedCallback = void (boolean wasChanged);
59
60  callback NotifyOnShowSettingsCallback = void (boolean hasSettings);
61
62  callback GetNotifierCallback = void (Notifier notifier);
63
64  callback GetAllNotifiersCallback = void (Notifier[] notifiers);
65
66  interface Functions {
67    // Inform the notifier that the user cleared a notification sent from that
68    // notifier.
69    // |notifierId|: The id of the notifier that sent the notification.
70    // |notificationId|: The id of the notification that was closed.
71    // |callback|: Called to indicate whether a matching notification existed.
72    static void notifyOnCleared(DOMString notifierId,
73                                DOMString notificationId,
74                                NotifyOnClearedCallback callback);
75
76    // Inform the notifier that the user clicked in a non-button area of a
77    // notification sent from that notifier.
78    // |notifierId|: The id of the notifier that sent the notification.
79    // |notificationId|: The id of the notification that was clicked on.
80    // |callback|: Called to indicate whether a matching notification existed.
81    static void notifyOnClicked(DOMString notifierId,
82                                DOMString notificationId,
83                                NotifyOnClickedCallback callback);
84
85    // Inform the notifier that the user pressed a button in the notification
86    // sent from that notifier.
87    // |notifierId|: The id of the notifier that sent the notification.
88    // |notificationId|: The id of the notification that was clicked on its
89    // button.
90    // |buttonIndex|: The index of the button that was clicked.
91    // |callback|: Called to indicate whether a matching notification existed.
92    static void notifyOnButtonClicked(DOMString notifierId,
93                                      DOMString notificationId,
94                                      long buttonIndex,
95                                      NotifyOnButtonClickedCallback callback);
96
97    // Inform the notifier that the user changed the permission level of that
98    // notifier.
99    // |notifierId|: The id of the notifier that sent the notification.
100    // |notifierType|: The type of the notifier that sent the notification.
101    // |level|: The perission level of the notifier
102    // |callback|: Called to indicate whether the permission level was changed.
103    static void notifyOnPermissionLevelChanged(
104                              DOMString notifierId,
105                              NotifierType notifierType,
106                              NotifierPermissionLevel level,
107                              NotifyOnPermissionLevelChangedCallback callback);
108
109    // Inform the notifier that the user chose to see advanced settings of that
110    // notifier.
111    // |notifierId|: The id of the notifier that sent the notification.
112    // |notifierType|: The type of the notifier that sent the notification.
113    // |callback|: Called to indicate whether the notifier has extra settings.
114    static void notifyOnShowSettings(DOMString notifierId,
115                                     NotifierType notifierType,
116                                     NotifyOnShowSettingsCallback callback);
117
118    // To get a notifier from it's notifier ID.
119    // |callback|: Returns the notifier object of the given ID.
120    static void getNotifier(GetNotifierCallback callback);
121
122    // To get all the notifiers that could send notifications.
123    // |callback|: Returns the set of notifiers currently in the system.
124    static void getAllNotifiers(GetAllNotifiersCallback callback);
125  };
126
127  interface Events {
128    // A new notification is created.
129    // |notifierId|: The id of the notifier that sent the new notification.
130    // |notificationId|: The id of the newly created notification.
131    // |options|: The content of the notification: type, title, message etc.
132    static void onCreated(DOMString notifierId,
133                          DOMString notificationId,
134                          notifications.NotificationOptions options);
135
136    // A notification is updated by the notifier.
137    // |notifierId|: The id of the notifier that sent the updated notification.
138    // |notificationId|: The id of the updated notification.
139    // |options|: The content of the notification: type, title, message etc.
140    static void onUpdated(DOMString notifierId,
141                          DOMString notificationId,
142                          notifications.NotificationOptions options);
143
144    // A notification is cleared by the notifier.
145    // |notifierId|: The id of the notifier that cleared the notification.
146    // |notificationId|: The id of the cleared notification.
147    static void onCleared(DOMString notifierId, DOMString notificationId);
148  };
149};
150