Index: third_party/WebKit/Source/modules/indexeddb/IDBIndex.h |
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBIndex.h b/third_party/WebKit/Source/modules/indexeddb/IDBIndex.h |
index 7177a8b86ba262595d51bc22f53223ac92858574..64392ea418981e1823220ddc357067cf583faffa 100644 |
--- a/third_party/WebKit/Source/modules/indexeddb/IDBIndex.h |
+++ b/third_party/WebKit/Source/modules/indexeddb/IDBIndex.h |
@@ -48,10 +48,10 @@ class IDBIndex final : public GarbageCollectedFinalized<IDBIndex>, |
DEFINE_WRAPPERTYPEINFO(); |
public: |
- static IDBIndex* create(const IDBIndexMetadata& metadata, |
+ static IDBIndex* create(RefPtr<IDBIndexMetadata> metadata, |
IDBObjectStore* objectStore, |
IDBTransaction* transaction) { |
- return new IDBIndex(metadata, objectStore, transaction); |
+ return new IDBIndex(std::move(metadata), objectStore, transaction); |
} |
~IDBIndex(); |
DECLARE_TRACE(); |
@@ -88,9 +88,14 @@ class IDBIndex final : public GarbageCollectedFinalized<IDBIndex>, |
uint32_t maxCount, |
ExceptionState&); |
- void markDeleted() { m_deleted = true; } |
- bool isDeleted() const; |
+ void markDeleted() { |
+ DCHECK(m_transaction->isVersionChange()) |
+ << "Index deleted outside versionchange transaction."; |
+ m_deleted = true; |
+ } |
+ bool isDeleted() const { return m_deleted; } |
int64_t id() const { return metadata().id; } |
+ void revertMetadata(RefPtr<IDBIndexMetadata> oldMetadata); |
// Used internally and by InspectorIndexedDBAgent: |
IDBRequest* openCursor(ScriptState*, IDBKeyRange*, WebIDBCursorDirection); |
@@ -98,9 +103,9 @@ class IDBIndex final : public GarbageCollectedFinalized<IDBIndex>, |
WebIDBDatabase* backendDB() const; |
private: |
- IDBIndex(const IDBIndexMetadata&, IDBObjectStore*, IDBTransaction*); |
+ IDBIndex(RefPtr<IDBIndexMetadata>, IDBObjectStore*, IDBTransaction*); |
- const IDBIndexMetadata& metadata() const { return m_metadata; } |
+ const IDBIndexMetadata& metadata() const { return *m_metadata; } |
IDBRequest* getInternal(ScriptState*, |
const ScriptValue& key, |
@@ -112,7 +117,7 @@ class IDBIndex final : public GarbageCollectedFinalized<IDBIndex>, |
ExceptionState&, |
bool keyOnly); |
- IDBIndexMetadata m_metadata; |
+ RefPtr<IDBIndexMetadata> m_metadata; |
Member<IDBObjectStore> m_objectStore; |
Member<IDBTransaction> m_transaction; |
bool m_deleted = false; |