Index: content/browser/indexed_db/indexed_db_backing_store.h |
diff --git a/content/browser/indexed_db/indexed_db_backing_store.h b/content/browser/indexed_db/indexed_db_backing_store.h |
index 3b9f0f63a3ba5a3789cb390626f48da25d145bed..ba7d65215da917c2e31f5b1b2498839f0c6d6ce0 100644 |
--- a/content/browser/indexed_db/indexed_db_backing_store.h |
+++ b/content/browser/indexed_db/indexed_db_backing_store.h |
@@ -203,6 +203,11 @@ class CONTENT_EXPORT IndexedDBBackingStore |
int64 database_id, |
int64 object_store_id, |
const RecordIdentifier& record) WARN_UNUSED_RESULT; |
+ virtual leveldb::Status DeleteRange( |
+ IndexedDBBackingStore::Transaction* transaction, |
+ int64 database_id, |
+ int64 object_store_id, |
+ const IndexedDBKeyRange&) WARN_UNUSED_RESULT; |
virtual leveldb::Status GetKeyGeneratorCurrentNumber( |
IndexedDBBackingStore::Transaction* transaction, |
int64 database_id, |
@@ -389,7 +394,10 @@ class CONTENT_EXPORT IndexedDBBackingStore |
explicit Transaction(IndexedDBBackingStore* backing_store); |
virtual ~Transaction(); |
virtual void Begin(); |
- virtual leveldb::Status Commit(); |
+ // The callback will be called eventually on success or failure, or |
+ // immediately if phase one is complete due to lack of any blobs to write. |
+ virtual leveldb::Status CommitPhaseOne(scoped_refptr<BlobWriteCallback>); |
+ virtual leveldb::Status CommitPhaseTwo(); |
virtual void Rollback(); |
void Reset() { |
backing_store_ = NULL; |
@@ -458,16 +466,23 @@ class CONTENT_EXPORT IndexedDBBackingStore |
private: |
class BlobWriteCallbackWrapper; |
+ // These return true on success, false on failure. |
cmumford
2014/05/28 20:34:54
Nit: You say "these", but the first one (HandleBlo
ericu
2014/05/28 22:50:42
Yup; the first one used to return bool before I ch
|
+ leveldb::Status HandleBlobPreTransaction( |
+ BlobEntryKeyValuePairVec* new_blob_entries, |
+ WriteDescriptorVec* new_files_to_write); |
+ bool CollectBlobFilesToRemove(); |
// The callback will be called eventually on success or failure. |
void WriteNewBlobs(BlobEntryKeyValuePairVec& new_blob_entries, |
WriteDescriptorVec& new_files_to_write, |
scoped_refptr<BlobWriteCallback> callback); |
+ leveldb::Status SortBlobsToRemove(); |
IndexedDBBackingStore* backing_store_; |
scoped_refptr<LevelDBTransaction> transaction_; |
BlobChangeMap blob_change_map_; |
BlobChangeMap incognito_blob_map_; |
int64 database_id_; |
+ BlobJournalType blobs_to_remove_; |
scoped_refptr<ChainedBlobWriter> chained_blob_writer_; |
}; |