Implemented by
An incremental download object attempts to fetch a file piecemeal over time in an effort to minimize network bandwidth usage. Canceling a background download does not cause the file on disk to be deleted.
[scriptable, uuid(6687823f-56c4-461d-93a1-7f6cb7dfbfba)]
interface nsIIncrementalDownload : nsIRequest
Attributes
The current number of bytes downloaded so far. This attribute is set just prior to calling OnStartRequest on the observer passed to the start method. This attribute has a value of -1 if the current size is unknown.
readonly attribute
long long
currentSize
The file where the download is being written.
readonly attribute
nsIFile
destination
The URI being fetched after any redirects have been followed. This attribute is set just prior to calling OnStartRequest on the observer passed to the start method.
readonly attribute
nsIURI
finalURI
The total number of bytes for the requested file. This attribute is set just prior to calling OnStartRequest on the observer passed to the start method. This attribute has a value of -1 if the total size is unknown.
readonly attribute
long long
totalSize
The URI being fetched.
readonly attribute
nsIURI
URI
Methods
Initialize the incremental download object. If the destination file
already exists, then only the remaining portion of the file will be
fetched.
NOTE: The downloader will create the destination file if it does not
already exist. It will create the file with the permissions 0600 if
needed. To affect the permissions of the file, consumers of this
interface may create an empty file at the specified destination prior to
starting the incremental download.
NOTE: Since this class may create a temporary file at the specified
destination, it is advisable for the consumer of this interface to specify
a file name for the destination that would not tempt the user into
double-clicking it. For example, it might be wise to append a file
extension like ".part" to the end of the destination to protect users from
accidentally running "blah.exe" before it is a complete file.
@param uri
The URI to fetch.
@param destination
The location where the file is to be stored.
@param chunkSize
The size of the chunks to fetch. A non-positive value results in
the default chunk size being used.
@param intervalInSeconds
The amount of time to wait between fetching chunks. Pass a
negative to use the default interval, or 0 to fetch the remaining
part of the file in one chunk.
void
init(in nsIURI uri, in nsIFile destination, in long chunkSize, in long intervalInSeconds)
Start the incremental download.
@param observer
An observer to be notified of various events. OnStartRequest is
called when finalURI and totalSize have been determined or when an
error occurs. OnStopRequest is called when the file is completely
downloaded or when an error occurs. If this object implements
nsIProgressEventSink, then its OnProgress method will be called as
data is written to the destination file. If this object implements
nsIInterfaceRequestor, then it will be assigned as the underlying
channel's notification callbacks, which allows it to provide a
nsIAuthPrompt implementation if needed by the channel, for example.
@param ctxt
User defined object forwarded to the observer's methods.
void
start(in nsIRequestObserver observer, in nsISupports ctxt)
Compare to: