Changeset 127669 in webkit
- Timestamp:
- Sep 5, 2012 6:07:57 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r127668 r127669 1 2012-09-05 Joshua Bell <jsbell@chromium.org> 2 3 IndexedDB: Integer version lost after first open/close/open cycle 4 https://bugs.webkit.org/show_bug.cgi?id=95864 5 6 Reviewed by Tony Chang. 7 8 Ensure integer versions are persisted across open/close/open cycles. 9 10 Note that although this is a useful and valid test in general, the specific bug that 11 prompted adding this test will only repro if the origin has no pre-existing backing 12 store, which is not guaranteed by DRT or other shells. See http://webkit.org/b/92166 13 14 * storage/indexeddb/intversion-persistence-expected.txt: Added. 15 * storage/indexeddb/intversion-persistence.html: Added. 16 * storage/indexeddb/resources/intversion-persistence.js: Added. 17 (test): 18 (openFirstTime.request.onupgradeneeded): 19 (openFirstTime.request.onsuccess): 20 (openFirstTime): 21 (openSecondTime.request.onsuccess): 22 (openSecondTime): 23 1 24 2012-09-05 Yoshifumi Inoue <yosin@chromium.org> 2 25 -
trunk/Source/WebCore/ChangeLog
r127664 r127669 1 2012-09-05 Joshua Bell <jsbell@chromium.org> 2 3 IndexedDB: Integer version lost after first open/close/open cycle 4 https://bugs.webkit.org/show_bug.cgi?id=95864 5 6 Reviewed by Tony Chang. 7 8 New backing stores were being created with an old schema version, causing migration 9 to occur when the backing store was re-opened, which would overwrite valid integer 10 version metadata. New backing stores should be created with the latest schema version 11 since no migration is desired. 12 13 Test: storage/indexeddb/intversion-persistence.html 14 15 * Modules/indexeddb/IDBLevelDBBackingStore.cpp: 16 (WebCore::setUpMetadata): 17 1 18 2012-09-05 Kenichi Ishibashi <bashi@chromium.org> 2 19 -
trunk/Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp
r125627 r127669 139 139 static bool setUpMetadata(LevelDBDatabase* db, const String& origin) 140 140 { 141 const int64_t latestSchemaVersion = 1; 141 142 const Vector<char> metaDataKey = SchemaVersionKey::encode(); 142 143 143 144 int64_t schemaVersion = 0; 144 145 if (!getInt(db, metaDataKey, schemaVersion)) { 145 schemaVersion = 0;146 if (!putInt(db, metaDataKey, schemaVersion))146 schemaVersion = latestSchemaVersion; 147 if (!putInt(db, metaDataKey, latestSchemaVersion)) 147 148 return false; 148 149 } else { 149 150 if (!schemaVersion) { 150 schemaVersion = 1;151 schemaVersion = latestSchemaVersion; 151 152 RefPtr<LevelDBTransaction> transaction = LevelDBTransaction::create(db); 152 153 transaction->put(metaDataKey, encodeInt(schemaVersion)); … … 177 178 } 178 179 } 179 ASSERT(schemaVersion == 1); 180 } 180 } 181 182 ASSERT(schemaVersion == latestSchemaVersion); 181 183 182 184 return true;
Note: See TracChangeset
for help on using the changeset viewer.