blob: f101430ff6de3319862a6b4e3eb85ac28827afbf [file] [log] [blame] [edit]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
namespace fileSystem {
dictionary AcceptOption {
// This is the optional text description for this option. If not present,
// a description will be automatically generated; typically containing an
// expanded list of valid extensions (e.g. "text/html" may expand to
// "*.html, *.htm").
DOMString? description;
// Mime-types to accept, e.g. "image/jpeg" or "audio/*". One of mimeTypes or
// extensions must contain at least one valid element.
DOMString[]? mimeTypes;
// Extensions to accept, e.g. "jpg", "gif", "crx".
DOMString[]? extensions;
};
dictionary ChooseEntryOptions {
// Type of the prompt to show. Valid types are 'openFile',
// 'openWritableFile' or 'saveFile'.
//
// Both 'openFile' and 'openWritableFile' will prompt the user to open an
// existing file, with 'openFile' returning a read-only FileEntry on
// success. 'saveFile' will prompt the user to choose an existing file or
// a new file, and will return a writable FileEntry.
// Calls to chooseFile with either 'openWritableFile' or 'saveFile' will
// fail unless the application has the 'write' permission under
// 'fileSystem'.
//
// The default is 'openFile'.
DOMString? type;
// The suggested file name that will be presented to the user as the
// default name to read or write. This is optional.
DOMString? suggestedName;
// The optional list of accept options for this file opener. Each option
// will be presented as a unique group to the end-user.
AcceptOption[]? accepts;
// Whether to accept all file types, in addition to the options specified
// in the accepts argument. The default is true. If the accepts field is
// unset or contains no valid entries, this will always be reset to true.
boolean? acceptsAllTypes;
};
callback GetDisplayPathCallback = void (DOMString displayPath);
callback FileEntryCallback = void ([instanceOf=FileEntry] object fileEntry);
callback IsWritableCallback = void (boolean isWritable);
interface Functions {
// Get the display path of a FileEntry object. The display path is based on
// the full path of the file on the local file system, but may be made more
// readable for display purposes.
static void getDisplayPath([instanceOf=FileEntry] object fileEntry,
GetDisplayPathCallback callback);
// Get a writable FileEntry from another FileEntry. This call will fail if
// the application does not have the 'write' permission under 'fileSystem'.
static void getWritableEntry([instanceOf=FileEntry] object fileEntry,
FileEntryCallback callback);
// Gets whether this FileEntry is writable or not.
static void isWritableEntry([instanceOf=FileEntry] object fileEntry,
IsWritableCallback callback);
// Ask the user to choose a file.
static void chooseEntry(optional ChooseEntryOptions options,
FileEntryCallback callback);
};
};