netwerk/base/nsIDownloader.idl
author Andrew Osmond <aosmond@mozilla.com>
Fri, 17 Nov 2017 06:45:28 -0500
changeset 392351 b9a29d94ccac646c9336fa75e084bbc8581501ad
parent 224814 4ec37503ea6a752baf92e053ede5f0ff7750ff36
permissions -rw-r--r--
Bug 1368776 - Part 15. Cache flags passed to ImageResource::GetImageContainerImpl for consistency. r=tnikkel When FLAG_HIGH_QUALITY_SCALING is used, we need to make sure we continue using that flag when we update the container. We should also use it for comparing whether or not an existing image container is equivalent.

/* 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 "nsIStreamListener.idl"

interface nsIFile;
interface nsIDownloadObserver;

/**
 * nsIDownloader
 *
 * A downloader is a special implementation of a nsIStreamListener that will
 * make the contents of the stream available as a file.  This may utilize the
 * disk cache as an optimization to avoid an extra copy of the data on disk.
 * The resulting file is valid from the time the downloader completes until
 * the last reference to the downloader is released.
 */
[scriptable, uuid(fafe41a9-a531-4d6d-89bc-588a6522fb4e)]
interface nsIDownloader : nsIStreamListener
{
    /**
     * Initialize this downloader
     *
     * @param observer
     *        the observer to be notified when the download completes.
     * @param downloadLocation
     *        the location where the stream contents should be written.
     *        if null, the downloader will select a location and the
     *        resulting file will be deleted (or otherwise made invalid)
     *        when the downloader object is destroyed.  if an explicit
     *        download location is specified then the resulting file will
     *        not be deleted, and it will be the callers responsibility
     *        to keep track of the file, etc.
     */
    void init(in nsIDownloadObserver observer,
              in nsIFile             downloadLocation);
};

[scriptable, uuid(44b3153e-a54e-4077-a527-b0325e40924e)]
interface nsIDownloadObserver : nsISupports
{
    /**
     * Called to signal a download that has completed.
     */
    void onDownloadComplete(in nsIDownloader downloader,
                            in nsIRequest    request,
                            in nsISupports   ctxt,
                            in nsresult      status,
                            in nsIFile       result);
};