OLD | NEW |
| (Empty) |
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 // This API is designed to be used with Chrome Sync. | |
6 namespace syncedNotificationsPrivate { | |
7 | |
8 // Potential sync change types. | |
9 enum ChangeType { | |
10 added, | |
11 updated, | |
12 deleted | |
13 }; | |
14 | |
15 // Whether or not to resync all data items if the data type context changes. | |
16 enum RefreshRequest { | |
17 refresh_needed, | |
18 no_refresh | |
19 }; | |
20 | |
21 enum SyncDataType { | |
22 synced_notification, | |
23 app_info | |
24 }; | |
25 | |
26 dictionary SyncData { | |
27 SyncDataType datatype; | |
28 // |dataItem| will be a binary protobuf which matches the backend | |
29 // for the datatype. | |
30 ArrayBuffer dataItem; | |
31 }; | |
32 | |
33 // Datatype that represents a single sync change to a notification or an app | |
34 // info. | |
35 dictionary SyncChange { | |
36 SyncData data; | |
37 ChangeType changeType; | |
38 }; | |
39 | |
40 // Gets an array of SyncChange objects representing the current sync state. | |
41 // chrome.runtime.lastError contains any errors; if that is the case then | |
42 // changes should be undefined. | |
43 callback GetInitialDataCallback = void (SyncData[] changes); | |
44 // Called on completion or error of the sync operation. lastError contains an | |
45 // error message if required. | |
46 callback SyncOperationCallback = void (); | |
47 | |
48 interface Functions { | |
49 | |
50 // Gets all data from sync representing the current state (for use at | |
51 // startup). This returns both Synced Notifications and AppInfos (with the | |
52 // datatype enum set appropriately). Can return undefined, in which case | |
53 // LastError will be set. This means sync is unavailable at this time. | |
54 static void getInitialData(SyncDataType type, | |
55 GetInitialDataCallback callback); | |
56 | |
57 // Sends a changed (read state) notification back up to sync. To keep the | |
58 // sync from needing to understand the protocol, we send the whole object, | |
59 // not just the new read state. | |
60 static void updateNotification(ArrayBuffer changedNotification, | |
61 SyncOperationCallback callback); | |
62 | |
63 // Sets the (e.g.) Locale and DPI scale factor and list of sending services, | |
64 // encoded as a binary protobuf. Sync will persist these values for this | |
65 // and future sessions. | |
66 static void setRenderContext(RefreshRequest refresh, | |
67 ArrayBuffer dataTypeContext, | |
68 SyncOperationCallback callback); | |
69 | |
70 }; | |
71 | |
72 interface Events { | |
73 // Called by sync when we get new notifications or app infos from the | |
74 // server. | |
75 static void onDataChanges(SyncChange[] changes); | |
76 | |
77 // Called by sync when sync becomes available. This can be used to get the | |
78 // initial data for the app as soon as sync starts up, even if that is not | |
79 // soon after chrome startup. | |
80 static void onSyncStartup(); | |
81 }; | |
82 | |
83 }; | |
OLD | NEW |