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; | |
dcheng
2016/11/04 21:37:46
I'm thinking we might want to add a UUID mojo type
Reilly Grant (use Gerrit)
2016/11/04 22:02:54
I agree. I recall WebBluetooth also wanting one.
| |
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 |