michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsISupports.idl" michael@0: michael@0: interface nsIUTF8StringEnumerator; michael@0: /** michael@0: * A channel interface which allows special handling of encoded content michael@0: */ michael@0: michael@0: [scriptable, uuid(30d7ec3a-f376-4652-9276-3092ec57abb6)] michael@0: interface nsIEncodedChannel : nsISupports michael@0: { michael@0: /** michael@0: * This attribute holds the MIME types corresponding to the content michael@0: * encodings on the channel. The enumerator returns nsISupportsCString michael@0: * objects. The first one corresponds to the outermost encoding on the michael@0: * channel and then we work our way inward. "identity" is skipped and not michael@0: * represented on the list. Unknown encodings make the enumeration stop. michael@0: * If you want the actual Content-Encoding value, use michael@0: * getResponseHeader("Content-Encoding"). michael@0: * michael@0: * When there is no Content-Encoding header, this property is null. michael@0: * michael@0: * Modifying the Content-Encoding header on the channel will cause michael@0: * this enumerator to have undefined behavior. Don't do it. michael@0: * michael@0: * Also note that contentEncodings only exist during or after OnStartRequest. michael@0: * Calling contentEncodings before OnStartRequest is an error. michael@0: */ michael@0: readonly attribute nsIUTF8StringEnumerator contentEncodings; michael@0: michael@0: /** michael@0: * This attribute controls whether or not content conversion should be michael@0: * done per the Content-Encoding response header. applyConversion can only michael@0: * be set before or during OnStartRequest. Calling this during michael@0: * OnDataAvailable is an error. michael@0: * michael@0: * TRUE by default. michael@0: */ michael@0: attribute boolean applyConversion; michael@0: };