Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4f5cad98ab8fe56792c6be7946615c041681ee2e https://github.com/WebKit/WebKit/commit/4f5cad98ab8fe56792c6be7946615c041681ee2e Author: Youenn Fablet <you...@apple.com> Date: 2025-02-06 (Thu, 06 Feb 2025)
Changed paths: M LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemWritableFileStream-write.https.any-expected.txt M LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemWritableFileStream-write.https.any.worker-expected.txt M LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemWritableFileStream.https.any-expected.txt M LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemWritableFileStream.https.any.worker-expected.txt M LayoutTests/imported/w3c/web-platform-tests/fs/script-tests/FileSystemWritableFileStream.js M Source/WebCore/Headers.cmake M Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp M Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.h M Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h A Source/WebCore/Modules/filesystemaccess/FileSystemWritableFileStreamIdentifier.h M Source/WebCore/Modules/filesystemaccess/FileSystemWritableFileStreamSink.cpp M Source/WebCore/Modules/filesystemaccess/FileSystemWritableFileStreamSink.h M Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp M Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp M Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.h M Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.cpp M Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.h A Source/WebKit/NetworkProcess/storage/FileSystemStorageManagerLock.h M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp M Source/WebKit/Shared/WTFArgumentCoders.serialization.in M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h Log Message: ----------- Support multiple writable streams for a single file handle rdar://144228125 https://bugs.webkit.org/show_bug.cgi?id=287082 Reviewed by Sihui Liu. Introduce FileSystemWritableFileStreamIdentifier to allow a single file handle to create multiple writables. We store the identifier in FileSystemWritableFileStreamSink and pass it through IPC to network process. FileSystemStorageManager is updated to support shared locks. FileSystemStorageHandle is updated to keep a map of file handles, one per writable. Covered by rebased test. * LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemWritableFileStream-write.https.any-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemWritableFileStream-write.https.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemWritableFileStream.https.any-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemWritableFileStream.https.any.worker-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/fs/script-tests/FileSystemWritableFileStream.js: (directory_test.async t): * Source/WebCore/Headers.cmake: * Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp: (WebCore::FileSystemFileHandle::createWritable): (WebCore::FileSystemFileHandle::closeWritable): (WebCore::FileSystemFileHandle::executeCommandForWritable): * Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.h: * Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h: * Source/WebCore/Modules/filesystemaccess/FileSystemWritableFileStreamIdentifier.h: Added. * Source/WebCore/Modules/filesystemaccess/FileSystemWritableFileStreamSink.cpp: (WebCore::FileSystemWritableFileStreamSink::create): (WebCore::FileSystemWritableFileStreamSink::FileSystemWritableFileStreamSink): (WebCore::FileSystemWritableFileStreamSink::~FileSystemWritableFileStreamSink): (WebCore::FileSystemWritableFileStreamSink::write): (WebCore::FileSystemWritableFileStreamSink::close): (WebCore::FileSystemWritableFileStreamSink::error): * Source/WebCore/Modules/filesystemaccess/FileSystemWritableFileStreamSink.h: * Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp: (WebCore::WorkerFileSystemStorageConnection::scopeClosed): (WebCore::WorkerFileSystemStorageConnection::createWritable): (WebCore::WorkerFileSystemStorageConnection::closeWritable): (WebCore::WorkerFileSystemStorageConnection::executeCommandForWritable): * Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp: (WebKit::FileSystemStorageHandle::close): (WebKit::FileSystemStorageHandle::createSyncAccessHandle): (WebKit::FileSystemStorageHandle::closeSyncAccessHandle): (WebKit::FileSystemStorageHandle::createWritable): (WebKit::FileSystemStorageHandle::closeWritable): (WebKit::FileSystemStorageHandle::executeCommandForWritableInternal): (WebKit::FileSystemStorageHandle::executeCommandForWritable): * Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.h: * Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.cpp: (WebKit::FileSystemStorageManager::connectionClosed): (WebKit::FileSystemStorageManager::acquireLockForFile): (WebKit::FileSystemStorageManager::releaseLockForFile): * Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.h: * Source/WebKit/NetworkProcess/storage/FileSystemStorageManagerLock.h: Added. * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp: (WebKit::NetworkStorageManager::createWritable): (WebKit::NetworkStorageManager::closeWritable): (WebKit::NetworkStorageManager::executeCommandForWritable): * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h: * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in: * Source/WebKit/Scripts/webkit/messages.py: (serialized_identifiers): * Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp: (IPC::serializedIdentifiers): * Source/WebKit/Shared/WTFArgumentCoders.serialization.in: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp: (WebKit::WebFileSystemStorageConnection::createWritable): (WebKit::WebFileSystemStorageConnection::closeWritable): (WebKit::WebFileSystemStorageConnection::executeCommandForWritable): (WebKit::WebFileSystemStorageConnection::requestNewCapacityForSyncAccessHandle): * Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h: Canonical link: https://commits.webkit.org/289959@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes