From 7a262d5046ad3f6f7446ba3801ee2d55169ee6f9 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Wed, 23 Oct 2024 11:54:40 +0200 Subject: [PATCH 1/3] Add more keys to OPFS --- features/origin-private-file-system.yml | 36 +++++++++++++++ features/origin-private-file-system.yml.dist | 48 ++++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/features/origin-private-file-system.yml b/features/origin-private-file-system.yml index a24cfb41a21..73e387099e2 100644 --- a/features/origin-private-file-system.yml +++ b/features/origin-private-file-system.yml @@ -2,3 +2,39 @@ name: Origin private file system description: The `navigator.storage.getDirectory()` method returns a `FileSystemDirectoryHandle` that is restricted to a specific origin and invisible to the user's actual file system for faster file-based applications, such as SQLite databases. spec: https://fs.spec.whatwg.org/#origin-private-file-system group: file-system +status: + compute_from: api.FileSystemFileHandle.createSyncAccessHandle +compat_features: + - api.FileSystemDirectoryHandle + - api.FileSystemDirectoryHandle.@@asyncIterator + - api.FileSystemDirectoryHandle.entries + - api.FileSystemDirectoryHandle.getDirectoryHandle + - api.FileSystemDirectoryHandle.getFileHandle + - api.FileSystemDirectoryHandle.keys + - api.FileSystemDirectoryHandle.removeEntry + - api.FileSystemDirectoryHandle.resolve + - api.FileSystemDirectoryHandle.values + - api.FileSystemFileHandle + - api.FileSystemFileHandle.createSyncAccessHandle + - api.FileSystemFileHandle.createWritable + - api.FileSystemFileHandle.getFile + - api.FileSystemHandle + - api.FileSystemHandle.isSameEntry + - api.FileSystemHandle.kind + - api.FileSystemHandle.name + - api.FileSystemSyncAccessHandle + - api.FileSystemSyncAccessHandle.close + - api.FileSystemSyncAccessHandle.close.sync_version + - api.FileSystemSyncAccessHandle.flush + - api.FileSystemSyncAccessHandle.flush.sync_version + - api.FileSystemSyncAccessHandle.getSize + - api.FileSystemSyncAccessHandle.getSize.sync_version + - api.FileSystemSyncAccessHandle.read + - api.FileSystemSyncAccessHandle.truncate + - api.FileSystemSyncAccessHandle.truncate.sync_version + - api.FileSystemSyncAccessHandle.write + - api.FileSystemWritableFileStream + - api.FileSystemWritableFileStream.seek + - api.FileSystemWritableFileStream.truncate + - api.FileSystemWritableFileStream.write + - api.StorageManager.getDirectory diff --git a/features/origin-private-file-system.yml.dist b/features/origin-private-file-system.yml.dist index 16676a477fb..fe94ba9390b 100644 --- a/features/origin-private-file-system.yml.dist +++ b/features/origin-private-file-system.yml.dist @@ -69,3 +69,51 @@ compat_features: - api.FileSystemSyncAccessHandle.read - api.FileSystemSyncAccessHandle.truncate - api.FileSystemSyncAccessHandle.write + + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "86" + # chrome_android: "86" + # edge: "86" + # firefox: "111" + # firefox_android: "111" + # safari: "16.4" + # safari_ios: "16.4" + - api.FileSystemDirectoryHandle.@@asyncIterator + + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "108" + # chrome_android: "109" + # edge: "108" + # firefox: "111" + # firefox_android: "111" + # safari: "16.4" + # safari_ios: "16.4" + - api.FileSystemSyncAccessHandle.close.sync_version + - api.FileSystemSyncAccessHandle.flush.sync_version + - api.FileSystemSyncAccessHandle.getSize.sync_version + - api.FileSystemSyncAccessHandle.truncate.sync_version + + # baseline: false + # support: + # chrome: "86" + # chrome_android: "86" + # edge: "86" + # firefox: "111" + # firefox_android: "111" + - api.FileSystemFileHandle.createWritable + + # baseline: false + # support: + # chrome: "86" + # chrome_android: "109" + # edge: "86" + # firefox: "111" + # firefox_android: "111" + - api.FileSystemWritableFileStream + - api.FileSystemWritableFileStream.seek + - api.FileSystemWritableFileStream.truncate + - api.FileSystemWritableFileStream.write From 1e3270f865b359e408d89d34839e66e3002ef08c Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 29 Oct 2024 13:43:32 +0100 Subject: [PATCH 2/3] Move to file-system-access --- features/file-system-access.yml | 10 ++++ features/file-system-access.yml.dist | 53 ++++++++++++++++++-- features/origin-private-file-system.yml | 36 ------------- features/origin-private-file-system.yml.dist | 48 ------------------ 4 files changed, 60 insertions(+), 87 deletions(-) diff --git a/features/file-system-access.yml b/features/file-system-access.yml index 876d8cd0d49..d63bca936bc 100644 --- a/features/file-system-access.yml +++ b/features/file-system-access.yml @@ -4,8 +4,18 @@ spec: https://wicg.github.io/file-system-access/ caniuse: native-filesystem-api group: file-system compat_features: + - api.FileSystemDirectoryHandle.@@asyncIterator + - api.FileSystemFileHandle.createWritable - api.FileSystemHandle.queryPermission - api.FileSystemHandle.requestPermission + - api.FileSystemSyncAccessHandle.close.sync_version + - api.FileSystemSyncAccessHandle.flush.sync_version + - api.FileSystemSyncAccessHandle.getSize.sync_version + - api.FileSystemSyncAccessHandle.truncate.sync_version + - api.FileSystemWritableFileStream + - api.FileSystemWritableFileStream.seek + - api.FileSystemWritableFileStream.truncate + - api.FileSystemWritableFileStream.write - api.Window.showDirectoryPicker - api.Window.showOpenFilePicker - api.Window.showSaveFilePicker diff --git a/features/file-system-access.yml.dist b/features/file-system-access.yml.dist index d8ac378cf00..08cf4e09755 100644 --- a/features/file-system-access.yml.dist +++ b/features/file-system-access.yml.dist @@ -4,9 +4,57 @@ status: baseline: false support: - chrome: "86" - edge: "86" + chrome: "108" + edge: "108" compat_features: + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "86" + # chrome_android: "86" + # edge: "86" + # firefox: "111" + # firefox_android: "111" + # safari: "16.4" + # safari_ios: "16.4" + - api.FileSystemDirectoryHandle.@@asyncIterator + + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "108" + # chrome_android: "109" + # edge: "108" + # firefox: "111" + # firefox_android: "111" + # safari: "16.4" + # safari_ios: "16.4" + - api.FileSystemSyncAccessHandle.close.sync_version + - api.FileSystemSyncAccessHandle.flush.sync_version + - api.FileSystemSyncAccessHandle.getSize.sync_version + - api.FileSystemSyncAccessHandle.truncate.sync_version + + # baseline: false + # support: + # chrome: "86" + # chrome_android: "86" + # edge: "86" + # firefox: "111" + # firefox_android: "111" + - api.FileSystemFileHandle.createWritable + + # baseline: false + # support: + # chrome: "86" + # chrome_android: "109" + # edge: "86" + # firefox: "111" + # firefox_android: "111" + - api.FileSystemWritableFileStream + - api.FileSystemWritableFileStream.seek + - api.FileSystemWritableFileStream.truncate + - api.FileSystemWritableFileStream.write + # baseline: false # support: # chrome: "86" @@ -15,7 +63,6 @@ compat_features: - api.FileSystemHandle.queryPermission - api.FileSystemHandle.requestPermission - # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "86" diff --git a/features/origin-private-file-system.yml b/features/origin-private-file-system.yml index 73e387099e2..a24cfb41a21 100644 --- a/features/origin-private-file-system.yml +++ b/features/origin-private-file-system.yml @@ -2,39 +2,3 @@ name: Origin private file system description: The `navigator.storage.getDirectory()` method returns a `FileSystemDirectoryHandle` that is restricted to a specific origin and invisible to the user's actual file system for faster file-based applications, such as SQLite databases. spec: https://fs.spec.whatwg.org/#origin-private-file-system group: file-system -status: - compute_from: api.FileSystemFileHandle.createSyncAccessHandle -compat_features: - - api.FileSystemDirectoryHandle - - api.FileSystemDirectoryHandle.@@asyncIterator - - api.FileSystemDirectoryHandle.entries - - api.FileSystemDirectoryHandle.getDirectoryHandle - - api.FileSystemDirectoryHandle.getFileHandle - - api.FileSystemDirectoryHandle.keys - - api.FileSystemDirectoryHandle.removeEntry - - api.FileSystemDirectoryHandle.resolve - - api.FileSystemDirectoryHandle.values - - api.FileSystemFileHandle - - api.FileSystemFileHandle.createSyncAccessHandle - - api.FileSystemFileHandle.createWritable - - api.FileSystemFileHandle.getFile - - api.FileSystemHandle - - api.FileSystemHandle.isSameEntry - - api.FileSystemHandle.kind - - api.FileSystemHandle.name - - api.FileSystemSyncAccessHandle - - api.FileSystemSyncAccessHandle.close - - api.FileSystemSyncAccessHandle.close.sync_version - - api.FileSystemSyncAccessHandle.flush - - api.FileSystemSyncAccessHandle.flush.sync_version - - api.FileSystemSyncAccessHandle.getSize - - api.FileSystemSyncAccessHandle.getSize.sync_version - - api.FileSystemSyncAccessHandle.read - - api.FileSystemSyncAccessHandle.truncate - - api.FileSystemSyncAccessHandle.truncate.sync_version - - api.FileSystemSyncAccessHandle.write - - api.FileSystemWritableFileStream - - api.FileSystemWritableFileStream.seek - - api.FileSystemWritableFileStream.truncate - - api.FileSystemWritableFileStream.write - - api.StorageManager.getDirectory diff --git a/features/origin-private-file-system.yml.dist b/features/origin-private-file-system.yml.dist index fe94ba9390b..16676a477fb 100644 --- a/features/origin-private-file-system.yml.dist +++ b/features/origin-private-file-system.yml.dist @@ -69,51 +69,3 @@ compat_features: - api.FileSystemSyncAccessHandle.read - api.FileSystemSyncAccessHandle.truncate - api.FileSystemSyncAccessHandle.write - - # baseline: low - # baseline_low_date: 2023-03-27 - # support: - # chrome: "86" - # chrome_android: "86" - # edge: "86" - # firefox: "111" - # firefox_android: "111" - # safari: "16.4" - # safari_ios: "16.4" - - api.FileSystemDirectoryHandle.@@asyncIterator - - # baseline: low - # baseline_low_date: 2023-03-27 - # support: - # chrome: "108" - # chrome_android: "109" - # edge: "108" - # firefox: "111" - # firefox_android: "111" - # safari: "16.4" - # safari_ios: "16.4" - - api.FileSystemSyncAccessHandle.close.sync_version - - api.FileSystemSyncAccessHandle.flush.sync_version - - api.FileSystemSyncAccessHandle.getSize.sync_version - - api.FileSystemSyncAccessHandle.truncate.sync_version - - # baseline: false - # support: - # chrome: "86" - # chrome_android: "86" - # edge: "86" - # firefox: "111" - # firefox_android: "111" - - api.FileSystemFileHandle.createWritable - - # baseline: false - # support: - # chrome: "86" - # chrome_android: "109" - # edge: "86" - # firefox: "111" - # firefox_android: "111" - - api.FileSystemWritableFileStream - - api.FileSystemWritableFileStream.seek - - api.FileSystemWritableFileStream.truncate - - api.FileSystemWritableFileStream.write From 751571d98b2fec8f7738a576afc6d700c8f1295a Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 29 Oct 2024 16:02:32 +0100 Subject: [PATCH 3/3] Move some keys to opfs --- features/file-system-access.yml | 4 --- features/file-system-access.yml.dist | 20 +++----------- features/origin-private-file-system.yml | 28 ++++++++++++++++++++ features/origin-private-file-system.yml.dist | 27 ++++++++++++++----- 4 files changed, 52 insertions(+), 27 deletions(-) diff --git a/features/file-system-access.yml b/features/file-system-access.yml index d63bca936bc..878cfcce9e6 100644 --- a/features/file-system-access.yml +++ b/features/file-system-access.yml @@ -8,10 +8,6 @@ compat_features: - api.FileSystemFileHandle.createWritable - api.FileSystemHandle.queryPermission - api.FileSystemHandle.requestPermission - - api.FileSystemSyncAccessHandle.close.sync_version - - api.FileSystemSyncAccessHandle.flush.sync_version - - api.FileSystemSyncAccessHandle.getSize.sync_version - - api.FileSystemSyncAccessHandle.truncate.sync_version - api.FileSystemWritableFileStream - api.FileSystemWritableFileStream.seek - api.FileSystemWritableFileStream.truncate diff --git a/features/file-system-access.yml.dist b/features/file-system-access.yml.dist index 08cf4e09755..54afa4a5d81 100644 --- a/features/file-system-access.yml.dist +++ b/features/file-system-access.yml.dist @@ -4,8 +4,8 @@ status: baseline: false support: - chrome: "108" - edge: "108" + chrome: "86" + edge: "86" compat_features: # baseline: low # baseline_low_date: 2023-03-27 @@ -19,21 +19,6 @@ compat_features: # safari_ios: "16.4" - api.FileSystemDirectoryHandle.@@asyncIterator - # baseline: low - # baseline_low_date: 2023-03-27 - # support: - # chrome: "108" - # chrome_android: "109" - # edge: "108" - # firefox: "111" - # firefox_android: "111" - # safari: "16.4" - # safari_ios: "16.4" - - api.FileSystemSyncAccessHandle.close.sync_version - - api.FileSystemSyncAccessHandle.flush.sync_version - - api.FileSystemSyncAccessHandle.getSize.sync_version - - api.FileSystemSyncAccessHandle.truncate.sync_version - # baseline: false # support: # chrome: "86" @@ -63,6 +48,7 @@ compat_features: - api.FileSystemHandle.queryPermission - api.FileSystemHandle.requestPermission + # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "86" diff --git a/features/origin-private-file-system.yml b/features/origin-private-file-system.yml index a24cfb41a21..169a487344d 100644 --- a/features/origin-private-file-system.yml +++ b/features/origin-private-file-system.yml @@ -2,3 +2,31 @@ name: Origin private file system description: The `navigator.storage.getDirectory()` method returns a `FileSystemDirectoryHandle` that is restricted to a specific origin and invisible to the user's actual file system for faster file-based applications, such as SQLite databases. spec: https://fs.spec.whatwg.org/#origin-private-file-system group: file-system +compat_features: + - api.FileSystemDirectoryHandle + - api.FileSystemDirectoryHandle.entries + - api.FileSystemDirectoryHandle.getDirectoryHandle + - api.FileSystemDirectoryHandle.getFileHandle + - api.FileSystemDirectoryHandle.keys + - api.FileSystemDirectoryHandle.removeEntry + - api.FileSystemDirectoryHandle.resolve + - api.FileSystemDirectoryHandle.values + - api.FileSystemFileHandle + - api.FileSystemFileHandle.createSyncAccessHandle + - api.FileSystemFileHandle.getFile + - api.FileSystemHandle + - api.FileSystemHandle.isSameEntry + - api.FileSystemHandle.kind + - api.FileSystemHandle.name + - api.FileSystemSyncAccessHandle + - api.FileSystemSyncAccessHandle.close + - api.FileSystemSyncAccessHandle.close.sync_version + - api.FileSystemSyncAccessHandle.flush + - api.FileSystemSyncAccessHandle.flush.sync_version + - api.FileSystemSyncAccessHandle.getSize + - api.FileSystemSyncAccessHandle.getSize.sync_version + - api.FileSystemSyncAccessHandle.read + - api.FileSystemSyncAccessHandle.truncate + - api.FileSystemSyncAccessHandle.truncate.sync_version + - api.FileSystemSyncAccessHandle.write + - api.StorageManager.getDirectory diff --git a/features/origin-private-file-system.yml.dist b/features/origin-private-file-system.yml.dist index 16676a477fb..f2de5e0344f 100644 --- a/features/origin-private-file-system.yml.dist +++ b/features/origin-private-file-system.yml.dist @@ -3,15 +3,15 @@ status: baseline: low - baseline_low_date: 2023-03-14 + baseline_low_date: 2023-03-27 support: - chrome: "102" + chrome: "108" chrome_android: "109" - edge: "102" + edge: "108" firefox: "111" firefox_android: "111" - safari: "15.2" - safari_ios: "15.2" + safari: "16.4" + safari_ios: "16.4" compat_features: # baseline: low # baseline_low_date: 2023-03-14 @@ -50,7 +50,6 @@ compat_features: # safari_ios: "15.2" - api.StorageManager.getDirectory - # ⬇️ Same status as overall feature ⬇️ # baseline: low # baseline_low_date: 2023-03-14 # support: @@ -69,3 +68,19 @@ compat_features: - api.FileSystemSyncAccessHandle.read - api.FileSystemSyncAccessHandle.truncate - api.FileSystemSyncAccessHandle.write + + # ⬇️ Same status as overall feature ⬇️ + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "108" + # chrome_android: "109" + # edge: "108" + # firefox: "111" + # firefox_android: "111" + # safari: "16.4" + # safari_ios: "16.4" + - api.FileSystemSyncAccessHandle.close.sync_version + - api.FileSystemSyncAccessHandle.flush.sync_version + - api.FileSystemSyncAccessHandle.getSize.sync_version + - api.FileSystemSyncAccessHandle.truncate.sync_version