Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 74123c260a439c4e69d44300b7ebd2f8a8f39fe7
https://github.com/WebKit/WebKit/commit/74123c260a439c4e69d44300b7ebd2f8a8f39fe7
Author: Sihui Liu <[email protected]>
Date: 2025-07-08 (Tue, 08 Jul 2025)
Changed paths:
M Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp
M Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm
Log Message:
-----------
REGRESSION (iOS 18.4.x): Accessing BLOBs stored in IndexedDB leads to
Networking process getting terminated
https://bugs.webkit.org/show_bug.cgi?id=292142
rdar://150284384
Reviewed by Brady Eidson.
When a file-backed Blob is stored in IndexedDB database, we create a new file
in the IndexedDB directory to store the
content of the Blob, and make the corresponding IndexedDB record point to the
new file instead of the original file.
This ensures websites can have consistent access to the content even when the
file is modified or removed. This is
implemented by storing explicit Blob paths (pointing to files in IndexdDB
directory) with IndexedDB record. When
IndexedDB client creates file-backed Blob from record, it will prefer using
explicit path, and fall back to path in
serialized script value if explicit path does not exist. Normally, IndexedDB
server should always send explicit paths to
client. However, in some cases where client retrieves records via IDBIndex,
server may not propely include the paths in
result, and this can lead to client tries accessing files that they no longer
have access to. To fix this, this patch
makes sure to include Blob paths when server retrieves records with
SQLiteIDBCursor.
API test: IndexedDB.GetFileByIndex
* Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
(-[IndexedDBOpenPanelUIDelegate
webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
((IndexedDB, GetFileByIndex)):
Canonical link: https://commits.webkit.org/297122@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes