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

Unified Diff: content/browser/indexed_db/indexed_db_transaction.h

Issue 18023022: Blob support for IDB [Chromium] (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Handle the rest of Josh's feedback. Created 7 years 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
Index: content/browser/indexed_db/indexed_db_transaction.h
diff --git a/content/browser/indexed_db/indexed_db_transaction.h b/content/browser/indexed_db/indexed_db_transaction.h
index 111101fe09f0818bfbbdc2311dc69b3f63da8801..cd297d752e14cb74947a779b4b24aef8424be736 100644
--- a/content/browser/indexed_db/indexed_db_transaction.h
+++ b/content/browser/indexed_db/indexed_db_transaction.h
@@ -19,6 +19,7 @@
namespace content {
+class BlobWriteCallbackImpl;
class IndexedDBCursor;
class IndexedDBDatabaseCallbacks;
@@ -63,9 +64,11 @@ class IndexedDBTransaction : public base::RefCounted<IndexedDBTransaction> {
IndexedDBDatabaseCallbacks* connection() const { return callbacks_; }
enum State {
- CREATED, // Created, but not yet started by coordinator.
- STARTED, // Started by the coordinator.
- FINISHED, // Either aborted or committed.
+ CREATED, // Created, but not yet started by coordinator.
+ STARTED, // Started by the coordinator.
+ COMMITTING, // In the process of committing, possibly waiting for blobs
+ // to be written.
+ FINISHED, // Either aborted or committed.
};
State state() const { return state_; }
@@ -80,6 +83,12 @@ class IndexedDBTransaction : public base::RefCounted<IndexedDBTransaction> {
const Diagnostics& diagnostics() const { return diagnostics_; }
private:
+ friend class BlobWriteCallbackImpl;
+
+ // TODO(ericu): Report this on the internals page.
+ bool IsStatePastRunning() const {
jsbell 2013/12/20 00:44:20 Nit: The "Running" terminology is dropped (to try
ericu 2014/02/20 00:50:29 Done.
+ return state_ == COMMITTING || state_ == FINISHED;
+ }
friend class base::RefCounted<IndexedDBTransaction>;
virtual ~IndexedDBTransaction();
@@ -88,8 +97,10 @@ class IndexedDBTransaction : public base::RefCounted<IndexedDBTransaction> {
bool IsTaskQueueEmpty() const;
bool HasPendingTasks() const;
+ void BlobWriteComplete(bool success);
void ProcessTaskQueue();
void CloseOpenCursors();
+ void CommitPhaseTwo();
const int64 id_;
const std::set<int64> object_store_ids_;
@@ -98,6 +109,7 @@ class IndexedDBTransaction : public base::RefCounted<IndexedDBTransaction> {
bool used_;
State state_;
bool commit_pending_;
+ bool blob_write_success_;
jsbell 2013/12/20 00:44:20 This looks like it's unused now?
ericu 2014/02/20 00:50:29 Done.
scoped_refptr<IndexedDBDatabaseCallbacks> callbacks_;
scoped_refptr<IndexedDBDatabase> database_;

Powered by Google App Engine
This is Rietveld 408576698