Scope
Implement FileSystemDirectoryHandle.getDirectoryHandle(name, {create:true}) over a typed opaque get-or-create directory-child authority.
Required browser behavior:
- create and return an empty directory when the named child is absent;
- return an existing directory without removing or changing its contents;
- reject a file collision with
TypeMismatchError;
- preserve existing WebIDL option conversion and invalid single-component
TypeError behavior;
- map cancellation, denial, stale generation, capacity, and I/O outcomes to browser errors;
- bind each derived handle to the requesting realm/origin/profile/partition and release the native grant exactly once.
Product dependency
Unchanged VS Code calls this operation from htmlFileSystemProvider.mkdir() and from recursive browser folder export in fileImportExport.ts. This is the smallest remaining directory mutation that unlocks a direct Code OSS path.
Acceptance
- pinned WPT and Chrome oracle for create, existing-content preservation, collision, Unicode and invalid names;
- native ABI/export/C11 and AppScene adapter parity;
- origin/profile/partition security, cancellation, stale-generation and navigation retirement;
- 10,000 bounded broker operations and 100 lifecycle cycles with heap/RSS/FD bounds;
- unchanged Code OSS call-site evidence for mkdir and recursive folder export.
Blocked by the missing native opaque directory-child creation authority tracked in SceneTech/AppScene#168. This issue excludes remove/delete, recursive deletion, move/rename, CSS, Window.find, packaging, and AppScene implementation.
Parent: #248.
Scope
Implement
FileSystemDirectoryHandle.getDirectoryHandle(name, {create:true})over a typed opaque get-or-create directory-child authority.Required browser behavior:
TypeMismatchError;TypeErrorbehavior;Product dependency
Unchanged VS Code calls this operation from
htmlFileSystemProvider.mkdir()and from recursive browser folder export infileImportExport.ts. This is the smallest remaining directory mutation that unlocks a direct Code OSS path.Acceptance
Blocked by the missing native opaque directory-child creation authority tracked in SceneTech/AppScene#168. This issue excludes remove/delete, recursive deletion, move/rename, CSS, Window.find, packaging, and AppScene implementation.
Parent: #248.