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

Reply via email to