// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // https://fs.spec.whatwg.org/#enumdef-filesystemhandlekind enum FileSystemHandleKind { "file", "directory", }; // https://fs.spec.whatwg.org/#filesystemhandle [ Exposed=(Window,Worker), SecureContext, Serializable, RuntimeEnabled=FileSystemAccess ] interface FileSystemHandle { // Brand checking APIs because javascript makes it otherwise really hard to // figure out what type an object is when you don't know in which global // (i.e. iframe) the object was created. readonly attribute FileSystemHandleKind kind; readonly attribute USVString name; [CallWith=ScriptState] Promise queryPermission( optional FileSystemHandlePermissionDescriptor descriptor = {}); [ CallWith=ScriptState, RaisesException ] Promise requestPermission( optional FileSystemHandlePermissionDescriptor descriptor = {}); // TODO(https://crbug.com/1250534): Measure these methods once directory // moves are supported. [ CallWith=ScriptState, RaisesException, RuntimeEnabled=FileSystemAccessAPIExperimental ] Promise move(USVString new_entry_name); [ CallWith=ScriptState, RaisesException, RuntimeEnabled=FileSystemAccessAPIExperimental ] Promise move(FileSystemDirectoryHandle destination_directory); [ CallWith=ScriptState, RaisesException, RuntimeEnabled=FileSystemAccessAPIExperimental ] Promise move(FileSystemDirectoryHandle destination_directory, USVString new_entry_name); [ CallWith=ScriptState, RaisesException, Measure ] Promise remove(optional FileSystemRemoveOptions options = {}); [ CallWith=ScriptState, RaisesException, Measure ] Promise isSameEntry(FileSystemHandle other); [ CallWith=ScriptState, RaisesException, Measure, RuntimeEnabled=FileSystemAccessAPIExperimental ] Promise getUniqueId(); [ CallWith=ScriptState, RaisesException, Measure, RuntimeEnabled=FileSystemAccessGetCloudIdentifiers ] Promise> getCloudIdentifiers(); };