author Mike de Boer <>
Fri, 10 Apr 2015 13:23:14 +0200
changeset 267072 719d7e41abeac7fee33b6d7ab4676ed6b537c3af
parent 250899 560fcd0679e8e83d0d41dfe647a8fa2513f22699
child 297719 ffd40920af0c9020488448939e550637c563b5ed
permissions -rw-r--r--
Bug 1132301 - Part 5: Add unit tests for the Social Sharing feature of Loop. r=Standard8, a=lizzard

/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at */

dictionary DeviceStorageEnumerationParameters {
  Date since;

interface DeviceStorage : EventTarget {
  attribute EventHandler onchange;

  DOMRequest? add(Blob? aBlob);
  DOMRequest? addNamed(Blob? aBlob, DOMString aName);

   * Append data to a given file.
   * If the file doesn't exist, a "NotFoundError" event will be dispatched.
   * In the same time, it is a request.onerror case.
   * If the file exists, it will be opened with the following permission:
   *                                                "PR_WRONLY|PR_CREATE_FILE|PR_APPEND".
   * The function will return null when blob file is null and other unexpected situations.
   * @parameter aBlob: A Blob object representing the data to append
   * @parameter aName: A string representing the full name (path + file name) of the file
   *                   to append data to.
  DOMRequest? appendNamed(Blob? aBlob, DOMString aName);

  DOMRequest get(DOMString aName);
  DOMRequest getEditable(DOMString aName);
  DOMRequest delete(DOMString aName);

  DOMCursor enumerate(optional DeviceStorageEnumerationParameters options);
  DOMCursor enumerate(DOMString path,
                      optional DeviceStorageEnumerationParameters options);
  DOMCursor enumerateEditable(optional DeviceStorageEnumerationParameters options);
  DOMCursor enumerateEditable(DOMString path,
                              optional DeviceStorageEnumerationParameters options);

  DOMRequest freeSpace();
  DOMRequest usedSpace();
  DOMRequest available();
  DOMRequest storageStatus();
  DOMRequest format();
  DOMRequest mount();
  DOMRequest unmount();

  // Note that the storageName is just a name (like sdcard), and doesn't
  // include any path information.
  readonly attribute DOMString storageName;

  // Indicates if the storage area denoted by storageName is capable of
  // being mounted and unmounted.
  readonly attribute boolean canBeMounted;

  // Indicates if the storage area denoted by storageName is capable of
  // being shared and unshared.
  readonly attribute boolean canBeShared;

  // Indicates if the storage area denoted by storageName is capable of
  // being formatted.
  readonly attribute boolean canBeFormatted;

  // Determines if this storage area is the one which will be used by default
  // for storing new files.
  readonly attribute boolean default;

  // Indicates if the storage area denoted by storageName is removable
  readonly attribute boolean isRemovable;

  // XXXbz what type does this really return?
  Promise<any> getRoot();