/* -*- 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(b1723fac-4814-4429-82cb-dc54ba0d46d6)] interface nsIDOMBlob : nsISupports { readonly attribute unsigned long long size; readonly attribute DOMString type; [noscript] readonly attribute nsIInputStream internalStream; // The caller is responsible for releasing the internalUrl from the // blob: protocol handler [noscript] DOMString getInternalUrl(in nsIPrincipal principal); [optional_argc] nsIDOMBlob slice([optional] in long long start, [optional] in long long end, [optional] in DOMString contentType); [optional_argc,implicit_jscontext] nsIDOMBlob mozSlice([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(4e7d1a8b-e2d5-4304-a753-4affb731660c)] 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 uint64_t mozLastModifiedDate; };