Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(573)

Unified Diff: content/common/indexed_db/indexed_db.mojom

Issue 2449953008: Port messages sent by WebIDBDatabaseImpl to Mojo. (Closed)
Patch Set: Address more comments from dcheng@. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/child/indexed_db/webidbfactory_impl.cc ('k') | content/common/indexed_db/indexed_db.typemap » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « content/child/indexed_db/webidbfactory_impl.cc ('k') | content/common/indexed_db/indexed_db.typemap » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698