diff -r 000000000000 -r 6474c204b198 content/base/public/nsIDOMFile.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/base/public/nsIDOMFile.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,76 @@ +/* -*- 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); + + // 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; +};