Index: content/common/indexed_db/indexed_db.mojom |
diff --git a/content/common/indexed_db/indexed_db.mojom b/content/common/indexed_db/indexed_db.mojom |
index 52d1dccb4d506a5d606e05a2253b12ac089e5f3d..ad69a5abd7567711dd6b1f91a0c4ac14462be5a3 100644 |
--- a/content/common/indexed_db/indexed_db.mojom |
+++ b/content/common/indexed_db/indexed_db.mojom |
@@ -12,11 +12,29 @@ import "mojo/common/common_custom_types.mojom"; |
import "url/mojo/origin.mojom"; |
[Native] |
+enum CursorDirection; |
+ |
+[Native] |
enum DataLoss; |
[Native] |
+struct Key; |
+ |
+[Native] |
struct KeyPath; |
+[Native] |
+struct KeyRange; |
+ |
+[Native] |
+enum PutMode; |
+ |
+[Native] |
+enum TaskType; |
+ |
+[Native] |
+enum TransactionMode; |
+ |
struct IndexMetadata { |
int64 id; |
mojo.common.mojom.String16 name; |
@@ -42,6 +60,35 @@ struct DatabaseMetadata { |
array<ObjectStoreMetadata> object_stores; |
}; |
+struct IndexKeys { |
+ int64 index_id; |
+ array<Key> index_keys; |
+}; |
+ |
+struct FileInfo { |
+ mojo.common.mojom.FilePath path; |
+ mojo.common.mojom.String16 name; |
+ mojo.common.mojom.Time last_modified; |
+}; |
+ |
+struct BlobInfo { |
+ string uuid; |
+ mojo.common.mojom.String16 mime_type; |
+ uint64 size; |
+ FileInfo? file; |
+}; |
+ |
+struct Value { |
+ string bits; |
+ array<BlobInfo> blob_or_file_info; |
+}; |
+ |
+struct ReturnValue { |
+ Value value; |
+ Key primary_key; |
+ KeyPath key_path; |
+}; |
+ |
// The Callbacks interface is used to return results for individual requests. |
// Some requests may return multiple results before completion, such as |
// UpgradeNeeded before SuccessDatabase. |
@@ -58,12 +105,29 @@ interface Callbacks { |
Blocked(int64 existing_version); |
// Factory::Open |
- UpgradeNeeded(int32 database_id, int64 old_version, DataLoss data_loss, |
- string data_loss_message, DatabaseMetadata db_metadata); |
- SuccessDatabase(int32 database_id, DatabaseMetadata metadata); |
+ UpgradeNeeded(associated Database database, int64 old_version, |
+ DataLoss data_loss, string data_loss_message, |
+ DatabaseMetadata db_metadata); |
+ SuccessDatabase(associated Database? database, DatabaseMetadata metadata); |
+ // Database::OpenCursor |
+ SuccessCursor(int32 cursor_id, Key key, Key primary_key, Value? value); |
+ |
+ // Database::Get / Cursor::Advance |
+ SuccessValue(ReturnValue? value); |
+ |
+ // Database::GetAll |
+ SuccessArray(array<ReturnValue> values); |
+ |
+ // Database::Put / Cursor::Update |
+ SuccessKey(Key key); |
+ |
+ // Database::Count / DeleteRange |
// Factory::DeleteDatabase |
SuccessInteger(int64 value); |
+ |
+ // Cursor::Continue / Advance |
+ Success(); |
}; |
// The DatabaseCallbacks interface is used to notification of events out of |
@@ -77,6 +141,95 @@ interface DatabaseCallbacks { |
Complete(int64 transaction_id); |
}; |
+interface Database { |
+ CreateObjectStore(int64 transaction_id, |
+ int64 object_store_id, |
+ mojo.common.mojom.String16 name, |
+ KeyPath key_path, |
+ bool auto_increment); |
+ DeleteObjectStore(int64 transaction_id, |
+ int64 object_store_id); |
+ RenameObjectStore(int64 transaction_id, |
+ int64 object_store_id, |
+ mojo.common.mojom.String16 new_name); |
+ CreateTransaction(int64 transaction_id, |
+ array<int64> object_store_ids, |
+ TransactionMode mode); |
+ Close(); |
+ VersionChangeIgnored(); |
+ AddObserver(int64 transaction_id, |
+ int32 observer_id, |
+ bool include_transaction, |
+ bool no_records, |
+ bool values, |
+ uint16 operation_types); |
+ RemoveObservers(array<int32> observers); |
+ Get(int64 transaction_id, |
+ int64 object_store_id, |
+ int64 index_id, |
+ KeyRange key_range, |
+ bool key_only, |
+ associated Callbacks callbacks); |
+ GetAll(int64 transaction_id, |
+ int64 object_store_id, |
+ int64 index_id, |
+ KeyRange key_range, |
+ bool key_only, |
+ int64 max_count, |
+ associated Callbacks callbacks); |
+ Put(int64 transaction_id, |
+ int64 object_store_id, |
+ Value value, |
+ Key key, |
+ PutMode mode, |
+ array<IndexKeys> index_keys, |
+ associated Callbacks callbacks); |
+ SetIndexKeys(int64 transaction_id, |
+ int64 object_store_id, |
+ Key primary_key, |
+ array<IndexKeys> index_keys); |
+ SetIndexesReady(int64 transaction_id, |
+ int64 object_store_id, |
+ array<int64> index_ids); |
+ OpenCursor(int64 transaction_id, |
+ int64 object_store_id, |
+ int64 index_id, |
+ KeyRange key_range, |
+ CursorDirection direction, |
+ bool key_only, |
+ TaskType task_type, |
+ associated Callbacks callbacks); |
+ Count(int64 transaction_id, |
+ int64 object_store_id, |
+ int64 index_id, |
+ KeyRange key_range, |
+ associated Callbacks callbacks); |
+ DeleteRange(int64 transaction_id, |
+ int64 object_store_id, |
+ KeyRange key_range, |
+ associated Callbacks callbacks); |
+ Clear(int64 transaction_id, |
+ int64 object_store_id, |
+ associated Callbacks callbacks); |
+ CreateIndex(int64 transaction_id, |
+ int64 object_store_id, |
+ int64 index_id, |
+ mojo.common.mojom.String16 name, |
+ KeyPath key_path, |
+ bool unique, |
+ bool multi_entry); |
+ DeleteIndex(int64 transaction_id, |
+ int64 object_store_id, |
+ int64 index_id); |
+ RenameIndex(int64 transaction_id, |
+ int64 object_store_id, |
+ int64 index_id, |
+ mojo.common.mojom.String16 new_name); |
+ Abort(int64 transaction_id); |
+ Commit(int64 transaction_id); |
+ AckReceivedBlobs(array<string> uuids); |
+}; |
+ |
interface Factory { |
GetDatabaseNames(associated Callbacks callbacks, url.mojom.Origin origin); |
Open(int32 worker_thread, associated Callbacks callbacks, |