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

Side by Side Diff: third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.h

Issue 2276593002: Support renaming of IndexedDB indexes and object stores. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added test coverage for the (slightly incorrect) behavior in strict mode when our flag is not enabl… Created 4 years, 3 months 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 static IDBObjectStore* create(const IDBObjectStoreMetadata& metadata, IDBTra nsaction* transaction) 55 static IDBObjectStore* create(const IDBObjectStoreMetadata& metadata, IDBTra nsaction* transaction)
56 { 56 {
57 return new IDBObjectStore(metadata, transaction); 57 return new IDBObjectStore(metadata, transaction);
58 } 58 }
59 ~IDBObjectStore() { } 59 ~IDBObjectStore() { }
60 DECLARE_TRACE(); 60 DECLARE_TRACE();
61 61
62 // Implement the IDBObjectStore IDL 62 // Implement the IDBObjectStore IDL
63 int64_t id() const { return m_metadata.id; } 63 int64_t id() const { return m_metadata.id; }
64 const String& name() const { return m_metadata.name; } 64 const String& name() const { return m_metadata.name; }
65 void setName(const String& name, ExceptionState&);
65 ScriptValue keyPath(ScriptState*) const; 66 ScriptValue keyPath(ScriptState*) const;
66 DOMStringList* indexNames() const; 67 DOMStringList* indexNames() const;
67 IDBTransaction* transaction() const { return m_transaction.get(); } 68 IDBTransaction* transaction() const { return m_transaction.get(); }
68 bool autoIncrement() const { return m_metadata.autoIncrement; } 69 bool autoIncrement() const { return m_metadata.autoIncrement; }
69 70
70 IDBRequest* openCursor(ScriptState*, const ScriptValue& range, const String& direction, ExceptionState&); 71 IDBRequest* openCursor(ScriptState*, const ScriptValue& range, const String& direction, ExceptionState&);
71 IDBRequest* openKeyCursor(ScriptState*, const ScriptValue& range, const Stri ng& direction, ExceptionState&); 72 IDBRequest* openKeyCursor(ScriptState*, const ScriptValue& range, const Stri ng& direction, ExceptionState&);
72 IDBRequest* get(ScriptState*, const ScriptValue& key, ExceptionState&); 73 IDBRequest* get(ScriptState*, const ScriptValue& key, ExceptionState&);
73 IDBRequest* getKey(ScriptState*, const ScriptValue& key, ExceptionState&); 74 IDBRequest* getKey(ScriptState*, const ScriptValue& key, ExceptionState&);
74 IDBRequest* getAll(ScriptState*, const ScriptValue& range, unsigned long max Count, ExceptionState&); 75 IDBRequest* getAll(ScriptState*, const ScriptValue& range, unsigned long max Count, ExceptionState&);
(...skipping 23 matching lines...) Expand all
98 void markDeleted() { m_deleted = true; } 99 void markDeleted() { m_deleted = true; }
99 bool isDeleted() const { return m_deleted; } 100 bool isDeleted() const { return m_deleted; }
100 void abort(); 101 void abort();
101 void transactionFinished(); 102 void transactionFinished();
102 103
103 const IDBObjectStoreMetadata& metadata() const { return m_metadata; } 104 const IDBObjectStoreMetadata& metadata() const { return m_metadata; }
104 void setMetadata(const IDBObjectStoreMetadata& metadata) { m_metadata = meta data; } 105 void setMetadata(const IDBObjectStoreMetadata& metadata) { m_metadata = meta data; }
105 106
106 typedef HeapVector<Member<IDBKey>> IndexKeys; 107 typedef HeapVector<Member<IDBKey>> IndexKeys;
107 108
109 // Used by IDBIndex::setName:
110 bool containsIndex(const String& name) const
111 {
112 return findIndexId(name) != IDBIndexMetadata::InvalidId;
113 }
114 void indexRenamed(int64_t indexId, const String& newName);
115
108 WebIDBDatabase* backendDB() const; 116 WebIDBDatabase* backendDB() const;
109 117
110 private: 118 private:
111 IDBObjectStore(const IDBObjectStoreMetadata&, IDBTransaction*); 119 IDBObjectStore(const IDBObjectStoreMetadata&, IDBTransaction*);
112 120
113 IDBIndex* createIndex(ScriptState*, const String& name, const IDBKeyPath&, c onst IDBIndexParameters&, ExceptionState&); 121 IDBIndex* createIndex(ScriptState*, const String& name, const IDBKeyPath&, c onst IDBIndexParameters&, ExceptionState&);
114 IDBRequest* put(ScriptState*, WebIDBPutMode, IDBAny* source, const ScriptVal ue&, const ScriptValue& key, ExceptionState&); 122 IDBRequest* put(ScriptState*, WebIDBPutMode, IDBAny* source, const ScriptVal ue&, const ScriptValue& key, ExceptionState&);
115 123
116 int64_t findIndexId(const String& name) const; 124 int64_t findIndexId(const String& name) const;
117 bool containsIndex(const String& name) const
118 {
119 return findIndexId(name) != IDBIndexMetadata::InvalidId;
120 }
121 125
122 IDBObjectStoreMetadata m_metadata; 126 IDBObjectStoreMetadata m_metadata;
123 Member<IDBTransaction> m_transaction; 127 Member<IDBTransaction> m_transaction;
124 bool m_deleted = false; 128 bool m_deleted = false;
125 129
126 typedef HeapHashMap<String, Member<IDBIndex>> IDBIndexMap; 130 typedef HeapHashMap<String, Member<IDBIndex>> IDBIndexMap;
127 IDBIndexMap m_indexMap; 131 IDBIndexMap m_indexMap;
128 132
129 // Used to mark indexes created in an aborted upgrade transaction as 133 // Used to mark indexes created in an aborted upgrade transaction as
130 // deleted. 134 // deleted.
131 HeapHashSet<Member<IDBIndex>> m_createdIndexes; 135 HeapHashSet<Member<IDBIndex>> m_createdIndexes;
132 }; 136 };
133 137
134 } // namespace blink 138 } // namespace blink
135 139
136 #endif // IDBObjectStore_h 140 #endif // IDBObjectStore_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698