Changeset 282130 in webkit
- Timestamp:
- Sep 7, 2021 11:30:43 PM (11 months ago)
- Location:
- trunk
- Files:
-
- 17 added
- 93 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/idlharness.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/idlharness.https.any.worker-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/estimate-indexeddb.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/estimate-parallel.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/estimate-usage-details.https.tentative.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/idlharness.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/idlharness.https.any.worker-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/opaque-origin.https.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/persisted.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/storagemanager-estimate.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/storagemanager-persist.https.window-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/storage/storagemanager-persisted.https.any-expected.txt (modified) (1 diff)
-
LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt (modified) (2 diffs)
-
LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt (modified) (2 diffs)
-
Source/WTF/ChangeLog (modified) (1 diff)
-
Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml (modified) (1 diff)
-
Source/WebCore/CMakeLists.txt (modified) (4 diffs)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/DerivedSources-input.xcfilelist (modified) (2 diffs)
-
Source/WebCore/DerivedSources-output.xcfilelist (modified) (2 diffs)
-
Source/WebCore/DerivedSources.make (modified) (2 diffs)
-
Source/WebCore/Headers.cmake (modified) (1 diff)
-
Source/WebCore/Modules/storage (added)
-
Source/WebCore/Modules/storage/DummyStorageProvider.h (added)
-
Source/WebCore/Modules/storage/StorageConnection.h (added)
-
Source/WebCore/Modules/storage/StorageManager.cpp (added)
-
Source/WebCore/Modules/storage/StorageManager.h (added)
-
Source/WebCore/Modules/storage/StorageManager.idl (added)
-
Source/WebCore/Modules/storage/StorageProvider.h (added)
-
Source/WebCore/Sources.txt (modified) (2 diffs)
-
Source/WebCore/WebCore.xcodeproj/project.pbxproj (modified) (7 diffs)
-
Source/WebCore/bindings/js/WebCoreBuiltinNames.h (modified) (1 diff)
-
Source/WebCore/dom/Document.cpp (modified) (1 diff)
-
Source/WebCore/dom/Document.h (modified) (1 diff)
-
Source/WebCore/dom/ScriptExecutionContext.h (modified) (3 diffs)
-
Source/WebCore/loader/EmptyClients.cpp (modified) (2 diffs)
-
Source/WebCore/page/Navigator.idl (modified) (1 diff)
-
Source/WebCore/page/NavigatorBase.cpp (modified) (2 diffs)
-
Source/WebCore/page/NavigatorBase.h (modified) (2 diffs)
-
Source/WebCore/page/NavigatorStorage.idl (added)
-
Source/WebCore/page/Page.cpp (modified) (3 diffs)
-
Source/WebCore/page/Page.h (modified) (3 diffs)
-
Source/WebCore/page/PageConfiguration.cpp (modified) (3 diffs)
-
Source/WebCore/page/PageConfiguration.h (modified) (3 diffs)
-
Source/WebKit/CMakeLists.txt (modified) (2 diffs)
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/DerivedSources-input.xcfilelist (modified) (1 diff)
-
Source/WebKit/DerivedSources-output.xcfilelist (modified) (1 diff)
-
Source/WebKit/DerivedSources.make (modified) (2 diffs)
-
Source/WebKit/NetworkProcess/NetworkProcess.cpp (modified) (6 diffs)
-
Source/WebKit/NetworkProcess/NetworkProcess.h (modified) (3 diffs)
-
Source/WebKit/NetworkProcess/storage (added)
-
Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp (added)
-
Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h (added)
-
Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in (added)
-
Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp (added)
-
Source/WebKit/NetworkProcess/storage/OriginStorageManager.h (added)
-
Source/WebKit/Shared/WebsiteDataStoreParameters.cpp (modified) (2 diffs)
-
Source/WebKit/Shared/WebsiteDataStoreParameters.h (modified) (1 diff)
-
Source/WebKit/Sources.txt (modified) (2 diffs)
-
Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp (modified) (1 diff)
-
Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm (modified) (1 diff)
-
Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (modified) (1 diff)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebsiteData/playstation/WebsiteDataStorePlayStation.cpp (modified) (1 diff)
-
Source/WebKit/UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp (modified) (1 diff)
-
Source/WebKit/UIProcess/glib/WebsiteDataStoreGLib.cpp (modified) (1 diff)
-
Source/WebKit/WebKit.xcodeproj/project.pbxproj (modified) (14 diffs)
-
Source/WebKit/WebProcess/WebCoreSupport/WebStorageConnection.cpp (added)
-
Source/WebKit/WebProcess/WebCoreSupport/WebStorageConnection.h (added)
-
Source/WebKit/WebProcess/WebCoreSupport/WebStorageProvider.h (added)
-
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.h (modified) (1 diff)
-
Source/WebKit/WebProcess/WebPage/WebPage.cpp (modified) (2 diffs)
-
Source/WebKitLegacy/mac/ChangeLog (modified) (1 diff)
-
Source/WebKitLegacy/mac/WebView/WebView.mm (modified) (3 diffs)
-
Source/WebKitLegacy/win/ChangeLog (modified) (1 diff)
-
Source/WebKitLegacy/win/WebView.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r282129 r282130 1 2021-09-07 Sihui Liu <sihui_liu@apple.com> 2 3 Add basic support for Storage API 4 https://bugs.webkit.org/show_bug.cgi?id=229925 5 6 Reviewed by Darin Adler. 7 8 * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt: 9 * platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt: 10 1 11 2021-09-07 Antti Koivisto <antti@apple.com> 2 12 -
trunk/LayoutTests/imported/w3c/ChangeLog
r282129 r282130 1 2021-09-07 Sihui Liu <sihui_liu@apple.com> 2 3 Add basic support for Storage API 4 https://bugs.webkit.org/show_bug.cgi?id=229925 5 6 Reviewed by Darin Adler. 7 8 * web-platform-tests/file-system-access/idlharness.https.any-expected.txt: 9 * web-platform-tests/file-system-access/idlharness.https.any.worker-expected.txt: 10 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt: 11 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt: 12 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt: 13 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt: 14 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt: 15 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt: 16 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt: 17 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt: 18 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt: 19 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt: 20 * web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt: 21 * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt: 22 * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt: 23 * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt: 24 * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt: 25 * web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt: 26 * web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window-expected.txt: 27 * web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt: 28 * web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt: 29 * web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt: 30 * web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt: 31 * web-platform-tests/storage/estimate-indexeddb.https.any-expected.txt: 32 * web-platform-tests/storage/estimate-parallel.https.any-expected.txt: 33 * web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative-expected.txt: 34 * web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any-expected.txt: 35 * web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any-expected.txt: 36 * web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window-expected.txt: 37 * web-platform-tests/storage/estimate-usage-details.https.tentative.any-expected.txt: 38 * web-platform-tests/storage/idlharness.https.any-expected.txt: 39 * web-platform-tests/storage/idlharness.https.any.worker-expected.txt: 40 * web-platform-tests/storage/opaque-origin.https.window-expected.txt: 41 * web-platform-tests/storage/persisted.https.any-expected.txt: 42 * web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https-expected.txt: 43 * web-platform-tests/storage/storagemanager-estimate.https.any-expected.txt: 44 * web-platform-tests/storage/storagemanager-persist.https.window-expected.txt: 45 * web-platform-tests/storage/storagemanager-persisted.https.any-expected.txt: 46 1 47 2021-09-07 Antti Koivisto <antti@apple.com> 2 48 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/idlharness.https.any-expected.txt
r281769 r282130 54 54 FAIL FileSystemWritableFileStream interface: operation seek(unsigned long long) assert_own_property: self does not have own property "FileSystemWritableFileStream" expected property "FileSystemWritableFileStream" missing 55 55 FAIL FileSystemWritableFileStream interface: operation truncate(unsigned long long) assert_own_property: self does not have own property "FileSystemWritableFileStream" expected property "FileSystemWritableFileStream" missing 56 FAIL StorageManager interface: operation getDirectory() assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing56 FAIL StorageManager interface: operation getDirectory() assert_own_property: interface prototype object missing non-static operation expected property "getDirectory" missing 57 57 FAIL DataTransferItem interface: operation getAsFileSystemHandle() assert_own_property: interface prototype object missing non-static operation expected property "getAsFileSystemHandle" missing 58 58 FAIL Window interface: operation showOpenFilePicker(optional OpenFilePickerOptions) assert_own_property: global object missing non-static operation expected property "showOpenFilePicker" missing -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/idlharness.https.any.worker-expected.txt
r281769 r282130 54 54 FAIL FileSystemWritableFileStream interface: operation seek(unsigned long long) assert_own_property: self does not have own property "FileSystemWritableFileStream" expected property "FileSystemWritableFileStream" missing 55 55 FAIL FileSystemWritableFileStream interface: operation truncate(unsigned long long) assert_own_property: self does not have own property "FileSystemWritableFileStream" expected property "FileSystemWritableFileStream" missing 56 FAIL StorageManager interface: operation getDirectory() assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing56 FAIL StorageManager interface: operation getDirectory() assert_own_property: interface prototype object missing non-static operation expected property "getDirectory" missing 57 57 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt
r281769 r282130 1 1 2 FAIL Store handle in IndexedDB and read from pending transaction. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL Store handle in IndexedDB and read from new transaction. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL Store handles and blobs in IndexedDB. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL Store handle in IndexedDB and read using a cursor. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL Store handle in IndexedDB using inline keys. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Store handle in IndexedDB and read from pending transaction. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL Store handle in IndexedDB and read from new transaction. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL Store handles and blobs in IndexedDB. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL Store handle in IndexedDB and read using a cursor. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL Store handle in IndexedDB using inline keys. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 7 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt
r281769 r282130 1 1 2 FAIL isSameEntry for identical directory handles returns true promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL isSameEntry for different directories returns false promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL isSameEntry for different handles for the same directory promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL isSameEntry for identical file handles returns true promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL isSameEntry for different files returns false promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"7 FAIL isSameEntry for different handles for the same file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"8 FAIL isSameEntry comparing a file to a file in a different directory returns false promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"9 FAIL isSameEntry comparing a file to a directory returns false promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL isSameEntry for identical directory handles returns true promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL isSameEntry for different directories returns false promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL isSameEntry for different handles for the same directory promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL isSameEntry for identical file handles returns true promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL isSameEntry for different files returns false promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 FAIL isSameEntry for different handles for the same file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 8 FAIL isSameEntry comparing a file to a file in a different directory returns false promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 9 FAIL isSameEntry comparing a file to a directory returns false promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 10 10 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt
r281769 r282130 1 1 2 FAIL Send and receive messages using a broadcast channel in an iframe, dedicated worker and service worker. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Send and receive messages using a broadcast channel in an iframe, dedicated worker and service worker. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 3 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt
r281769 r282130 1 1 2 FAIL Fail to send and receive messages using a cross origin iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL Fail to send and receive messages using a cross origin message port in an iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL Fail to send to a sandboxed iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL Fail to send messages using a message port to a sandboxed iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL Fail to send messages to a data URI iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"7 FAIL Fail to send messages using a message port in a data URI iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"8 FAIL Fail to send and receive messages using a cross origin window. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"9 FAIL Fail to send and receive messages using a cross origin message port in a window. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"10 FAIL Fail to send messages to a sandboxed window. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"11 FAIL Fail to send messages using a message port to a sandboxed window. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Fail to send and receive messages using a cross origin iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL Fail to send and receive messages using a cross origin message port in an iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL Fail to send to a sandboxed iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL Fail to send messages using a message port to a sandboxed iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL Fail to send messages to a data URI iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 FAIL Fail to send messages using a message port in a data URI iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 8 FAIL Fail to send and receive messages using a cross origin window. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 9 FAIL Fail to send and receive messages using a cross origin message port in a window. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 10 FAIL Fail to send messages to a sandboxed window. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 11 FAIL Fail to send messages using a message port to a sandboxed window. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 12 12 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt
r281769 r282130 1 1 2 FAIL Send and receive messages using a message port in a same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL Send and receive messages using a message port in a sandboxed same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL Send and receive messages using a message port in a blob iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL Send and receive messages using a message port in an iframe srcdoc. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Send and receive messages using a message port in a same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL Send and receive messages using a message port in a sandboxed same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL Send and receive messages using a message port in a blob iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL Send and receive messages using a message port in an iframe srcdoc. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 6 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt
r281769 r282130 1 1 2 FAIL Send and receive messages using a message port in a same origin window. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL Send and receive messages using a message port in a blob window. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL Send and receive messages using a message port in a sandboxed same origin window. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Send and receive messages using a message port in a same origin window. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL Send and receive messages using a message port in a blob window. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL Send and receive messages using a message port in a sandboxed same origin window. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 5 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt
r281769 r282130 1 1 2 FAIL Send and receive messages using a message port in a dedicated worker. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL Send and receive messages using a message port in a service worker. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Send and receive messages using a message port in a dedicated worker. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL Send and receive messages using a message port in a service worker. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 4 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt
r281769 r282130 1 1 2 FAIL Send and receive messages using a same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL Send and receive messages using a sandboxed same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL Send and receive messages using a blob iframe. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL Send and receive messages using an iframe srcdoc. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Send and receive messages using a same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL Send and receive messages using a sandboxed same origin iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL Send and receive messages using a blob iframe. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL Send and receive messages using an iframe srcdoc. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 6 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt
r281769 r282130 1 1 2 FAIL Send and receive messages using a same origin window. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL Send and receive messages using a blob window. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL Send and receive messages using a sandboxed same origin window. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Send and receive messages using a same origin window. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL Send and receive messages using a blob window. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL Send and receive messages using a sandboxed same origin window. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 5 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt
r281769 r282130 1 1 2 FAIL Send and receive messages using a dedicated worker. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL Send and receive messages using a service worker. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Send and receive messages using a dedicated worker. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL Send and receive messages using a service worker. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 4 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt
r281769 r282130 1 1 2 FAIL remove() to remove a file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL remove() on an already removed file should fail promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL remove() to remove an empty directory promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL remove() on an already removed directory should fail promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL remove() on a non-empty directory should fail promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"7 FAIL remove() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"8 FAIL remove() on a file should ignore the recursive option promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL remove() to remove a file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL remove() on an already removed file should fail promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL remove() to remove an empty directory promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL remove() on an already removed directory should fail promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL remove() on a non-empty directory should fail promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 FAIL remove() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 8 FAIL remove() on a file should ignore the recursive option promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 9 9 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt
r281769 r282130 1 1 2 FAIL getDirectoryHandle(create=false) rejects for non-existing directories promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL getDirectoryHandle(create=true) creates an empty directory promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL getDirectoryHandle(create=false) returns existing directories promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL getDirectoryHandle(create=true) returns existing directories without erasing promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL getDirectoryHandle() when a file already exists with the same name promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"7 FAIL getDirectoryHandle() with empty name promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"8 FAIL getDirectoryHandle() with "." name promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"9 FAIL getDirectoryHandle() with ".." name promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"10 FAIL getDirectoryHandle(create=false) with a path separator when the directory exists promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"11 FAIL getDirectoryHandle(create=true) with a path separator promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL getDirectoryHandle(create=false) rejects for non-existing directories promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL getDirectoryHandle(create=true) creates an empty directory promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL getDirectoryHandle(create=false) returns existing directories promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL getDirectoryHandle(create=true) returns existing directories without erasing promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL getDirectoryHandle() when a file already exists with the same name promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 FAIL getDirectoryHandle() with empty name promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 8 FAIL getDirectoryHandle() with "." name promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 9 FAIL getDirectoryHandle() with ".." name promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 10 FAIL getDirectoryHandle(create=false) with a path separator when the directory exists promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 11 FAIL getDirectoryHandle(create=true) with a path separator promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 12 12 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt
r281769 r282130 1 1 2 FAIL getFileHandle(create=false) rejects for non-existing files promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL getFileHandle(create=true) creates an empty file for non-existing files promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL getFileHandle(create=false) returns existing files promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL getFileHandle(create=true) returns existing files without erasing promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL getFileHandle(create=false) when a directory already exists with the same name promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"7 FAIL getFileHandle(create=true) when a directory already exists with the same name promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"8 FAIL getFileHandle() with empty name promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"9 FAIL getFileHandle() with "." name promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"10 FAIL getFileHandle() with ".." name promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"11 FAIL getFileHandle(create=false) with a path separator when the file exists. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"12 FAIL getFileHandle(create=true) with a path separator promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL getFileHandle(create=false) rejects for non-existing files promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL getFileHandle(create=true) creates an empty file for non-existing files promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL getFileHandle(create=false) returns existing files promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL getFileHandle(create=true) returns existing files without erasing promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL getFileHandle(create=false) when a directory already exists with the same name promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 FAIL getFileHandle(create=true) when a directory already exists with the same name promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 8 FAIL getFileHandle() with empty name promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 9 FAIL getFileHandle() with "." name promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 10 FAIL getFileHandle() with ".." name promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 11 FAIL getFileHandle(create=false) with a path separator when the file exists. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 12 FAIL getFileHandle(create=true) with a path separator promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 13 13 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt
r281769 r282130 1 1 2 FAIL returning early from an iteration doesn't crash promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL @@asyncIterator: full iteration works promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL entries: full iteration works promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL values: full iteration works promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL keys: full iteration works promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"7 FAIL iteration while iterator gets garbage collected promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL returning early from an iteration doesn't crash promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL @@asyncIterator: full iteration works promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL entries: full iteration works promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL values: full iteration works promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL keys: full iteration works promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 FAIL iteration while iterator gets garbage collected promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 8 8 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt
r281769 r282130 1 1 2 FAIL removeEntry() to remove a file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL removeEntry() on an already removed file should fail promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL removeEntry() to remove an empty directory promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL removeEntry() on a non-empty directory should fail promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL removeEntry() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"7 FAIL removeEntry() with empty name should fail promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"8 FAIL removeEntry() with "." name should fail promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"9 FAIL removeEntry() with ".." name should fail promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"10 FAIL removeEntry() with a path separator should fail. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL removeEntry() to remove a file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL removeEntry() on an already removed file should fail promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL removeEntry() to remove an empty directory promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL removeEntry() on a non-empty directory should fail promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL removeEntry() on a directory recursively should delete all sub-items promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 FAIL removeEntry() with empty name should fail promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 8 FAIL removeEntry() with "." name should fail promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 9 FAIL removeEntry() with ".." name should fail promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 10 FAIL removeEntry() with a path separator should fail. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 11 11 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt
r281769 r282130 1 1 2 FAIL Resolve returns empty array for same directory promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL Resolve returns correct path promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL Resolve returns correct path with non-ascii characters promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL Resolve returns null when entry is not a child promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Resolve returns empty array for same directory promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL Resolve returns correct path promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL Resolve returns correct path with non-ascii characters promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL Resolve returns null when entry is not a child promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 6 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window-expected.txt
r281769 r282130 1 1 2 FAIL Attempt to create a sync access handle. promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL Attempt to create a sync access handle. promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 3 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt
r281769 r282130 1 1 2 FAIL getFile() provides a file that can be sliced promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL getFile() returns last modified time promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL getFile() provides a file that can be sliced promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL getFile() returns last modified time promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 4 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt
r281769 r282130 1 1 2 FAIL can be piped to with a string promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL can be piped to with an ArrayBuffer promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL can be piped to with a Blob promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL can be piped to with a param object with write command promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL can be piped to with a param object with multiple commands promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"7 FAIL multiple operations can be queued promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"8 FAIL plays well with fetch promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"9 FAIL abort() aborts write promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL can be piped to with a string promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL can be piped to with an ArrayBuffer promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL can be piped to with a Blob promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL can be piped to with a param object with write command promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL can be piped to with a param object with multiple commands promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 FAIL multiple operations can be queued promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 8 FAIL plays well with fetch promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 9 FAIL abort() aborts write promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 10 10 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt
r281769 r282130 1 1 2 FAIL write() with an empty blob to an empty file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL write() a blob to an empty file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL write() with WriteParams without position to an empty file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL write() a string to an empty file with zero offset promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL write() a blob to an empty file with zero offset promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"7 FAIL write() called consecutively appends promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"8 FAIL write() WriteParams without position and string appends promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"9 FAIL write() WriteParams without position and blob appends promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"10 FAIL write() called with a string and a valid offset promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"11 FAIL write() called with a blob and a valid offset promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"12 FAIL write() called with an offset beyond the end of the file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"13 FAIL write() with an empty string to an empty file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"14 FAIL write() with a valid utf-8 string promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"15 FAIL write() with a string with unix line ending preserved promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"16 FAIL write() with a string with windows line ending preserved promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"17 FAIL write() with an empty array buffer to an empty file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"18 FAIL write() with a valid typed array buffer promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"19 FAIL atomic writes: close() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"20 FAIL atomic writes: writable file streams make atomic changes on close promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"21 FAIL atomic writes: write() after close() fails promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"22 FAIL atomic writes: truncate() after close() fails promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"23 FAIL atomic writes: close() after close() fails promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"24 FAIL atomic writes: only one close() operation may succeed promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"25 FAIL atomic writes: writable file stream persists file on close, even if file is removed promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"26 FAIL getWriter() can be used promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"27 FAIL WriteParams: truncate missing size param promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"28 FAIL WriteParams: write missing data param promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"29 FAIL WriteParams: seek missing position param promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"30 FAIL write() with an invalid blob to an empty file should reject promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL write() with an empty blob to an empty file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL write() a blob to an empty file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL write() with WriteParams without position to an empty file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL write() a string to an empty file with zero offset promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL write() a blob to an empty file with zero offset promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 FAIL write() called consecutively appends promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 8 FAIL write() WriteParams without position and string appends promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 9 FAIL write() WriteParams without position and blob appends promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 10 FAIL write() called with a string and a valid offset promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 11 FAIL write() called with a blob and a valid offset promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 12 FAIL write() called with an offset beyond the end of the file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 13 FAIL write() with an empty string to an empty file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 14 FAIL write() with a valid utf-8 string promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 15 FAIL write() with a string with unix line ending preserved promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 16 FAIL write() with a string with windows line ending preserved promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 17 FAIL write() with an empty array buffer to an empty file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 18 FAIL write() with a valid typed array buffer promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 19 FAIL atomic writes: close() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 20 FAIL atomic writes: writable file streams make atomic changes on close promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 21 FAIL atomic writes: write() after close() fails promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 22 FAIL atomic writes: truncate() after close() fails promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 23 FAIL atomic writes: close() after close() fails promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 24 FAIL atomic writes: only one close() operation may succeed promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 25 FAIL atomic writes: writable file stream persists file on close, even if file is removed promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 26 FAIL getWriter() can be used promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 27 FAIL WriteParams: truncate missing size param promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 28 FAIL WriteParams: write missing data param promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 29 FAIL WriteParams: seek missing position param promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 30 FAIL write() with an invalid blob to an empty file should reject promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 31 31 -
trunk/LayoutTests/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt
r281769 r282130 1 1 2 FAIL truncate() to shrink a file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"3 FAIL truncate() to grow a file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"4 FAIL createWritable() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"5 FAIL write() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"6 FAIL truncate() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"7 FAIL createWritable({keepExistingData: true}): atomic writable file stream initialized with source contents promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"8 FAIL createWritable({keepExistingData: false}): atomic writable file stream initialized with empty file promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"9 FAIL cursor position: truncate size > offset promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"10 FAIL cursor position: truncate size < offset promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"11 FAIL commands are queued, stream is unlocked after each operation promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.getDirectory')"2 FAIL truncate() to shrink a file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 3 FAIL truncate() to grow a file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 4 FAIL createWritable() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 5 FAIL write() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 6 FAIL truncate() fails when parent directory is removed promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 7 FAIL createWritable({keepExistingData: true}): atomic writable file stream initialized with source contents promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 8 FAIL createWritable({keepExistingData: false}): atomic writable file stream initialized with empty file promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 9 FAIL cursor position: truncate size > offset promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 10 FAIL cursor position: truncate size < offset promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 11 FAIL commands are queued, stream is unlocked after each operation promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.getDirectory is not a function. (In 'navigator.storage.getDirectory()', 'navigator.storage.getDirectory' is undefined)" 12 12 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/estimate-indexeddb.https.any-expected.txt
r282088 r282130 1 1 2 FAIL estimate() method exists and returns a Promise navigator.storage is not an Object. (evaluating ''estimate' in navigator.storage')3 FAIL estimate() resolves to dictionary with members promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.estimate')"4 FAIL estimate() shows usage increase after large value is stored promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.estimate')"2 FAIL estimate() method exists and returns a Promise assert_true: expected true got false 3 FAIL estimate() resolves to dictionary with members promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined)" 4 FAIL estimate() shows usage increase after large value is stored promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined)" 5 5 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/estimate-parallel.https.any-expected.txt
r282088 r282130 1 1 2 FAIL Multiple estimate() calls in parallel should complete promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.estimate')"2 FAIL Multiple estimate() calls in parallel should complete promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined)" 3 3 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative-expected.txt
r282088 r282130 1 1 2 FAIL estimate() shows usage increase after app is cached promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.estimate')"2 FAIL estimate() shows usage increase after app is cached promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined)" 3 3 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any-expected.txt
r282088 r282130 1 1 2 FAIL estimate() shows usage increase after large value is stored promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.estimate')"2 FAIL estimate() shows usage increase after large value is stored promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined)" 3 3 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any-expected.txt
r282088 r282130 1 1 2 FAIL estimate() resolves to dictionary with usageDetails member promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.estimate')"3 FAIL estimate() usage details reflects increase in indexedDB after large value is stored promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.estimate')"2 FAIL estimate() resolves to dictionary with usageDetails member promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined)" 3 FAIL estimate() usage details reflects increase in indexedDB after large value is stored promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined)" 4 4 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window-expected.txt
r282088 r282130 1 1 2 FAIL estimate() shows usage increase after large value is stored promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.estimate')"2 FAIL estimate() shows usage increase after large value is stored promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined)" 3 3 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/estimate-usage-details.https.tentative.any-expected.txt
r282088 r282130 1 1 2 FAIL estimate() resolves to dictionary with members, including usageDetails promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.estimate')"2 FAIL estimate() resolves to dictionary with members, including usageDetails promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined)" 3 3 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/idlharness.https.any-expected.txt
r282088 r282130 16 16 PASS WorkerNavigator includes NavigatorOnLine: member names are unique 17 17 PASS WorkerNavigator includes NavigatorConcurrentHardware: member names are unique 18 FAIL StorageManager interface: existence and properties of interface object assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 19 FAIL StorageManager interface object length assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 20 FAIL StorageManager interface object name assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 21 FAIL StorageManager interface: existence and properties of interface prototype object assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 22 FAIL StorageManager interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 23 FAIL StorageManager interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 24 FAIL StorageManager interface: operation persisted() assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 25 FAIL StorageManager interface: operation persist() assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 26 FAIL StorageManager interface: operation estimate() assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing27 FAIL StorageManager must be primary interface of navigator.storage assert_equals: wrong typeof object expected "object" but got "undefined" 28 FAIL Stringification of navigator.storage assert_equals: wrong typeof object expected "object" but got "undefined" 29 FAIL StorageManager interface: navigator.storage must inherit property "persisted()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" 30 FAIL StorageManager interface: navigator.storage must inherit property "persist()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined" 31 FAIL StorageManager interface: navigator.storage must inherit property "estimate()" with the proper type assert_ equals: wrong typeof object expected "object" but got "undefined"32 FAIL Navigator interface: attribute storage assert_true: The prototype object must have a property "storage" expected true got false33 FAIL Navigator interface: navigator must inherit property "storage" with the proper type assert_inherits: property "storage" not found in prototype chain 18 PASS StorageManager interface: existence and properties of interface object 19 PASS StorageManager interface object length 20 PASS StorageManager interface object name 21 PASS StorageManager interface: existence and properties of interface prototype object 22 PASS StorageManager interface: existence and properties of interface prototype object's "constructor" property 23 PASS StorageManager interface: existence and properties of interface prototype object's @@unscopables property 24 PASS StorageManager interface: operation persisted() 25 PASS StorageManager interface: operation persist() 26 FAIL StorageManager interface: operation estimate() assert_own_property: interface prototype object missing non-static operation expected property "estimate" missing 27 PASS StorageManager must be primary interface of navigator.storage 28 PASS Stringification of navigator.storage 29 PASS StorageManager interface: navigator.storage must inherit property "persisted()" with the proper type 30 PASS StorageManager interface: navigator.storage must inherit property "persist()" with the proper type 31 FAIL StorageManager interface: navigator.storage must inherit property "estimate()" with the proper type assert_inherits: property "estimate" not found in prototype chain 32 PASS Navigator interface: attribute storage 33 PASS Navigator interface: navigator must inherit property "storage" with the proper type 34 34 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/idlharness.https.any.worker-expected.txt
r282088 r282130 16 16 PASS WorkerNavigator includes NavigatorOnLine: member names are unique 17 17 PASS WorkerNavigator includes NavigatorConcurrentHardware: member names are unique 18 FAIL StorageManager interface: existence and properties of interface object assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 19 FAIL StorageManager interface object length assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 20 FAIL StorageManager interface object name assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 21 FAIL StorageManager interface: existence and properties of interface prototype object assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 22 FAIL StorageManager interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 23 FAIL StorageManager interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 24 FAIL StorageManager interface: operation persisted() assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing 25 FAIL StorageManager interface: member persist undefined is not an Object. (evaluating 'member.name in this.get_interface_object()') 26 FAIL StorageManager interface: operation estimate() assert_own_property: self does not have own property "StorageManager" expected property "StorageManager" missing18 PASS StorageManager interface: existence and properties of interface object 19 PASS StorageManager interface object length 20 PASS StorageManager interface object name 21 PASS StorageManager interface: existence and properties of interface prototype object 22 PASS StorageManager interface: existence and properties of interface prototype object's "constructor" property 23 PASS StorageManager interface: existence and properties of interface prototype object's @@unscopables property 24 PASS StorageManager interface: operation persisted() 25 PASS StorageManager interface: member persist 26 FAIL StorageManager interface: operation estimate() assert_own_property: interface prototype object missing non-static operation expected property "estimate" missing 27 27 FAIL StorageManager must be primary interface of navigator.storage assert_equals: wrong typeof object expected "object" but got "undefined" 28 28 FAIL Stringification of navigator.storage assert_equals: wrong typeof object expected "object" but got "undefined" -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/opaque-origin.https.window-expected.txt
r282088 r282130 1 1 2 FAIL navigator.storage.persisted() in non-sandboxed iframe should not reject assert_equals: navigator.storage.persisted() should not reject expected "no rejection" but got "API access threw" 3 FAIL navigator.storage.persisted() in sandboxed iframe should reject with TypeError assert_equals: navigator.storage.persisted() should reject with TypeError expected "correct rejection" but got " API access threw"2 PASS navigator.storage.persisted() in non-sandboxed iframe should not reject 3 FAIL navigator.storage.persisted() in sandboxed iframe should reject with TypeError assert_equals: navigator.storage.persisted() should reject with TypeError expected "correct rejection" but got "no rejection" 4 4 FAIL navigator.storage.estimate() in non-sandboxed iframe should not reject assert_equals: navigator.storage.estimate() should not reject expected "no rejection" but got "API access threw" 5 5 FAIL navigator.storage.estimate() in sandboxed iframe should reject with TypeError assert_equals: navigator.storage.estimate() should reject with TypeError expected "correct rejection" but got "API access threw" 6 FAIL navigator.storage.persist() in non-sandboxed iframe should not reject assert_equals: navigator.storage.persist() should not reject expected "no rejection" but got "API access threw" 7 FAIL navigator.storage.persist() in sandboxed iframe should reject with TypeError assert_equals: navigator.storage.persist() should reject with TypeError expected "correct rejection" but got " API access threw"6 PASS navigator.storage.persist() in non-sandboxed iframe should not reject 7 FAIL navigator.storage.persist() in sandboxed iframe should reject with TypeError assert_equals: navigator.storage.persist() should reject with TypeError expected "correct rejection" but got "no rejection" 8 8 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/persisted.https.any-expected.txt
r282088 r282130 1 1 2 FAIL persisted() method exists and returns a Promise navigator.storage is not an Object. (evaluating ''persisted' in navigator.storage') 3 FAIL persisted() returns a promise and resolves as boolean with false undefined is not an object (evaluating 'navigator.storage.persisted') 2 PASS persisted() method exists and returns a Promise 3 PASS persisted() returns a promise and resolves as boolean with false 4 4 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https-expected.txt
r282088 r282130 1 1 2 FAIL Add quotachange listener on detached iframe. undefined is not an object (evaluating 'storageManager.addEventListener')2 FAIL Add quotachange listener on detached iframe. storageManager.addEventListener is not a function. (In 'storageManager.addEventListener('quotachange', emptyListener)', 'storageManager.addEventListener' is undefined) 3 3 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/storagemanager-estimate.https.any-expected.txt
r282088 r282130 1 1 2 FAIL estimate() method returns a Promise undefined is not an object (evaluating 'navigator.storage.estimate')3 FAIL estimate() resolves to dictionary with members undefined is not an object (evaluating 'navigator.storage.estimate')4 FAIL estimate() shows usage increase after 1MB IndexedDB record is stored promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'navigator.storage.estimate')"2 FAIL estimate() method returns a Promise navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined) 3 FAIL estimate() resolves to dictionary with members navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined) 4 FAIL estimate() shows usage increase after 1MB IndexedDB record is stored promise_test: Unhandled rejection with value: object "TypeError: navigator.storage.estimate is not a function. (In 'navigator.storage.estimate()', 'navigator.storage.estimate' is undefined)" 5 5 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/storagemanager-persist.https.window-expected.txt
r282088 r282130 1 1 2 FAIL navigator.storage.persist() returns a promise that resolves. undefined is not an object (evaluating 'navigator.storage.persist') 2 PASS navigator.storage.persist() returns a promise that resolves. 3 3 -
trunk/LayoutTests/imported/w3c/web-platform-tests/storage/storagemanager-persisted.https.any-expected.txt
r282088 r282130 1 1 2 FAIL navigator.storage.persisted() returns a promise that resolves. undefined is not an object (evaluating 'navigator.storage.persisted') 2 PASS navigator.storage.persisted() returns a promise that resolves. 3 3 -
trunk/LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt
r281771 r282130 20 20 navigator.productSub is OK 21 21 navigator.requestMediaKeySystemAccess() is OK 22 navigator.storage is OK 22 23 navigator.userAgent is OK 23 24 navigator.vendor is OK … … 44 45 navigator.productSub is OK 45 46 navigator.requestMediaKeySystemAccess() is OK 47 navigator.storage is OK 46 48 navigator.userAgent is OK 47 49 navigator.vendor is OK -
trunk/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt
r281771 r282130 30 30 navigator.setLoggedOut() is OK 31 31 navigator.share() is OK 32 navigator.storage is OK 32 33 navigator.userAgent is OK 33 34 navigator.vendor is OK … … 64 65 navigator.setLoggedOut() is OK 65 66 navigator.share() is OK 67 navigator.storage is OK 66 68 navigator.userAgent is OK 67 69 navigator.vendor is OK -
trunk/Source/WTF/ChangeLog
r282125 r282130 1 2021-09-07 Sihui Liu <sihui_liu@apple.com> 2 3 Add basic support for Storage API 4 https://bugs.webkit.org/show_bug.cgi?id=229925 5 6 Reviewed by Darin Adler. 7 8 * Scripts/Preferences/WebPreferencesExperimental.yaml: 9 1 10 2021-09-07 Yusuke Suzuki <ysuzuki@apple.com> 2 11 -
trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml
r282105 r282130 1103 1103 default: false 1104 1104 1105 StorageAPIEnabled: 1106 type: bool 1107 humanReadableName: "Storage API" 1108 humanReadableDescription: "Enable Storage API" 1109 defaultValue: 1110 WebKitLegacy: 1111 default: false 1112 WebKit: 1113 default: false 1114 WebCore: 1115 default: false 1116 1105 1117 SyntheticEditingCommandsEnabled: 1106 1118 type: bool -
trunk/Source/WebCore/CMakeLists.txt
r282067 r282130 54 54 "${WEBCORE_DIR}/Modules/remoteplayback" 55 55 "${WEBCORE_DIR}/Modules/speech" 56 "${WEBCORE_DIR}/Modules/storage" 56 57 "${WEBCORE_DIR}/Modules/streams" 57 58 "${WEBCORE_DIR}/Modules/webaudio" … … 205 206 Modules/permissions 206 207 Modules/speech 208 Modules/storage 207 209 Modules/streams 208 210 Modules/webaudio … … 492 494 Modules/speech/SpeechSynthesisUtterance.idl 493 495 Modules/speech/SpeechSynthesisVoice.idl 496 497 Modules/storage/StorageManager.idl 494 498 495 499 Modules/streams/ByteLengthQueuingStrategy.idl … … 1073 1077 page/NavigatorServiceWorker.idl 1074 1078 page/NavigatorShare.idl 1079 page/NavigatorStorage.idl 1075 1080 page/Performance+NavigationTiming.idl 1076 1081 page/Performance+PerformanceTimeline.idl -
trunk/Source/WebCore/ChangeLog
r282129 r282130 1 2021-09-07 Sihui Liu <sihui_liu@apple.com> 2 3 Add basic support for Storage API 4 https://bugs.webkit.org/show_bug.cgi?id=229925 5 6 Reviewed by Darin Adler. 7 8 Add bindings code and a feature flag for Storage API. 9 Spec: https://storage.spec.whatwg.org 10 11 Rebaselined existing tests. 12 13 * CMakeLists.txt: 14 * DerivedSources-input.xcfilelist: 15 * DerivedSources-output.xcfilelist: 16 * DerivedSources.make: 17 * Headers.cmake: 18 * Modules/storage/DummyStorageProvider.h: Added. 19 * Modules/storage/StorageConnection.h: Added. 20 * Modules/storage/StorageManager.cpp: Added. 21 (WebCore::StorageManager::create): 22 (WebCore::StorageManager::StorageManager): 23 (WebCore::clientOrigin): 24 (WebCore::StorageManager::persisted): 25 (WebCore::StorageManager::persist): 26 * Modules/storage/StorageManager.h: Added. 27 * Modules/storage/StorageManager.idl: Added. 28 * Modules/storage/StorageProvider.h: Added. 29 * Sources.txt: 30 * WebCore.xcodeproj/project.pbxproj: 31 * bindings/js/WebCoreBuiltinNames.h: 32 * dom/Document.cpp: 33 (WebCore::Document::storageConnection): 34 * dom/Document.h: 35 * dom/ScriptExecutionContext.h: 36 (WebCore::ScriptExecutionContext::storageConnection): 37 * loader/EmptyClients.cpp: 38 (WebCore::pageConfigurationWithEmptyClients): 39 * page/Navigator.idl: 40 * page/NavigatorBase.cpp: 41 * page/NavigatorBase.h: 42 * page/NavigatorStorage.idl: Added. 43 * page/Page.cpp: 44 (WebCore::m_storageProvider): 45 (WebCore::Page::storageConnection): 46 (WebCore::m_permissionController): Deleted. 47 * page/Page.h: 48 * page/PageConfiguration.cpp: 49 (WebCore::PageConfiguration::PageConfiguration): 50 * page/PageConfiguration.h: 51 1 52 2021-09-07 Antti Koivisto <antti@apple.com> 2 53 -
trunk/Source/WebCore/DerivedSources-input.xcfilelist
r282067 r282130 418 418 $(PROJECT_DIR)/Modules/speech/SpeechSynthesisUtterance.idl 419 419 $(PROJECT_DIR)/Modules/speech/SpeechSynthesisVoice.idl 420 $(PROJECT_DIR)/Modules/storage/StorageManager.idl 420 421 $(PROJECT_DIR)/Modules/streams/ByteLengthQueuingStrategy.idl 421 422 $(PROJECT_DIR)/Modules/streams/ByteLengthQueuingStrategy.js … … 1148 1149 $(PROJECT_DIR)/page/NavigatorServiceWorker.idl 1149 1150 $(PROJECT_DIR)/page/NavigatorShare.idl 1151 $(PROJECT_DIR)/page/NavigatorStorage.idl 1152 $(PROJECT_DIR)/page/NavigatorStorageManager.idl 1150 1153 $(PROJECT_DIR)/page/Performance+NavigationTiming.idl 1151 1154 $(PROJECT_DIR)/page/Performance+PerformanceTimeline.idl -
trunk/Source/WebCore/DerivedSources-output.xcfilelist
r282067 r282130 1428 1428 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorShare.cpp 1429 1429 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorShare.h 1430 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorStorage.cpp 1431 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorStorage.h 1430 1432 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorWebDriver.cpp 1431 1433 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSNavigatorWebDriver.h … … 2206 2208 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSStorageEvent.cpp 2207 2209 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSStorageEvent.h 2210 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSStorageManager.cpp 2211 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSStorageManager.h 2208 2212 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSStringCallback.cpp 2209 2213 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSStringCallback.h -
trunk/Source/WebCore/DerivedSources.make
r282067 r282130 368 368 $(WebCore)/Modules/streams/WritableStreamDefaultWriter.idl \ 369 369 $(WebCore)/Modules/streams/WritableStreamSink.idl \ 370 $(WebCore)/Modules/storage/StorageManager.idl \ 370 371 $(WebCore)/Modules/webaudio/AnalyserNode.idl \ 371 372 $(WebCore)/Modules/webaudio/AnalyserOptions.idl \ … … 996 997 $(WebCore)/page/NavigatorServiceWorker.idl \ 997 998 $(WebCore)/page/NavigatorShare.idl \ 999 $(WebCore)/page/NavigatorStorage.idl \ 998 1000 $(WebCore)/page/Performance+NavigationTiming.idl \ 999 1001 $(WebCore)/page/Performance+PerformanceTimeline.idl \ -
trunk/Source/WebCore/Headers.cmake
r282054 r282130 153 153 Modules/speech/SpeechRecognitionUpdate.h 154 154 Modules/speech/SpeechRecognizer.h 155 156 Modules/storage/DummyStorageProvider.h 157 Modules/storage/StorageConnection.h 158 Modules/storage/StorageManager.h 159 Modules/storage/StorageProvider.h 155 160 156 161 Modules/streams/ReadableStreamSink.h -
trunk/Source/WebCore/Sources.txt
r282067 r282130 229 229 Modules/speech/SpeechSynthesisUtterance.cpp 230 230 Modules/speech/SpeechSynthesisVoice.cpp 231 Modules/storage/StorageManager.cpp 231 232 Modules/streams/ReadableStreamSink.cpp 232 233 Modules/streams/ReadableStreamSource.cpp … … 3575 3576 JSStaticRange.cpp 3576 3577 JSStorage.cpp 3578 JSStorageManager.cpp 3577 3579 JSStorageEvent.cpp 3578 3580 JSStringCallback.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r282067 r282130 2776 2776 9307F1D80AF2D59000DBA31A /* HitTestResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 9307F1D60AF2D59000DBA31A /* HitTestResult.h */; settings = {ATTRIBUTES = (Private, ); }; }; 2777 2777 930841341CDDB15500B0958C /* JSDOMConvert.h in Headers */ = {isa = PBXBuildFile; fileRef = 930841331CDDB15500B0958C /* JSDOMConvert.h */; settings = {ATTRIBUTES = (Private, ); }; }; 2778 93085DB726E02AFE000EC6A7 /* StorageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DB526E006D0000EC6A7 /* StorageManager.h */; }; 2779 93085DBD26E18ED9000EC6A7 /* StorageConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DB926E14FBA000EC6A7 /* StorageConnection.h */; settings = {ATTRIBUTES = (Private, ); }; }; 2780 93085DBE26E18EE4000EC6A7 /* StorageProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DB826E14FBA000EC6A7 /* StorageProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; 2781 93085DF826E822C7000EC6A7 /* DummyStorageProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DF626E822C6000EC6A7 /* DummyStorageProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; 2778 2782 930908910AF7EDE40081DF01 /* HitTestRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 930908900AF7EDE40081DF01 /* HitTestRequest.h */; settings = {ATTRIBUTES = (Private, ); }; }; 2779 2783 930AAC9A250EB8490013DA9F /* CSSConditionRule.h in Headers */ = {isa = PBXBuildFile; fileRef = 930AAC98250EB8170013DA9F /* CSSConditionRule.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 11517 11521 9307F1D60AF2D59000DBA31A /* HitTestResult.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HitTestResult.h; sourceTree = "<group>"; }; 11518 11522 930841331CDDB15500B0958C /* JSDOMConvert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMConvert.h; sourceTree = "<group>"; }; 11523 93085DB126E000BD000EC6A7 /* NavigatorStorage.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = NavigatorStorage.idl; sourceTree = "<group>"; }; 11524 93085DB426E006CF000EC6A7 /* StorageManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StorageManager.cpp; sourceTree = "<group>"; }; 11525 93085DB526E006D0000EC6A7 /* StorageManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageManager.h; sourceTree = "<group>"; }; 11526 93085DB626E006D0000EC6A7 /* StorageManager.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = StorageManager.idl; sourceTree = "<group>"; }; 11527 93085DB826E14FBA000EC6A7 /* StorageProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageProvider.h; sourceTree = "<group>"; }; 11528 93085DB926E14FBA000EC6A7 /* StorageConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageConnection.h; sourceTree = "<group>"; }; 11529 93085DF626E822C6000EC6A7 /* DummyStorageProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DummyStorageProvider.h; sourceTree = "<group>"; }; 11519 11530 930908900AF7EDE40081DF01 /* HitTestRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HitTestRequest.h; sourceTree = "<group>"; }; 11520 11531 930AAC96250EB8170013DA9F /* CSSConditionRule.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CSSConditionRule.cpp; sourceTree = "<group>"; }; … … 22097 22108 5182C24B1F313AE00059BA7C /* NavigatorServiceWorker.idl */, 22098 22109 1DC553FD211BA12A004B780E /* NavigatorShare.idl */, 22110 93085DB126E000BD000EC6A7 /* NavigatorStorage.idl */, 22099 22111 00146288103CD1DE000B20DB /* OriginAccessEntry.cpp */, 22100 22112 00146289103CD1DE000B20DB /* OriginAccessEntry.h */, … … 23057 23069 ); 23058 23070 path = mac; 23071 sourceTree = "<group>"; 23072 }; 23073 93085DB326E0068E000EC6A7 /* storage */ = { 23074 isa = PBXGroup; 23075 children = ( 23076 93085DF626E822C6000EC6A7 /* DummyStorageProvider.h */, 23077 93085DB926E14FBA000EC6A7 /* StorageConnection.h */, 23078 93085DB426E006CF000EC6A7 /* StorageManager.cpp */, 23079 93085DB526E006D0000EC6A7 /* StorageManager.h */, 23080 93085DB626E006D0000EC6A7 /* StorageManager.idl */, 23081 93085DB826E14FBA000EC6A7 /* StorageProvider.h */, 23082 ); 23083 path = storage; 23059 23084 sourceTree = "<group>"; 23060 23085 }; … … 23896 23921 CDC312E022FCD0B0001204EC /* remoteplayback */, 23897 23922 AA2A5AB716A485A400975A25 /* speech */, 23923 93085DB326E0068E000EC6A7 /* storage */, 23898 23924 41A023EA1A39DB7900F722CF /* streams */, 23899 23925 FD315FA212B025B100C1A359 /* webaudio */, … … 31946 31972 510A91F624D32DDC00BFD89C /* Dualshock3HIDGamepad.h in Headers */, 31947 31973 93D6B7A82551D41F0058DD3A /* DummySpeechRecognitionProvider.h in Headers */, 31974 93085DF826E822C7000EC6A7 /* DummyStorageProvider.h in Headers */, 31948 31975 E1BA66F11742BD8600C20251 /* DynamicLinkerInterposing.h in Headers */, 31949 31976 FD6ED2C8136B8E66003CF072 /* DynamicsCompressor.h in Headers */, … … 34790 34817 51BE37E00DAEE00E001085FC /* StorageArea.h in Headers */, 34791 34818 BC4A533725605AE10028C592 /* StorageBlockingPolicy.h in Headers */, 34819 93085DBD26E18ED9000EC6A7 /* StorageConnection.h in Headers */, 34792 34820 51E0BABB0DA5547100A9E417 /* StorageEvent.h in Headers */, 34793 34821 C5EBDD84105EDDEC0056816F /* StorageEventDispatcher.h in Headers */, 34822 93085DB726E02AFE000EC6A7 /* StorageManager.h in Headers */, 34794 34823 51E0BB380DA5ACB600A9E417 /* StorageMap.h in Headers */, 34795 34824 C50D0E830FF4272900AC2644 /* StorageNamespace.h in Headers */, 34796 34825 1A37636C1A2E68BB009A7EE2 /* StorageNamespaceProvider.h in Headers */, 34826 93085DBE26E18EE4000EC6A7 /* StorageProvider.h in Headers */, 34797 34827 41DE7C7C222DA14300532B65 /* StorageQuotaManager.h in Headers */, 34798 34828 5C9EF2F321F06190003BDC56 /* StorageSessionProvider.h in Headers */, -
trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h
r282067 r282130 246 246 macro(StylePropertyMapReadOnly) \ 247 247 macro(StylePropertyMap) \ 248 macro(StorageManager) \ 248 249 macro(SubtleCrypto) \ 249 250 macro(TextDecoderStream) \ -
trunk/Source/WebCore/dom/Document.cpp
r282054 r282130 3560 3560 } 3561 3561 3562 RefPtr<StorageConnection> Document::storageConnection() 3563 { 3564 return page() ? &page()->storageConnection() : nullptr; 3565 } 3566 3562 3567 SocketProvider* Document::socketProvider() 3563 3568 { -
trunk/Source/WebCore/dom/Document.h
r282054 r282130 707 707 IDBClient::IDBConnectionProxy* idbConnectionProxy() final; 708 708 RefPtr<PermissionController> permissionController() final; 709 RefPtr<StorageConnection> storageConnection() final; 709 710 SocketProvider* socketProvider() final; 710 711 RefPtr<RTCDataChannelRemoteHandlerConnection> createRTCDataChannelRemoteHandlerConnection() final; -
trunk/Source/WebCore/dom/ScriptExecutionContext.h
r281832 r282130 38 38 #include "ServiceWorkerTypes.h" 39 39 #include "Settings.h" 40 #include "StorageConnection.h" 40 41 #include <JavaScriptCore/ConsoleTypes.h> 41 42 #include <JavaScriptCore/HandleTypes.h> … … 76 77 class RejectedPromiseTracker; 77 78 class ResourceRequest; 78 class SecurityOrigin;79 79 class SocketProvider; 80 80 enum class ReferrerPolicy : uint8_t; … … 119 119 virtual IDBClient::IDBConnectionProxy* idbConnectionProxy() = 0; 120 120 virtual RefPtr<PermissionController> permissionController() { return nullptr; } 121 virtual RefPtr<StorageConnection> storageConnection() { return nullptr; } 121 122 122 123 virtual SocketProvider* socketProvider() = 0; -
trunk/Source/WebCore/loader/EmptyClients.cpp
r282105 r282130 46 46 #include "DragClient.h" 47 47 #include "DummySpeechRecognitionProvider.h" 48 #include "DummyStorageProvider.h" 48 49 #include "EditorClient.h" 49 50 #include "EmptyFrameLoaderClient.h" … … 1196 1197 makeUniqueRef<EmptyMediaRecorderProvider>(), 1197 1198 EmptyBroadcastChannelRegistry::create(), 1198 DummyPermissionController::create() 1199 DummyPermissionController::create(), 1200 makeUniqueRef<DummyStorageProvider>() 1199 1201 }; 1200 1202 -
trunk/Source/WebCore/page/Navigator.idl
r267813 r282130 39 39 Navigator includes NavigatorServiceWorker; 40 40 Navigator includes NavigatorShare; 41 Navigator includes NavigatorStorage; -
trunk/Source/WebCore/page/NavigatorBase.cpp
r251477 r282130 31 31 #include "RuntimeEnabledFeatures.h" 32 32 #include "ServiceWorkerContainer.h" 33 #include "StorageManager.h" 33 34 #include <mutex> 34 35 #include <wtf/Language.h> … … 140 141 } 141 142 143 ExceptionOr<StorageManager&> NavigatorBase::storage() 144 { 145 if (!m_storageManager) 146 m_storageManager = StorageManager::create(*this); 147 148 return *m_storageManager; 149 } 150 142 151 #if ENABLE(SERVICE_WORKER) 143 152 ServiceWorkerContainer& NavigatorBase::serviceWorker() -
trunk/Source/WebCore/page/NavigatorBase.h
r251477 r282130 38 38 class ScriptExecutionContext; 39 39 class ServiceWorkerContainer; 40 class StorageManager; 40 41 41 42 class NavigatorBase : public RefCounted<NavigatorBase>, public ContextDestructionObserver, public CanMakeWeakPtr<NavigatorBase> { … … 59 60 static Vector<String> languages(); 60 61 62 ExceptionOr<StorageManager&> storage(); 63 61 64 protected: 62 65 explicit NavigatorBase(ScriptExecutionContext*); 66 67 private: 68 RefPtr<StorageManager> m_storageManager; 63 69 64 70 #if ENABLE(SERVICE_WORKER) -
trunk/Source/WebCore/page/Page.cpp
r281777 r282130 136 136 #include "StorageNamespace.h" 137 137 #include "StorageNamespaceProvider.h" 138 #include "StorageProvider.h" 138 139 #include "StyleAdjuster.h" 139 140 #include "StyleResolver.h" … … 328 329 , m_httpsUpgradeEnabled(pageConfiguration.httpsUpgradeEnabled) 329 330 , m_permissionController(WTFMove(pageConfiguration.permissionController)) 331 , m_storageProvider(WTFMove(pageConfiguration.storageProvider)) 330 332 { 331 333 updateTimerThrottlingState(); … … 3703 3705 } 3704 3706 3707 StorageConnection& Page::storageConnection() 3708 { 3709 return m_storageProvider->storageConnection(); 3710 } 3711 3705 3712 } // namespace WebCore -
trunk/Source/WebCore/page/Page.h
r281818 r282130 147 147 class Settings; 148 148 class SocketProvider; 149 class SpeechRecognitionProvider; 149 150 class SpeechSynthesisClient; 150 151 class StorageNamespace; 151 152 class StorageNamespaceProvider; 152 class S peechRecognitionProvider;153 class StorageProvider; 153 154 class UserContentProvider; 154 155 class UserContentURLPattern; … … 875 876 876 877 WEBCORE_EXPORT PermissionController& permissionController(); 878 WEBCORE_EXPORT StorageConnection& storageConnection(); 877 879 878 880 private: … … 1199 1201 1200 1202 Ref<PermissionController> m_permissionController; 1203 UniqueRef<StorageProvider> m_storageProvider; 1201 1204 1202 1205 #if ENABLE(IMAGE_ANALYSIS) -
trunk/Source/WebCore/page/PageConfiguration.cpp
r281837 r282130 48 48 #include "SpeechSynthesisClient.h" 49 49 #include "StorageNamespaceProvider.h" 50 #include "StorageProvider.h" 50 51 #include "UserContentController.h" 51 52 #include "UserContentURLPattern.h" … … 61 62 namespace WebCore { 62 63 63 PageConfiguration::PageConfiguration(PAL::SessionID sessionID, UniqueRef<EditorClient>&& editorClient, Ref<SocketProvider>&& socketProvider, UniqueRef<LibWebRTCProvider>&& libWebRTCProvider, Ref<CacheStorageProvider>&& cacheStorageProvider, Ref<UserContentProvider>&& userContentProvider, Ref<BackForwardClient>&& backForwardClient, Ref<CookieJar>&& cookieJar, UniqueRef<ProgressTrackerClient>&& progressTrackerClient, UniqueRef<FrameLoaderClient>&& loaderClientForMainFrame, UniqueRef<SpeechRecognitionProvider>&& speechRecognitionProvider, UniqueRef<MediaRecorderProvider>&& mediaRecorderProvider, Ref<BroadcastChannelRegistry>&& broadcastChannelRegistry, Ref<PermissionController>&& permissionController )64 PageConfiguration::PageConfiguration(PAL::SessionID sessionID, UniqueRef<EditorClient>&& editorClient, Ref<SocketProvider>&& socketProvider, UniqueRef<LibWebRTCProvider>&& libWebRTCProvider, Ref<CacheStorageProvider>&& cacheStorageProvider, Ref<UserContentProvider>&& userContentProvider, Ref<BackForwardClient>&& backForwardClient, Ref<CookieJar>&& cookieJar, UniqueRef<ProgressTrackerClient>&& progressTrackerClient, UniqueRef<FrameLoaderClient>&& loaderClientForMainFrame, UniqueRef<SpeechRecognitionProvider>&& speechRecognitionProvider, UniqueRef<MediaRecorderProvider>&& mediaRecorderProvider, Ref<BroadcastChannelRegistry>&& broadcastChannelRegistry, Ref<PermissionController>&& permissionController, UniqueRef<StorageProvider>&& storageProvider) 64 65 : sessionID(sessionID) 65 66 , editorClient(WTFMove(editorClient)) … … 76 77 , mediaRecorderProvider(WTFMove(mediaRecorderProvider)) 77 78 , permissionController(WTFMove(permissionController)) 79 , storageProvider(WTFMove(storageProvider)) 78 80 { 79 81 } -
trunk/Source/WebCore/page/PageConfiguration.h
r281818 r282130 66 66 class SpeechRecognitionProvider; 67 67 class StorageNamespaceProvider; 68 class StorageProvider; 68 69 class UserContentProvider; 69 70 class UserContentURLPattern; … … 76 77 WTF_MAKE_NONCOPYABLE(PageConfiguration); WTF_MAKE_FAST_ALLOCATED; 77 78 public: 78 WEBCORE_EXPORT PageConfiguration(PAL::SessionID, UniqueRef<EditorClient>&&, Ref<SocketProvider>&&, UniqueRef<LibWebRTCProvider>&&, Ref<CacheStorageProvider>&&, Ref<UserContentProvider>&&, Ref<BackForwardClient>&&, Ref<CookieJar>&&, UniqueRef<ProgressTrackerClient>&&, UniqueRef<FrameLoaderClient>&&, UniqueRef<SpeechRecognitionProvider>&&, UniqueRef<MediaRecorderProvider>&&, Ref<BroadcastChannelRegistry>&&, Ref<PermissionController>&& );79 WEBCORE_EXPORT PageConfiguration(PAL::SessionID, UniqueRef<EditorClient>&&, Ref<SocketProvider>&&, UniqueRef<LibWebRTCProvider>&&, Ref<CacheStorageProvider>&&, Ref<UserContentProvider>&&, Ref<BackForwardClient>&&, Ref<CookieJar>&&, UniqueRef<ProgressTrackerClient>&&, UniqueRef<FrameLoaderClient>&&, UniqueRef<SpeechRecognitionProvider>&&, UniqueRef<MediaRecorderProvider>&&, Ref<BroadcastChannelRegistry>&&, Ref<PermissionController>&&, UniqueRef<StorageProvider>&&); 79 80 WEBCORE_EXPORT ~PageConfiguration(); 80 81 PageConfiguration(PageConfiguration&&); … … 142 143 143 144 Ref<PermissionController> permissionController; 145 UniqueRef<StorageProvider> storageProvider; 144 146 }; 145 147 -
trunk/Source/WebKit/CMakeLists.txt
r281721 r282130 28 28 "${WEBKIT_DIR}/NetworkProcess/WebStorage" 29 29 "${WEBKIT_DIR}/NetworkProcess/cache" 30 "${WEBKIT_DIR}/NetworkProcess/storage" 30 31 "${WEBKIT_DIR}/NetworkProcess/watchos" 31 32 "${WEBKIT_DIR}/NetworkProcess/webrtc" … … 174 175 NetworkProcess/cache/CacheStorageEngineConnection 175 176 177 NetworkProcess/storage/NetworkStorageManager 178 176 179 NetworkProcess/webrtc/NetworkMDNSRegister 177 180 NetworkProcess/webrtc/NetworkRTCMonitor -
trunk/Source/WebKit/ChangeLog
r282121 r282130 1 2021-09-07 Sihui Liu <sihui_liu@apple.com> 2 3 Add basic support for Storage API 4 https://bugs.webkit.org/show_bug.cgi?id=229925 5 6 Reviewed by Darin Adler. 7 8 Set up basic infrastructure for StorageManager. 9 UI process sets the directory for StorageMananager with datastore configuration. 10 Network process manages storage with NetworkStorageManager (per Session). It has multiple OriginStorageManagers 11 for managing storage of different origins, and each OriginStorageManager has a default StorageBucket. 12 Web process can get and set persist property of each bucket by sending messages to network process. 13 14 * CMakeLists.txt: 15 * DerivedSources-input.xcfilelist: 16 * DerivedSources-output.xcfilelist: 17 * DerivedSources.make: 18 * NetworkProcess/NetworkProcess.cpp: 19 (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): 20 (WebKit::NetworkProcess::addWebsiteDataStore): 21 (WebKit::NetworkProcess::addStorageManagerForSession): 22 (WebKit::NetworkProcess::removeStorageManagerForSession): 23 (WebKit::NetworkProcess::destroySession): 24 (WebKit::NetworkProcess::connectionToWebProcessClosed): 25 * NetworkProcess/NetworkProcess.h: 26 * NetworkProcess/storage/NetworkStorageManager.cpp: Added. 27 (WebKit::NetworkStorageManager::create): 28 (WebKit::NetworkStorageManager::NetworkStorageManager): 29 (WebKit::NetworkStorageManager::startReceivingMessageFromConnection): 30 (WebKit::NetworkStorageManager::stopReceivingMessageFromConnection): 31 (WebKit::encode): 32 (WebKit::originPath): 33 (WebKit::NetworkStorageManager::localOriginStorageManager): 34 (WebKit::NetworkStorageManager::persisted): 35 (WebKit::NetworkStorageManager::persist): 36 * NetworkProcess/storage/NetworkStorageManager.h: Added. 37 (WebKit::NetworkStorageManager::sessionID const): 38 * NetworkProcess/storage/NetworkStorageManager.messages.in: Added. 39 * NetworkProcess/storage/OriginStorageManager.cpp: Added. 40 (WebKit::OriginStorageManager::StorageBucket::StorageBucket): 41 (WebKit::OriginStorageManager::StorageBucket::mode const): 42 (WebKit::OriginStorageManager::StorageBucket::setMode): 43 (WebKit::OriginStorageManager::OriginStorageManager): 44 (WebKit::OriginStorageManager::persist): 45 * NetworkProcess/storage/OriginStorageManager.h: Added. 46 (WebKit::OriginStorageManager::persisted const): 47 * Shared/WebsiteDataStoreParameters.cpp: 48 (WebKit::WebsiteDataStoreParameters::encode const): 49 (WebKit::WebsiteDataStoreParameters::decode): 50 * Shared/WebsiteDataStoreParameters.h: 51 * Sources.txt: 52 * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: 53 (WKWebsiteDataStoreConfigurationCopyGeneralStorageDirectory): 54 (WKWebsiteDataStoreConfigurationSetGeneralStorageDirectory): 55 * UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: 56 * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: 57 * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: 58 (-[_WKWebsiteDataStoreConfiguration generalStorageDirectory]): 59 (-[_WKWebsiteDataStoreConfiguration setGeneralStorageDirectory:]): 60 * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: 61 (WebKit::WebsiteDataStore::defaultGeneralStorageDirectory): 62 * UIProcess/WebsiteData/WebsiteDataStore.cpp: 63 (WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary): 64 (WebKit::WebsiteDataStore::parameters): 65 * UIProcess/WebsiteData/WebsiteDataStore.h: 66 (WebKit::WebsiteDataStore::generalStorageDirectory const): 67 * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: 68 (WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration): 69 (WebKit::WebsiteDataStoreConfiguration::copy const): 70 * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: 71 (WebKit::WebsiteDataStoreConfiguration::generalStorageDirectory const): 72 (WebKit::WebsiteDataStoreConfiguration::setGeneralStorageDirectory): 73 * UIProcess/WebsiteData/playstation/WebsiteDataStorePlayStation.cpp: 74 (WebKit::WebsiteDataStore::defaultGeneralStorageDirectory): 75 * UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp: 76 (WebKit::WebsiteDataStore::defaultGeneralStorageDirectory): 77 * UIProcess/glib/WebsiteDataStoreGLib.cpp: 78 (WebKit::WebsiteDataStore::defaultGeneralStorageDirectory): 79 * WebKit.xcodeproj/project.pbxproj: 80 * WebProcess/WebCoreSupport/WebStorageConnection.cpp: Added. 81 (WebKit::WebStorageConnection::create): 82 (WebKit::WebStorageConnection::persisted): 83 (WebKit::WebStorageConnection::persist): 84 (WebKit::WebStorageConnection::connection): 85 * WebProcess/WebCoreSupport/WebStorageConnection.h: Added. 86 * WebProcess/WebCoreSupport/WebStorageProvider.h: Added. 87 * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.h: 88 * WebProcess/WebPage/WebPage.cpp: 89 (WebKit::m_appHighlightsVisible): 90 1 91 2021-09-07 Alex Christensen <achristensen@webkit.org> 2 92 -
trunk/Source/WebKit/DerivedSources-input.xcfilelist
r279971 r282130 70 70 $(PROJECT_DIR)/NetworkProcess/cache/CacheStorageEngineConnection.messages.in 71 71 $(PROJECT_DIR)/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in 72 $(PROJECT_DIR)/NetworkProcess/storage/NetworkStorageManager.messages.in 72 73 $(PROJECT_DIR)/NetworkProcess/webrtc/NetworkMDNSRegister.messages.in 73 74 $(PROJECT_DIR)/NetworkProcess/webrtc/NetworkRTCMonitor.messages.in -
trunk/Source/WebKit/DerivedSources-output.xcfilelist
r279971 r282130 113 113 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/NetworkSocketStreamMessages.h 114 114 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/NetworkSocketStreamMessagesReplies.h 115 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/NetworkStorageManagerMessageReceiver.cpp 116 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/NetworkStorageManagerMessages.h 117 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/NetworkStorageManagerMessagesReplies.h 115 118 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/PlatformXRSystemMessageReceiver.cpp 116 119 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit2/PlatformXRSystemMessages.h -
trunk/Source/WebKit/DerivedSources.make
r279971 r282130 38 38 $(WebKit2)/NetworkProcess/ServiceWorker \ 39 39 $(WebKit2)/NetworkProcess/WebStorage \ 40 $(WebKit2)/NetworkProcess/storage \ 40 41 $(WebKit2)/PluginProcess \ 41 42 $(WebKit2)/PluginProcess/mac \ … … 138 139 NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy \ 139 140 NetworkProcess/Cookies/WebCookieManager \ 141 NetworkProcess/storage/NetworkStorageManager \ 140 142 Shared/Plugins/NPObjectMessageReceiver \ 141 143 Shared/AuxiliaryProcess \ -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
r282006 r282130 48 48 #include "NetworkSession.h" 49 49 #include "NetworkSessionCreationParameters.h" 50 #include "NetworkStorageManager.h" 50 51 #include "PreconnectTask.h" 51 52 #include "PrivateClickMeasurementStore.h" … … 401 402 m_storageManagerSet->addConnection(connection.connection()); 402 403 webIDBServer(sessionID).addConnection(connection.connection(), identifier); 404 if (auto manager = m_storageManagers.get(sessionID)) 405 manager->startReceivingMessageFromConnection(connection.connection()); 403 406 } 404 407 … … 416 419 auto sessionID = parameters.networkSessionParameters.sessionID; 417 420 421 addStorageManagerForSession(sessionID, parameters.generalStorageDirectory, parameters.generalStorageDirectoryHandle); 418 422 addSessionStorageQuotaManager(sessionID, parameters.perOriginStorageQuota, parameters.perThirdPartyOriginStorageQuota, parameters.cacheStorageDirectory, parameters.cacheStorageDirectoryExtensionHandle); 419 423 … … 446 450 ASSERT(m_sessionStorageQuotaManagers.contains(sessionID)); 447 451 m_sessionStorageQuotaManagers.remove(sessionID); 452 } 453 454 void NetworkProcess::addStorageManagerForSession(PAL::SessionID sessionID, const String& generalStoragePath, SandboxExtension::Handle& generalStoragePathHandle) 455 { 456 m_storageManagers.ensure(sessionID, [&] { 457 SandboxExtension::consumePermanently(generalStoragePathHandle); 458 return NetworkStorageManager::create(sessionID, generalStoragePath); 459 }); 460 } 461 462 void NetworkProcess::removeStorageManagerForSession(PAL::SessionID sessionID) 463 { 464 m_storageManagers.remove(sessionID); 448 465 } 449 466 … … 558 575 if (auto server = m_webIDBServers.take(sessionID)) 559 576 server->close(); 577 removeStorageManagerForSession(sessionID); 560 578 } 561 579 … … 2674 2692 if (auto* server = m_webIDBServers.get(sessionID)) 2675 2693 server->removeConnection(connection); 2694 2695 if (auto manager = m_storageManagers.get(sessionID)) 2696 manager->stopReceivingMessageFromConnection(connection); 2676 2697 } 2677 2698 -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
r282006 r282130 107 107 class NetworkProximityManager; 108 108 class NetworkResourceLoader; 109 class NetworkStorageManager; 109 110 class ProcessAssertion; 110 111 class StorageManagerSet; … … 538 539 void removeSessionStorageQuotaManager(PAL::SessionID); 539 540 541 void addStorageManagerForSession(PAL::SessionID, const String& path, SandboxExtension::Handle&); 542 void removeStorageManagerForSession(PAL::SessionID); 543 540 544 // Connections to WebProcesses. 541 545 HashMap<WebCore::ProcessIdentifier, Ref<NetworkConnectionToWebProcess>> m_webProcessConnections; … … 610 614 bool m_privateClickMeasurementEnabled { true }; 611 615 bool m_privateClickMeasurementDebugModeEnabled { false }; 616 617 HashMap<PAL::SessionID, Ref<NetworkStorageManager>> m_storageManagers; 612 618 }; 613 619 -
trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp
r278253 r282130 48 48 49 49 encoder << localStorageDirectory << localStorageDirectoryExtensionHandle; 50 51 50 encoder << cacheStorageDirectory << cacheStorageDirectoryExtensionHandle; 51 encoder << generalStorageDirectory << generalStorageDirectoryHandle; 52 52 53 53 encoder << perOriginStorageQuota; … … 133 133 parameters.cacheStorageDirectoryExtensionHandle = WTFMove(*cacheStorageDirectoryExtensionHandle); 134 134 135 std::optional<String> generalStorageDirectory; 136 decoder >> generalStorageDirectory; 137 if (!generalStorageDirectory) 138 return std::nullopt; 139 parameters.generalStorageDirectory = WTFMove(*generalStorageDirectory); 140 141 std::optional<SandboxExtension::Handle> generalStorageDirectoryHandle; 142 decoder >> generalStorageDirectoryHandle; 143 if (!generalStorageDirectoryHandle) 144 return std::nullopt; 145 parameters.generalStorageDirectoryHandle = WTFMove(*generalStorageDirectoryHandle); 146 135 147 std::optional<uint64_t> perOriginStorageQuota; 136 148 decoder >> perOriginStorageQuota; -
trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h
r278253 r282130 69 69 SandboxExtension::Handle cacheStorageDirectoryExtensionHandle; 70 70 71 String generalStorageDirectory; 72 SandboxExtension::Handle generalStorageDirectoryHandle; 73 71 74 uint64_t perOriginStorageQuota { WebCore::StorageQuotaManager::defaultQuota() }; 72 75 uint64_t perThirdPartyOriginStorageQuota { WebCore::StorageQuotaManager::defaultThirdPartyQuota() }; -
trunk/Source/WebKit/Sources.txt
r282054 r282130 110 110 NetworkProcess/ServiceWorker/WebSWServerConnection.cpp @no-unify 111 111 NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp @no-unify 112 113 NetworkProcess/storage/NetworkStorageManager.cpp 114 NetworkProcess/storage/OriginStorageManager.cpp 112 115 113 116 NetworkProcess/WebStorage/LocalStorageDatabase.cpp … … 711 714 WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp 712 715 WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp 716 WebProcess/WebCoreSupport/WebStorageConnection.cpp 713 717 714 718 WebProcess/WebPage/DrawingArea.cpp -
trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp
r254342 r282130 101 101 } 102 102 103 WKStringRef WKWebsiteDataStoreConfigurationCopyGeneralStorageDirectory(WKWebsiteDataStoreConfigurationRef configuration) 104 { 105 return WebKit::toCopiedAPI(WebKit::toImpl(configuration)->generalStorageDirectory()); 106 } 107 108 void WKWebsiteDataStoreConfigurationSetGeneralStorageDirectory(WKWebsiteDataStoreConfigurationRef configuration, WKStringRef directory) 109 { 110 WebKit::toImpl(configuration)->setGeneralStorageDirectory(WebKit::toImpl(directory)->string()); 111 } 112 103 113 WKStringRef WKWebsiteDataStoreConfigurationCopyMediaKeysStorageDirectory(WKWebsiteDataStoreConfigurationRef configuration) 104 114 { -
trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h
r254342 r282130 55 55 WK_EXPORT void WKWebsiteDataStoreConfigurationSetCacheStorageDirectory(WKWebsiteDataStoreConfigurationRef configuration, WKStringRef directory); 56 56 57 WK_EXPORT WKStringRef WKWebsiteDataStoreConfigurationCopyGeneralStorageDirectory(WKWebsiteDataStoreConfigurationRef configuration); 58 WK_EXPORT void WKWebsiteDataStoreConfigurationSetGeneralStorageDirectory(WKWebsiteDataStoreConfigurationRef configuration, WKStringRef directory); 59 57 60 WK_EXPORT WKStringRef WKWebsiteDataStoreConfigurationCopyMediaKeysStorageDirectory(WKWebsiteDataStoreConfigurationRef configuration); 58 61 WK_EXPORT void WKWebsiteDataStoreConfigurationSetMediaKeysStorageDirectory(WKWebsiteDataStoreConfigurationRef configuration, WKStringRef directory); -
trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h
r281721 r282130 79 79 80 80 @property (nonatomic, nullable, copy) NSURL *alternativeServicesStorageDirectory WK_API_AVAILABLE(macos(11.0), ios(14.0)); 81 82 81 @property (nonatomic, nullable, copy) NSURL *standaloneApplicationURL WK_API_AVAILABLE(macos(11.0), ios(14.0)); 82 @property (nonatomic, nullable, copy) NSURL *storageDirectory WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 83 83 84 84 // Testing only. -
trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm
r281721 r282130 336 336 } 337 337 338 - (NSURL *)generalStorageDirectory 339 { 340 auto& directory = _configuration->generalStorageDirectory(); 341 if (directory.isNull()) 342 return nil; 343 return [NSURL fileURLWithPath:directory isDirectory:YES]; 344 } 345 346 - (void)setGeneralStorageDirectory:(NSURL *)url 347 { 348 if (!_configuration->isPersistent()) 349 [NSException raise:NSInvalidArgumentException format:@"Cannot set storageDirectory on a non-persistent _WKWebsiteDataStoreConfiguration."]; 350 checkURLArgument(url); 351 _configuration->setGeneralStorageDirectory(url.path); 352 } 353 338 354 - (BOOL)deviceManagementRestrictionsEnabled 339 355 { -
trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
r281032 r282130 272 272 } 273 273 274 String WebsiteDataStore::defaultGeneralStorageDirectory() 275 { 276 return cacheDirectoryFileSystemRepresentation("Storage"); 277 } 278 274 279 WTF::String WebsiteDataStore::defaultNetworkCacheDirectory() 275 280 { -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
r282034 r282130 272 272 if (!m_configuration->hstsStorageDirectory().isEmpty() && m_resolvedConfiguration->hstsStorageDirectory().isEmpty()) 273 273 m_resolvedConfiguration->setHSTSStorageDirectory(resolvePathForSandboxExtension(m_configuration->hstsStorageDirectory())); 274 if (!m_configuration->generalStorageDirectory().isEmpty()) 275 m_resolvedConfiguration->setGeneralStorageDirectory(resolveAndCreateReadWriteDirectoryForSandboxExtension(m_configuration->generalStorageDirectory())); 274 276 #if HAVE(ARKIT_INLINE_PREVIEW) 275 277 if (!m_configuration->modelElementCacheDirectory().isEmpty()) … … 2088 2090 } 2089 2091 2092 if (auto directory = generalStorageDirectory(); !directory.isEmpty()) { 2093 parameters.generalStorageDirectory = directory; 2094 if (auto handle = SandboxExtension::createHandleForReadWriteDirectory(directory)) 2095 parameters.generalStorageDirectoryHandle = WTFMove(*handle); 2096 } 2097 2090 2098 parameters.perOriginStorageQuota = perOriginStorageQuota(); 2091 2099 parameters.perThirdPartyOriginStorageQuota = perThirdPartyOriginStorageQuota(); -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
r282034 r282130 159 159 uint64_t perThirdPartyOriginStorageQuota() const; 160 160 const String& cacheStorageDirectory() const { return m_resolvedConfiguration->cacheStorageDirectory(); } 161 const String& generalStorageDirectory() const { return m_resolvedConfiguration->generalStorageDirectory(); } 161 162 162 163 #if ENABLE(RESOURCE_LOAD_STATISTICS) … … 344 345 static WTF::String defaultIndexedDBDatabaseDirectory(); 345 346 static WTF::String defaultCacheStorageDirectory(); 347 static WTF::String defaultGeneralStorageDirectory(); 346 348 static WTF::String defaultMediaCacheDirectory(); 347 349 static WTF::String defaultMediaKeysStorageDirectory(); -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
r281721 r282130 37 37 setApplicationCacheDirectory(WebsiteDataStore::defaultApplicationCacheDirectory()); 38 38 setCacheStorageDirectory(WebsiteDataStore::defaultCacheStorageDirectory()); 39 setGeneralStorageDirectory(WebsiteDataStore::defaultGeneralStorageDirectory()); 39 40 setNetworkCacheDirectory(WebsiteDataStore::defaultNetworkCacheDirectory()); 40 41 setAlternativeServicesDirectory(WebsiteDataStore::defaultAlternativeServicesDirectory()); … … 63 64 copy->m_staleWhileRevalidateEnabled = this->m_staleWhileRevalidateEnabled; 64 65 copy->m_cacheStorageDirectory = this->m_cacheStorageDirectory; 66 copy->m_generalStorageDirectory = this->m_generalStorageDirectory; 65 67 copy->m_perOriginStorageQuota = this->m_perOriginStorageQuota; 66 68 copy->m_networkCacheDirectory = this->m_networkCacheDirectory; -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h
r281721 r282130 126 126 const String& cacheStorageDirectory() const { return m_cacheStorageDirectory; } 127 127 void setCacheStorageDirectory(String&& directory) { m_cacheStorageDirectory = WTFMove(directory); } 128 128 129 const String& generalStorageDirectory() const { return m_generalStorageDirectory; } 130 void setGeneralStorageDirectory(String&& directory) { m_generalStorageDirectory = WTFMove(directory); } 131 129 132 const String& applicationCacheFlatFileSubdirectoryName() const { return m_applicationCacheFlatFileSubdirectoryName; } 130 133 void setApplicationCacheFlatFileSubdirectoryName(String&& directory) { m_applicationCacheFlatFileSubdirectoryName = WTFMove(directory); } … … 182 185 183 186 String m_cacheStorageDirectory; 187 String m_generalStorageDirectory; 184 188 uint64_t m_perOriginStorageQuota { WebCore::StorageQuotaManager::defaultQuota() }; 185 189 String m_networkCacheDirectory; -
trunk/Source/WebKit/UIProcess/WebsiteData/playstation/WebsiteDataStorePlayStation.cpp
r263441 r282130 57 57 } 58 58 59 String WebsiteDataStore::defaultGeneralStorageDirectory() 60 { 61 return { }; 62 } 63 59 64 String WebsiteDataStore::defaultNetworkCacheDirectory() 60 65 { -
trunk/Source/WebKit/UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp
r263441 r282130 57 57 } 58 58 59 String WebsiteDataStore::defaultGeneralStorageDirectory() 60 { 61 return FileSystem::pathByAppendingComponent(FileSystem::localUserSpecificStorageDirectory(), "Storage"); 62 } 63 59 64 String WebsiteDataStore::defaultNetworkCacheDirectory() 60 65 { -
trunk/Source/WebKit/UIProcess/glib/WebsiteDataStoreGLib.cpp
r273131 r282130 53 53 { 54 54 return cacheDirectoryFileSystemRepresentation(FileSystem::pathByAppendingComponent(FileSystem::stringFromFileSystemRepresentation(g_get_prgname()), "CacheStorage")); 55 } 56 57 WTF::String WebsiteDataStore::defaultGeneralStorageDirectory() 58 { 59 return websiteDataDirectoryFileSystemRepresentation(BASE_DIRECTORY G_DIR_SEPARATOR_S "storage"); 55 60 } 56 61 -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r282110 r282130 1462 1462 9197940A23DBC4E000257892 /* APIInspectorClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 9197940923DBC4E000257892 /* APIInspectorClient.h */; }; 1463 1463 9197940C23DBC50300257892 /* _WKInspectorDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9197940B23DBC50300257892 /* _WKInspectorDelegate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1464 93085DBF26E192F9000EC6A7 /* WebStorageProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DBA26E152C2000EC6A7 /* WebStorageProvider.h */; }; 1465 93085DC026E19313000EC6A7 /* WebStorageConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DBB26E172F9000EC6A7 /* WebStorageConnection.h */; }; 1466 93085DCA26E29775000EC6A7 /* OriginStorageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DC626E1C6CF000EC6A7 /* OriginStorageManager.h */; }; 1467 93085DD026E2F100000EC6A7 /* WebSpeechRecognitionConnectionMessagesReplies.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D6B77E254CCABB0058DD3A /* WebSpeechRecognitionConnectionMessagesReplies.h */; }; 1468 93085DD226E2F58D000EC6A7 /* NetworkStorageManagerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93085DCC26E2E902000EC6A7 /* NetworkStorageManagerMessageReceiver.cpp */; }; 1469 93085DDF26E5BCF1000EC6A7 /* NetworkStorageManagerMessagesReplies.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DCE26E2E902000EC6A7 /* NetworkStorageManagerMessagesReplies.h */; }; 1470 93085DE026E5BCFD000EC6A7 /* NetworkStorageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DC426E1BBBD000EC6A7 /* NetworkStorageManager.h */; }; 1471 93085DE126E5BD13000EC6A7 /* NetworkStorageManagerMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 93085DCD26E2E902000EC6A7 /* NetworkStorageManagerMessages.h */; }; 1464 1472 9321D5861A38EE3C008052BE /* WKImmediateActionController.h in Headers */ = {isa = PBXBuildFile; fileRef = 9321D5851A38EE3C008052BE /* WKImmediateActionController.h */; }; 1465 1473 9321D58A1A38F196008052BE /* WKImmediateActionTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9321D5891A38F196008052BE /* WKImmediateActionTypes.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 1509 1517 93D6B785254CCD430058DD3A /* SpeechRecognitionServerMessagesReplies.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D6B77F254CCABB0058DD3A /* SpeechRecognitionServerMessagesReplies.h */; }; 1510 1518 93D6B787254CCD8C0058DD3A /* WebSpeechRecognitionConnectionMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D6B786254CCD8B0058DD3A /* WebSpeechRecognitionConnectionMessages.h */; }; 1511 93D6B788254CCD940058DD3A /* WebSpeechRecognitionConnectionMessagesReplies.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D6B77E254CCABB0058DD3A /* WebSpeechRecognitionConnectionMessagesReplies.h */; };1512 1519 93D6B78A254CD43E0058DD3A /* WebSpeechRecognitionConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93D6B77D254CCABB0058DD3A /* WebSpeechRecognitionConnectionMessageReceiver.cpp */; }; 1513 1520 93D6B7B4255268D50058DD3A /* SpeechRecognitionPermissionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D6B7AF255268A10058DD3A /* SpeechRecognitionPermissionRequest.h */; }; … … 4871 4878 9197940923DBC4E000257892 /* APIInspectorClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIInspectorClient.h; sourceTree = "<group>"; }; 4872 4879 9197940B23DBC50300257892 /* _WKInspectorDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKInspectorDelegate.h; sourceTree = "<group>"; }; 4880 93085DBA26E152C2000EC6A7 /* WebStorageProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebStorageProvider.h; sourceTree = "<group>"; }; 4881 93085DBB26E172F9000EC6A7 /* WebStorageConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebStorageConnection.h; sourceTree = "<group>"; }; 4882 93085DBC26E174ED000EC6A7 /* WebStorageConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebStorageConnection.cpp; sourceTree = "<group>"; }; 4883 93085DC326E1BBBD000EC6A7 /* NetworkStorageManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkStorageManager.cpp; sourceTree = "<group>"; }; 4884 93085DC426E1BBBD000EC6A7 /* NetworkStorageManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkStorageManager.h; sourceTree = "<group>"; }; 4885 93085DC526E1C6CF000EC6A7 /* OriginStorageManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OriginStorageManager.cpp; sourceTree = "<group>"; }; 4886 93085DC626E1C6CF000EC6A7 /* OriginStorageManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OriginStorageManager.h; sourceTree = "<group>"; }; 4887 93085DC726E1C6EE000EC6A7 /* NetworkStorageManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NetworkStorageManager.messages.in; sourceTree = "<group>"; }; 4888 93085DCC26E2E902000EC6A7 /* NetworkStorageManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkStorageManagerMessageReceiver.cpp; sourceTree = "<group>"; }; 4889 93085DCD26E2E902000EC6A7 /* NetworkStorageManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkStorageManagerMessages.h; sourceTree = "<group>"; }; 4890 93085DCE26E2E902000EC6A7 /* NetworkStorageManagerMessagesReplies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkStorageManagerMessagesReplies.h; sourceTree = "<group>"; }; 4873 4891 9321D5851A38EE3C008052BE /* WKImmediateActionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKImmediateActionController.h; sourceTree = "<group>"; }; 4874 4892 9321D5871A38EE74008052BE /* WKImmediateActionController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKImmediateActionController.mm; sourceTree = "<group>"; }; … … 4929 4947 93AB9B53257589120098B10E /* SpeechRecognitionRemoteRealtimeMediaSourceManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpeechRecognitionRemoteRealtimeMediaSourceManagerMessages.h; sourceTree = "<group>"; }; 4930 4948 93AB9B54257589120098B10E /* SpeechRecognitionRealtimeMediaSourceManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpeechRecognitionRealtimeMediaSourceManagerMessages.h; sourceTree = "<group>"; }; 4931 93B0A66D26D4515000AA21E4 /* PermissionManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PermissionManager.cpp; sourceTree = "<group>"; };4932 93B0A66E26D4515000AA21E4 /* PermissionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PermissionManager.h; sourceTree = "<group>"; };4933 4949 93B0A67326D5A72E00AA21E4 /* WebPermissionController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebPermissionController.cpp; sourceTree = "<group>"; }; 4934 4950 93B0A67426D5A72E00AA21E4 /* WebPermissionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPermissionController.h; sourceTree = "<group>"; }; … … 8695 8711 5C01BC3526D46AD400FEB42F /* PrivateClickMeasurement */, 8696 8712 93BA04D92151ADCD007F455F /* ServiceWorker */, 8713 93085DC226E1BB65000EC6A7 /* storage */, 8697 8714 413075971DE84ED70039EC69 /* webrtc */, 8698 8715 93B26143227D143100B97A76 /* WebStorage */, … … 9633 9650 sourceTree = "<group>"; 9634 9651 }; 9652 93085DC226E1BB65000EC6A7 /* storage */ = { 9653 isa = PBXGroup; 9654 children = ( 9655 93085DC326E1BBBD000EC6A7 /* NetworkStorageManager.cpp */, 9656 93085DC426E1BBBD000EC6A7 /* NetworkStorageManager.h */, 9657 93085DC726E1C6EE000EC6A7 /* NetworkStorageManager.messages.in */, 9658 93085DC526E1C6CF000EC6A7 /* OriginStorageManager.cpp */, 9659 93085DC626E1C6CF000EC6A7 /* OriginStorageManager.h */, 9660 ); 9661 path = storage; 9662 sourceTree = "<group>"; 9663 }; 9635 9664 939288E021404DF000EBBA33 /* IndexedDB */ = { 9636 9665 isa = PBXGroup; … … 9666 9695 ); 9667 9696 path = Speech; 9668 sourceTree = "<group>";9669 };9670 93B0A66C26D4511F00AA21E4 /* Permission */ = {9671 isa = PBXGroup;9672 children = (9673 93B0A66D26D4515000AA21E4 /* PermissionManager.cpp */,9674 93B0A66E26D4515000AA21E4 /* PermissionManager.h */,9675 );9676 path = Permission;9677 9697 sourceTree = "<group>"; 9678 9698 }; … … 9917 9937 5105B0D2162F7A5E00E27709 /* Network */, 9918 9938 31099974146C8AA80029DEB9 /* Notifications (User) */, 9919 93B0A66C26D4511F00AA21E4 /* Permission */,9920 9939 1A6FB7AA11E64B4900DB1371 /* Plugins */, 9921 9940 93AB9B482574C5CE0098B10E /* Speech */, … … 10007 10026 C149380222341C60000CD707 /* WebSpeechSynthesisClient.h */, 10008 10027 C149380A223853BE000CD707 /* WebSpeechSynthesisVoice.h */, 10028 93085DBC26E174ED000EC6A7 /* WebStorageConnection.cpp */, 10029 93085DBB26E172F9000EC6A7 /* WebStorageConnection.h */, 10030 93085DBA26E152C2000EC6A7 /* WebStorageProvider.h */, 10009 10031 4A410F4819AF7B80002EBAB5 /* WebUserMediaClient.cpp */, 10010 10032 4A410F4919AF7B80002EBAB5 /* WebUserMediaClient.h */, … … 11222 11244 5C0B17741E7C879C00E9123C /* NetworkSocketStreamMessageReceiver.cpp */, 11223 11245 5C0B17751E7C879C00E9123C /* NetworkSocketStreamMessages.h */, 11246 93085DCC26E2E902000EC6A7 /* NetworkStorageManagerMessageReceiver.cpp */, 11247 93085DCD26E2E902000EC6A7 /* NetworkStorageManagerMessages.h */, 11248 93085DCE26E2E902000EC6A7 /* NetworkStorageManagerMessagesReplies.h */, 11224 11249 1A2D8437127F65D5001EB962 /* NPObjectMessageReceiverMessageReceiver.cpp */, 11225 11250 1A2D8438127F65D5001EB962 /* NPObjectMessageReceiverMessages.h */, … … 12285 12310 532159551DBAE7290054AA3C /* NetworkSessionCocoa.h in Headers */, 12286 12311 417915B92257046F00D6F97E /* NetworkSocketChannel.h in Headers */, 12312 93085DE026E5BCFD000EC6A7 /* NetworkStorageManager.h in Headers */, 12313 93085DE126E5BD13000EC6A7 /* NetworkStorageManagerMessages.h in Headers */, 12314 93085DDF26E5BCF1000EC6A7 /* NetworkStorageManagerMessagesReplies.h in Headers */, 12287 12315 570DAAC22303730300E8FC04 /* NfcConnection.h in Headers */, 12288 12316 570DAAAE23026F5C00E8FC04 /* NfcService.h in Headers */, … … 12303 12331 41DD72AB2682167300A90C71 /* NWParametersSPI.h in Headers */, 12304 12332 BC8ACA1316670D89004C1941 /* ObjCObjectGraph.h in Headers */, 12333 93085DCA26E29775000EC6A7 /* OriginStorageManager.h in Headers */, 12305 12334 F4EB4AFD269CD7F300D297AE /* OSStateSPI.h in Headers */, 12306 12335 7CF47FFB17275C57008ACB91 /* PageBanner.h in Headers */, … … 12768 12797 93D6B773254BB8C70058DD3A /* WebSpeechRecognitionConnection.h in Headers */, 12769 12798 93D6B787254CCD8C0058DD3A /* WebSpeechRecognitionConnectionMessages.h in Headers */, 12770 93 D6B788254CCD940058DD3A/* WebSpeechRecognitionConnectionMessagesReplies.h in Headers */,12799 93085DD026E2F100000EC6A7 /* WebSpeechRecognitionConnectionMessagesReplies.h in Headers */, 12771 12800 C149380922347104000CD707 /* WebSpeechSynthesisClient.h in Headers */, 12772 12801 836034A01ACB34D600626549 /* WebSQLiteDatabaseTracker.h in Headers */, 12802 93085DC026E19313000EC6A7 /* WebStorageConnection.h in Headers */, 12773 12803 1A52C0F81A38CDC70016160A /* WebStorageNamespaceProvider.h in Headers */, 12804 93085DBF26E192F9000EC6A7 /* WebStorageProvider.h in Headers */, 12774 12805 9356F2DC2152B6B500E6D5DF /* WebSWClientConnection.h in Headers */, 12775 12806 517A53101F47A86200DCDC0A /* WebSWClientConnectionMessages.h in Headers */, … … 14314 14345 31F060E11654318500F3281C /* NetworkSocketChannelMessageReceiver.cpp in Sources */, 14315 14346 5C0B17781E7C880E00E9123C /* NetworkSocketStreamMessageReceiver.cpp in Sources */, 14347 93085DD226E2F58D000EC6A7 /* NetworkStorageManagerMessageReceiver.cpp in Sources */, 14316 14348 2D92A790212B6AD400F493FD /* NPIdentifierData.cpp in Sources */, 14317 14349 2D913446212CF9F000128AFD /* NPJSObject.cpp in Sources */, -
trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.h
r276562 r282130 44 44 void populateCreationProperties(RemoteLayerTreeTransaction::LayerCreationProperties&, const RemoteLayerTreeContext&, WebCore::PlatformCALayer::LayerType) override; 45 45 46 void dumpAdditionalProperties(TextStream&, OptionSet< PlatformLayerTreeAsTextFlags>) final;46 void dumpAdditionalProperties(TextStream&, OptionSet<WebCore::PlatformLayerTreeAsTextFlags>) final; 47 47 48 Ref< Model> m_model;48 Ref<WebCore::Model> m_model; 49 49 }; 50 50 -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r282090 r282130 137 137 #include "WebSpeechSynthesisClient.h" 138 138 #include "WebStorageNamespaceProvider.h" 139 #include "WebStorageProvider.h" 139 140 #include "WebTouchEvent.h" 140 141 #include "WebURLSchemeHandlerProxy.h" … … 567 568 makeUniqueRef<MediaRecorderProvider>(*this), 568 569 WebProcess::singleton().broadcastChannelRegistry(), 569 WebPermissionController::create(*this) 570 WebPermissionController::create(*this), 571 makeUniqueRef<WebStorageProvider>() 570 572 ); 571 573 pageConfiguration.chromeClient = new WebChromeClient(*this); -
trunk/Source/WebKitLegacy/mac/ChangeLog
r281832 r282130 1 2021-09-07 Sihui Liu <sihui_liu@apple.com> 2 3 Add basic support for Storage API 4 https://bugs.webkit.org/show_bug.cgi?id=229925 5 6 Reviewed by Darin Adler. 7 8 * WebView/WebView.mm: 9 (-[WebView _commonInitializationWithFrameName:groupName:]): 10 (-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]): 11 1 12 2021-08-31 Chris Dumez <cdumez@apple.com> 2 13 -
trunk/Source/WebKitLegacy/mac/WebView/WebView.mm
r281818 r282130 152 152 #import <WebCore/DragItem.h> 153 153 #import <WebCore/DummySpeechRecognitionProvider.h> 154 #import <WebCore/DummyStorageProvider.h> 154 155 #import <WebCore/Editing.h> 155 156 #import <WebCore/Editor.h> … … 1539 1540 makeUniqueRef<WebCore::MediaRecorderProvider>(), 1540 1541 WebBroadcastChannelRegistry::getOrCreate([[self preferences] privateBrowsingEnabled]), 1541 WebCore::DummyPermissionController::create() 1542 WebCore::DummyPermissionController::create(), 1543 makeUniqueRef<WebCore::DummyStorageProvider>() 1542 1544 ); 1543 1545 #if !PLATFORM(IOS_FAMILY) … … 1818 1820 makeUniqueRef<WebCore::MediaRecorderProvider>(), 1819 1821 WebBroadcastChannelRegistry::getOrCreate([[self preferences] privateBrowsingEnabled]), 1820 WebCore::DummyPermissionController::create() 1822 WebCore::DummyPermissionController::create(), 1823 makeUniqueRef<WebCore::DummyStorageProvider>() 1821 1824 ); 1822 1825 pageConfiguration.chromeClient = new WebChromeClientIOS(self); -
trunk/Source/WebKitLegacy/win/ChangeLog
r281832 r282130 1 2021-09-07 Sihui Liu <sihui_liu@apple.com> 2 3 Add basic support for Storage API 4 https://bugs.webkit.org/show_bug.cgi?id=229925 5 6 Reviewed by Darin Adler. 7 8 * WebView.cpp: 9 (WebView::initWithFrame): 10 1 11 2021-08-31 Chris Dumez <cdumez@apple.com> 2 12 -
trunk/Source/WebKitLegacy/win/WebView.cpp
r281818 r282130 97 97 #include <WebCore/DragData.h> 98 98 #include <WebCore/DummySpeechRecognitionProvider.h> 99 #include <WebCore/DummyStorageProvider.h> 99 100 #include <WebCore/Editor.h> 100 101 #include <WebCore/EventHandler.h> … … 3136 3137 makeUniqueRef<MediaRecorderProvider>(), 3137 3138 WebBroadcastChannelRegistry::getOrCreate(false), 3138 WebCore::DummyPermissionController::create() 3139 WebCore::DummyPermissionController::create(), 3140 makeUniqueRef<WebCore::DummyStorageProvider>() 3139 3141 ); 3140 3142 configuration.chromeClient = new WebChromeClient(this);
Note: See TracChangeset
for help on using the changeset viewer.