/* -*- 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 http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" %{C++ namespace mozilla { namespace dom { namespace indexedDB { class FileInfo; class FileManager; } } } %} [ptr] native FileInfo(mozilla::dom::indexedDB::FileInfo); [ptr] native FileManager(mozilla::dom::indexedDB::FileManager); interface nsIDOMFileError; interface nsIInputStream; interface nsIURI; interface nsIPrincipal; interface nsIDOMBlob; [scriptable, builtinclass, uuid(6ef56697-7c9c-41ac-83df-e01c079fb1d1)] interface nsIDOMBlob : nsISupports { readonly attribute unsigned long long size; readonly attribute DOMString type; [noscript] readonly attribute nsIInputStream internalStream; [optional_argc] nsIDOMBlob slice([optional] in long long start, [optional] in long long end, [optional] in DOMString contentType); // Get internal id of stored file. Returns -1 if it is not a stored file. // Intended only for testing. It can be called on any thread. [notxpcom] long long getFileId(); // Called when the blob was successfully stored in a database or when // the blob is initialized from a database. It can be called on any thread. [notxpcom] void addFileInfo(in FileInfo aFileInfo); // Called before the blob is stored in a database to decide if it can be // shared or needs to be copied. It can be called on any thread. [notxpcom] FileInfo getFileInfo(in FileManager aFileManager); // Return true if this blob is a memory file. [notxpcom] bool isMemoryFile(); }; [scriptable, builtinclass, uuid(74657f92-aa61-492b-8649-fd1cca62e255)] interface nsIDOMFile : nsIDOMBlob { readonly attribute DOMString name; readonly attribute DOMString path; [implicit_jscontext] readonly attribute jsval lastModifiedDate; readonly attribute DOMString mozFullPath; // This performs no security checks! [noscript] readonly attribute DOMString mozFullPathInternal; [noscript] readonly attribute int64_t mozLastModifiedDate; };