xpcom/io/nsIConverterOutputStream.idl

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 /* vim:set expandtab ts=4 sw=4 sts=4 cin: */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #include "nsIUnicharOutputStream.idl"
     8 interface nsIOutputStream;
    10 /**
    11  * This interface allows writing strings to a stream, doing automatic
    12  * character encoding conversion.
    13  */
    14 [scriptable, uuid(4b71113a-cb0d-479f-8ed5-01daeba2e8d4)]
    15 interface nsIConverterOutputStream : nsIUnicharOutputStream
    16 {
    17     /**
    18      * Initialize this stream. Must be called before any other method on this
    19      * interface, or you will crash. The output stream passed to this method
    20      * must not be null, or you will crash.
    21      *
    22      * @param aOutStream
    23      *        The underlying output stream to which the converted strings will
    24      *        be written.
    25      * @param aCharset
    26      *        The character set to use for encoding the characters. A null
    27      *        charset will be interpreted as UTF-8.
    28      * @param aBufferSize
    29      *        How many bytes to buffer. A value of 0 means that no bytes will be
    30      *        buffered. Implementations not supporting buffering may ignore
    31      *        this parameter.
    32      * @param aReplacementCharacter
    33      *        The replacement character to use when an unsupported character is found.
    34      *        The character must be encodable in the selected character
    35      *        encoding; otherwise, attempts to write an unsupported character
    36      *        will throw NS_ERROR_LOSS_OF_SIGNIFICANT_DATA.
    37      *
    38      *        A value of 0x0000 will cause an exception to be thrown upon
    39      *        attempts to write unsupported characters.
    40      */
    41     void init(in nsIOutputStream aOutStream, in string aCharset,
    42               in unsigned long aBufferSize,
    43               in char16_t aReplacementCharacter);
    44 };

mercurial