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 |