netwerk/base/nsIApplicationCacheChannel.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.

/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 *
 * 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 "nsIApplicationCacheContainer.idl"

/**
 * Interface implemented by channels that support application caches.
 */
[scriptable, uuid(6FA816B1-6D5F-4380-9704-054D0908CFA3)]
interface nsIApplicationCacheChannel : nsIApplicationCacheContainer
{
    /**
     * TRUE when the resource came from the application cache. This
     * might be false even there is assigned an application cache
     * e.g. in case of fallback of load of an entry matching bypass
     * namespace.
     */
    readonly attribute boolean loadedFromApplicationCache;

    /**
     * When true, the channel will ask its notification callbacks for
     * an application cache if one is not explicitly provided.  Default
     * value is true.
     *
     * NS_ERROR_ALREADY_OPENED will be thrown if set after AsyncOpen()
     * is called.
     */
    attribute boolean inheritApplicationCache;

    /**
     * When true, the channel will choose an application cache if one
     * was not explicitly provided and none is available from the
     * notification callbacks.  Default value is false.
     *
     * This attribute will not be transferred through a redirect.
     *
     * NS_ERROR_ALREADY_OPENED will be thrown if set after AsyncOpen()
     * is called.
     */
    attribute boolean chooseApplicationCache;

    /**
     * A shortcut method to mark the cache item of this channel as 'foreign'.
     * See the 'cache selection algorithm' and CACHE_SELECTION_RELOAD
     * action handling in nsContentSink.
     */
    void markOfflineCacheEntryAsForeign();

    /**
     * Set offline application cache object to instruct the channel
     * to cache for offline use using this application cache.
     */
    attribute nsIApplicationCache applicationCacheForWrite;
};