[webkit-changes] [WebKit/WebKit] 6e23f7: Return error when storing blobs in IndexedDB for e...
Sihui
noreply at github.com
Fri Jan 31 12:55:06 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6e23f71b34e62d50b9f18e59b928570712c7c143
https://github.com/WebKit/WebKit/commit/6e23f71b34e62d50b9f18e59b928570712c7c143
Author: Sihui Liu <sihui_liu at apple.com>
Date: 2025-01-31 (Fri, 31 Jan 2025)
Changed paths:
A LayoutTests/storage/indexeddb/modern/blob-simple-private-expected.txt
A LayoutTests/storage/indexeddb/modern/blob-simple-private.html
A LayoutTests/storage/indexeddb/modern/blob-simple-workers-private-expected.txt
A LayoutTests/storage/indexeddb/modern/blob-simple-workers-private.html
M LayoutTests/storage/indexeddb/modern/resources/blob-simple-workers.js
M LayoutTests/storage/indexeddb/modern/resources/blob-simple.js
M Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp
M Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
M Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp
M Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h
M Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp
M Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h
M Source/WebCore/bindings/js/SerializedScriptValue.cpp
M Source/WebCore/bindings/js/SerializedScriptValue.h
M Source/WebCore/loader/EmptyClients.cpp
M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
M Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp
M Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h
M Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp
M Source/WebKitLegacy/Storage/InProcessIDBServer.cpp
Log Message:
-----------
Return error when storing blobs in IndexedDB for ephemeral session
https://bugs.webkit.org/show_bug.cgi?id=286561
rdar://143668397
Reviewed by Brady Eidson.
Currently error is only returned for Window context but not Worker, and this makes it look like blobs can be stored in
Workers. To fix it, this patch ensures SerializedScriptValue::writeBlobsToDiskForIndexedDB checks whether it's ephemeral
session before storing blobs to disk. Also, add a message check in network proccess for corresponding message for
safety.
* LayoutTests/storage/indexeddb/modern/blob-simple-private-expected.txt: Added.
* LayoutTests/storage/indexeddb/modern/blob-simple-private.html: Added.
* LayoutTests/storage/indexeddb/modern/blob-simple-workers-private-expected.txt: Added.
* LayoutTests/storage/indexeddb/modern/blob-simple-workers-private.html: Added.
* LayoutTests/storage/indexeddb/modern/resources/blob-simple-workers.js:
* LayoutTests/storage/indexeddb/modern/resources/blob-simple.js:
* Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::putOrAdd):
* Source/WebCore/Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
* Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::IDBConnectionProxy):
(WebCore::IDBClient::IDBConnectionProxy::sessionID const):
* Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:
* Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::create):
(WebCore::IDBClient::IDBConnectionToServer::IDBConnectionToServer):
* Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h:
* Source/WebCore/bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously):
* Source/WebCore/bindings/js/SerializedScriptValue.h:
* Source/WebCore/loader/EmptyClients.cpp:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFilesForIndexedDB):
* Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::create):
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
* Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
* Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::idbConnectionToServer):
* Source/WebKitLegacy/Storage/InProcessIDBServer.cpp:
(InProcessIDBServer::InProcessIDBServer):
Canonical link: https://commits.webkit.org/289628@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list