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

Reply via email to