Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bf0c520e60f89fef81ab2d6e85def1937087f9cd
https://github.com/WebKit/WebKit/commit/bf0c520e60f89fef81ab2d6e85def1937087f9cd
Author: Sihui Liu <[email protected]>
Date: 2025-10-31 (Fri, 31 Oct 2025)
Changed paths:
M Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
M Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm
A
Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBWrongMetadataVersion.sqlite3
A
Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBWrongMetadataVersion.sqlite3-shm
A
Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBWrongMetadataVersion.sqlite3-wal
Log Message:
-----------
Upgrade IndexedDB database metadata version again on name validation failure
https://bugs.webkit.org/show_bug.cgi?id=301677
rdar://163432130
Reviewed by Per Arne Vollan.
301753@main has a bug that could cause client to create a database with
mismatched metadata version and database name
encoding. This bug is fixed by 302055@main. However, for clients that already
create a corrupted database, the database
may not be opened again (the database name validation would fail as the
requested name will not match name decoded from
database record). To fix that, this patch adds a temporary workaround to decode
the record with different encoding and
perform validation again, when the validation based on encoding format for
current metadata version fails. If the second
valiation pass, it means this is a database created between 301753@main and
302055@main; and we would perform metadata
version upgrade again to fix it.
API Test: IndexedDB.OpenDatabaseWithMismatchedMetadataVersionAndName.
* Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::databaseNameFromDatabase):
(WebCore::IDBServer::databaseMetadataVersionAndNameFromDatabase):
(WebCore::IDBServer::migrateIDBDatabaseInfoTableIfNecessary):
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:
(TEST(IndexedDB, OpenDatabaseWithMismatchedMetadataVersionAndName)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBWrongMetadataVersion.sqlite3:
Added.
*
Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBWrongMetadataVersion.sqlite3-shm:
Added.
*
Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBWrongMetadataVersion.sqlite3-wal:
Added.
Canonical link: https://commits.webkit.org/302373@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications