OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 // TODO: This will move to //third_party/WebKit when //content/child/indexed_db | 5 // TODO: This will move to //third_party/WebKit when //content/child/indexed_db |
6 // is deleted but for now this will depend on //content/common types and so | 6 // is deleted but for now this will depend on //content/common types and so |
7 // so belongs here. | 7 // so belongs here. |
8 | 8 |
9 module indexed_db.mojom; | 9 module indexed_db.mojom; |
10 | 10 |
11 import "mojo/common/common_custom_types.mojom"; | 11 import "mojo/common/common_custom_types.mojom"; |
12 import "url/mojo/origin.mojom"; | 12 import "url/mojo/origin.mojom"; |
13 | 13 |
14 [Native] | 14 [Native] |
| 15 enum CursorDirection; |
| 16 |
| 17 [Native] |
15 enum DataLoss; | 18 enum DataLoss; |
16 | 19 |
17 [Native] | 20 [Native] |
| 21 struct Key; |
| 22 |
| 23 [Native] |
18 struct KeyPath; | 24 struct KeyPath; |
19 | 25 |
| 26 [Native] |
| 27 struct KeyRange; |
| 28 |
| 29 [Native] |
| 30 enum PutMode; |
| 31 |
| 32 [Native] |
| 33 enum TaskType; |
| 34 |
| 35 [Native] |
| 36 enum TransactionMode; |
| 37 |
20 struct IndexMetadata { | 38 struct IndexMetadata { |
21 int64 id; | 39 int64 id; |
22 mojo.common.mojom.String16 name; | 40 mojo.common.mojom.String16 name; |
23 KeyPath key_path; | 41 KeyPath key_path; |
24 bool unique; | 42 bool unique; |
25 bool multi_entry; | 43 bool multi_entry; |
26 }; | 44 }; |
27 | 45 |
28 struct ObjectStoreMetadata { | 46 struct ObjectStoreMetadata { |
29 int64 id; | 47 int64 id; |
30 mojo.common.mojom.String16 name; | 48 mojo.common.mojom.String16 name; |
31 KeyPath key_path; | 49 KeyPath key_path; |
32 bool auto_increment; | 50 bool auto_increment; |
33 int64 max_index_id; | 51 int64 max_index_id; |
34 array<IndexMetadata> indexes; | 52 array<IndexMetadata> indexes; |
35 }; | 53 }; |
36 | 54 |
37 struct DatabaseMetadata { | 55 struct DatabaseMetadata { |
38 int64 id; | 56 int64 id; |
39 mojo.common.mojom.String16 name; | 57 mojo.common.mojom.String16 name; |
40 int64 version; | 58 int64 version; |
41 int64 max_object_store_id; | 59 int64 max_object_store_id; |
42 array<ObjectStoreMetadata> object_stores; | 60 array<ObjectStoreMetadata> object_stores; |
43 }; | 61 }; |
44 | 62 |
| 63 struct IndexKeys { |
| 64 int64 index_id; |
| 65 array<Key> index_keys; |
| 66 }; |
| 67 |
| 68 struct FileInfo { |
| 69 mojo.common.mojom.FilePath path; |
| 70 mojo.common.mojom.String16 name; |
| 71 mojo.common.mojom.Time last_modified; |
| 72 }; |
| 73 |
| 74 struct BlobInfo { |
| 75 string uuid; |
| 76 mojo.common.mojom.String16 mime_type; |
| 77 uint64 size; |
| 78 FileInfo? file; |
| 79 }; |
| 80 |
| 81 struct Value { |
| 82 string bits; |
| 83 array<BlobInfo> blob_or_file_info; |
| 84 }; |
| 85 |
| 86 struct ReturnValue { |
| 87 Value value; |
| 88 Key primary_key; |
| 89 KeyPath key_path; |
| 90 }; |
| 91 |
45 // The Callbacks interface is used to return results for individual requests. | 92 // The Callbacks interface is used to return results for individual requests. |
46 // Some requests may return multiple results before completion, such as | 93 // Some requests may return multiple results before completion, such as |
47 // UpgradeNeeded before SuccessDatabase. | 94 // UpgradeNeeded before SuccessDatabase. |
48 // | 95 // |
49 // TODO(https://crbug.com/627484): Many of these could be replaced with | 96 // TODO(https://crbug.com/627484): Many of these could be replaced with |
50 // replies associated with particular messages. | 97 // replies associated with particular messages. |
51 interface Callbacks { | 98 interface Callbacks { |
52 Error(int32 code, mojo.common.mojom.String16 message); | 99 Error(int32 code, mojo.common.mojom.String16 message); |
53 | 100 |
54 // Factory::GetDatabaseNames | 101 // Factory::GetDatabaseNames |
55 SuccessStringList(array<mojo.common.mojom.String16> value); | 102 SuccessStringList(array<mojo.common.mojom.String16> value); |
56 | 103 |
57 // Factory::Open / DeleteDatabase | 104 // Factory::Open / DeleteDatabase |
58 Blocked(int64 existing_version); | 105 Blocked(int64 existing_version); |
59 | 106 |
60 // Factory::Open | 107 // Factory::Open |
61 UpgradeNeeded(int32 database_id, int64 old_version, DataLoss data_loss, | 108 UpgradeNeeded(associated Database database, int64 old_version, |
62 string data_loss_message, DatabaseMetadata db_metadata); | 109 DataLoss data_loss, string data_loss_message, |
63 SuccessDatabase(int32 database_id, DatabaseMetadata metadata); | 110 DatabaseMetadata db_metadata); |
| 111 SuccessDatabase(associated Database? database, DatabaseMetadata metadata); |
64 | 112 |
| 113 // Database::OpenCursor |
| 114 SuccessCursor(int32 cursor_id, Key key, Key primary_key, Value? value); |
| 115 |
| 116 // Database::Get / Cursor::Advance |
| 117 SuccessValue(ReturnValue? value); |
| 118 |
| 119 // Database::GetAll |
| 120 SuccessArray(array<ReturnValue> values); |
| 121 |
| 122 // Database::Put / Cursor::Update |
| 123 SuccessKey(Key key); |
| 124 |
| 125 // Database::Count / DeleteRange |
65 // Factory::DeleteDatabase | 126 // Factory::DeleteDatabase |
66 SuccessInteger(int64 value); | 127 SuccessInteger(int64 value); |
| 128 |
| 129 // Cursor::Continue / Advance |
| 130 Success(); |
67 }; | 131 }; |
68 | 132 |
69 // The DatabaseCallbacks interface is used to notification of events out of | 133 // The DatabaseCallbacks interface is used to notification of events out of |
70 // band to individual requests. A single instance is used for the lifetime of | 134 // band to individual requests. A single instance is used for the lifetime of |
71 // a database connection. | 135 // a database connection. |
72 interface DatabaseCallbacks { | 136 interface DatabaseCallbacks { |
73 ForcedClose(); | 137 ForcedClose(); |
74 VersionChange(int64 old_version, int64 new_version); | 138 VersionChange(int64 old_version, int64 new_version); |
75 Abort(int64 transaction_id, int32 code, | 139 Abort(int64 transaction_id, int32 code, |
76 mojo.common.mojom.String16 message); | 140 mojo.common.mojom.String16 message); |
77 Complete(int64 transaction_id); | 141 Complete(int64 transaction_id); |
78 }; | 142 }; |
79 | 143 |
| 144 interface Database { |
| 145 CreateObjectStore(int64 transaction_id, |
| 146 int64 object_store_id, |
| 147 mojo.common.mojom.String16 name, |
| 148 KeyPath key_path, |
| 149 bool auto_increment); |
| 150 DeleteObjectStore(int64 transaction_id, |
| 151 int64 object_store_id); |
| 152 RenameObjectStore(int64 transaction_id, |
| 153 int64 object_store_id, |
| 154 mojo.common.mojom.String16 new_name); |
| 155 CreateTransaction(int64 transaction_id, |
| 156 array<int64> object_store_ids, |
| 157 TransactionMode mode); |
| 158 Close(); |
| 159 VersionChangeIgnored(); |
| 160 AddObserver(int64 transaction_id, |
| 161 int32 observer_id, |
| 162 bool include_transaction, |
| 163 bool no_records, |
| 164 bool values, |
| 165 uint16 operation_types); |
| 166 RemoveObservers(array<int32> observers); |
| 167 Get(int64 transaction_id, |
| 168 int64 object_store_id, |
| 169 int64 index_id, |
| 170 KeyRange key_range, |
| 171 bool key_only, |
| 172 associated Callbacks callbacks); |
| 173 GetAll(int64 transaction_id, |
| 174 int64 object_store_id, |
| 175 int64 index_id, |
| 176 KeyRange key_range, |
| 177 bool key_only, |
| 178 int64 max_count, |
| 179 associated Callbacks callbacks); |
| 180 Put(int64 transaction_id, |
| 181 int64 object_store_id, |
| 182 Value value, |
| 183 Key key, |
| 184 PutMode mode, |
| 185 array<IndexKeys> index_keys, |
| 186 associated Callbacks callbacks); |
| 187 SetIndexKeys(int64 transaction_id, |
| 188 int64 object_store_id, |
| 189 Key primary_key, |
| 190 array<IndexKeys> index_keys); |
| 191 SetIndexesReady(int64 transaction_id, |
| 192 int64 object_store_id, |
| 193 array<int64> index_ids); |
| 194 OpenCursor(int64 transaction_id, |
| 195 int64 object_store_id, |
| 196 int64 index_id, |
| 197 KeyRange key_range, |
| 198 CursorDirection direction, |
| 199 bool key_only, |
| 200 TaskType task_type, |
| 201 associated Callbacks callbacks); |
| 202 Count(int64 transaction_id, |
| 203 int64 object_store_id, |
| 204 int64 index_id, |
| 205 KeyRange key_range, |
| 206 associated Callbacks callbacks); |
| 207 DeleteRange(int64 transaction_id, |
| 208 int64 object_store_id, |
| 209 KeyRange key_range, |
| 210 associated Callbacks callbacks); |
| 211 Clear(int64 transaction_id, |
| 212 int64 object_store_id, |
| 213 associated Callbacks callbacks); |
| 214 CreateIndex(int64 transaction_id, |
| 215 int64 object_store_id, |
| 216 int64 index_id, |
| 217 mojo.common.mojom.String16 name, |
| 218 KeyPath key_path, |
| 219 bool unique, |
| 220 bool multi_entry); |
| 221 DeleteIndex(int64 transaction_id, |
| 222 int64 object_store_id, |
| 223 int64 index_id); |
| 224 RenameIndex(int64 transaction_id, |
| 225 int64 object_store_id, |
| 226 int64 index_id, |
| 227 mojo.common.mojom.String16 new_name); |
| 228 Abort(int64 transaction_id); |
| 229 Commit(int64 transaction_id); |
| 230 AckReceivedBlobs(array<string> uuids); |
| 231 }; |
| 232 |
80 interface Factory { | 233 interface Factory { |
81 GetDatabaseNames(associated Callbacks callbacks, url.mojom.Origin origin); | 234 GetDatabaseNames(associated Callbacks callbacks, url.mojom.Origin origin); |
82 Open(int32 worker_thread, associated Callbacks callbacks, | 235 Open(int32 worker_thread, associated Callbacks callbacks, |
83 associated DatabaseCallbacks database_callbacks, url.mojom.Origin origin, | 236 associated DatabaseCallbacks database_callbacks, url.mojom.Origin origin, |
84 mojo.common.mojom.String16 name, int64 version, int64 transaction_id); | 237 mojo.common.mojom.String16 name, int64 version, int64 transaction_id); |
85 DeleteDatabase(associated Callbacks callbacks, url.mojom.Origin origin, | 238 DeleteDatabase(associated Callbacks callbacks, url.mojom.Origin origin, |
86 mojo.common.mojom.String16 name); | 239 mojo.common.mojom.String16 name); |
87 }; | 240 }; |
OLD | NEW |