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

Reply via email to