Skip to content

The FileSystemObserver interface #868

@a-sully

Description

@a-sully

こんにちは TAG-さん!

I'm requesting a TAG review of the FileSystemObserver interface for the File System specification.

This proposal introduces a FileSystemObserver interface which will much more easily allow a website to be notified of changes to the file system.

The file system is a shared resource that can be modified from several contexts. A Bucket File System (a.k.a. an Origin Private File System, or OPFS) spans numerous agents - tabs, workers, etc - within the same storage key. The local file system also spans across origins and other applications on the host operating system.

Currently, for a given agent to know about modifications to the file system - made either by itself or from some external context - it must poll the file system to detect changes. This is inefficient and does not scale well.

Further details:

  • I have reviewed the TAG's Web Platform Design Principles
  • The group where the incubation/design work on this is being done: whatwg/fs and WICG/file-system-access
  • The group where standardization of this work is intended to be done: whatwg/fs
  • Existing major pieces of multi-stakeholder review or discussion of this design: Developers have enumerated several use cases, discussed various designs, and provided example code for how file paths can be watched with the existing APIs in Watching/notifications WICG/file-system-access#72. No discussion with other stakeholders yet
  • Major unresolved issues with or opposition to this design:
  • This work is being funded by: Google

You should also know that...

The proposed interface can be used to observe both files on the user's local device (as specified in WICG/file-system-access) and files in the Bucket File System (as specified in whatwg/fs).

We'd prefer the TAG provide feedback as (please delete all but the desired option):

🐛 open issues in our GitHub repo for each point of feedback

Metadata

Metadata

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions