[webkit-changes] [WebKit/WebKit] 270681: FileSystemSyncAccessHandle::write should perform q...
Sihui
noreply at github.com
Tue Jan 31 11:00:59 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2706810bb38f1f596337fbdc99fce9db9be53c7b
https://github.com/WebKit/WebKit/commit/2706810bb38f1f596337fbdc99fce9db9be53c7b
Author: Sihui Liu <sihui_liu at apple.com>
Date: 2023-01-31 (Tue, 31 Jan 2023)
Changed paths:
A LayoutTests/storage/filesystemaccess/resources/sync-access-handle-storage-limit.js
A LayoutTests/storage/filesystemaccess/sync-access-handle-storage-limit-worker-expected.txt
A LayoutTests/storage/filesystemaccess/sync-access-handle-storage-limit-worker.html
M Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp
M Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.h
M Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h
M Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp
M Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.h
M Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp
M Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h
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
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/NetworkProcess/storage/OriginStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/OriginStorageManager.h
M Source/WebKit/Scripts/webkit/messages.py
A Source/WebKit/Shared/FileSystemSyncAccessHandleInfo.h
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h
Log Message:
-----------
FileSystemSyncAccessHandle::write should perform quota check
https://bugs.webkit.org/show_bug.cgi?id=250400
rdar://93588782
Reviewed by Youenn Fablet.
Implement basic quota check for FileSystemSyncAccessHandle. The general ideas are:
1. Each FileSystemSyncAccessHandle has a capacity intialized to current file size.
2. For write operation on FileSystemSyncAccessHandle, if the new size after write exceeds current capacity, it needs to
send a request to increase capacity.
3. The capacity of FileSystemSyncAccessHandle will be viewed as occupied (even if the real file size is smaller) in
origin quota computation.
4. FileSystem data shares origin quota with IndexedDB and CacheStorage.
* LayoutTests/storage/filesystemaccess/resources/sync-access-handle-storage-limit.js: Added.
(async test):
* LayoutTests/storage/filesystemaccess/sync-access-handle-storage-limit-worker-expected.txt: Added.
* LayoutTests/storage/filesystemaccess/sync-access-handle-storage-limit-worker.html: Added.
* Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp:
(WebCore::FileSystemFileHandle::createSyncAccessHandle):
(WebCore::FileSystemFileHandle::requestNewCapacityForSyncAccessHandle):
* Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.h:
* Source/WebCore/Modules/filesystemaccess/FileSystemStorageConnection.h:
(WebCore::FileSystemStorageConnection::SyncAccessHandleInfo::isolatedCopy):
* Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:
(WebCore::FileSystemSyncAccessHandle::create):
(WebCore::FileSystemSyncAccessHandle::FileSystemSyncAccessHandle):
(WebCore::FileSystemSyncAccessHandle::write):
(WebCore::FileSystemSyncAccessHandle::requestSpaceForWrite):
* Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.h:
* Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:
(WebCore::WorkerFileSystemStorageConnection::didCreateSyncAccessHandle):
(WebCore::WorkerFileSystemStorageConnection::requestNewCapacityForSyncAccessHandle):
* Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:
* Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:
(WebKit::FileSystemStorageHandle::close):
(WebKit::FileSystemStorageHandle::createSyncAccessHandle):
(WebKit::FileSystemStorageHandle::closeSyncAccessHandle):
(WebKit::FileSystemStorageHandle::activeSyncAccessHandle):
(WebKit::FileSystemStorageHandle::isActiveSyncAccessHandle):
(WebKit::FileSystemStorageHandle::allocatedUnusedCapacity):
(WebKit::FileSystemStorageHandle::requestNewCapacityForSyncAccessHandle):
* Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.h:
(WebKit::FileSystemStorageHandle::activeSyncAccessHandle const): Deleted.
* Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.cpp:
(WebKit::FileSystemStorageManager::FileSystemStorageManager):
(WebKit::FileSystemStorageManager::allocatedUnusedCapacity const):
(WebKit::FileSystemStorageManager::requestSpace):
* Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::createSyncAccessHandle):
(WebKit::NetworkStorageManager::requestNewCapacityForSyncAccessHandle):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in:
* Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::existingFileSystemStorageManager):
(WebKit::OriginStorageManager::StorageBucket::fileSystemStorageManager):
(WebKit::OriginStorageManager::createQuotaManager):
(WebKit::OriginStorageManager::quotaManager):
(WebKit::OriginStorageManager::fileSystemStorageManager):
(WebKit::OriginStorageManager::existingFileSystemStorageManager):
(WebKit::createQuotaManager): Deleted.
* Source/WebKit/NetworkProcess/storage/OriginStorageManager.h:
* Source/WebKit/Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
* Source/WebKit/Shared/FileSystemSyncAccessHandleInfo.h: Copied from Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.h.
(WebKit::FileSystemSyncAccessHandleInfo::encode const):
(WebKit::FileSystemSyncAccessHandleInfo::decode):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:
(WebKit::WebFileSystemStorageConnection::createSyncAccessHandle):
(WebKit::WebFileSystemStorageConnection::requestNewCapacityForSyncAccessHandle):
* Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:
Canonical link: https://commits.webkit.org/259635@main
More information about the webkit-changes
mailing list