diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /netwerk/base/nsIUnicharStreamLoader.idl | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'netwerk/base/nsIUnicharStreamLoader.idl')
-rw-r--r-- | netwerk/base/nsIUnicharStreamLoader.idl | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/netwerk/base/nsIUnicharStreamLoader.idl b/netwerk/base/nsIUnicharStreamLoader.idl new file mode 100644 index 000000000..d4cdc3fb3 --- /dev/null +++ b/netwerk/base/nsIUnicharStreamLoader.idl @@ -0,0 +1,88 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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 nsIUnicharInputStream; +interface nsIUnicharStreamLoader; +interface nsIChannel; + +[scriptable, uuid(c2982b39-2e48-429e-92b7-99348a1633c5)] +interface nsIUnicharStreamLoaderObserver : nsISupports +{ + /** + * Called as soon as at least 512 octets of data have arrived. + * If the stream receives fewer than 512 octets of data in total, + * called upon stream completion but before calling OnStreamComplete. + * Will not be called if the stream receives no data at all. + * + * @param aLoader the unichar stream loader + * @param aContext the context parameter of the underlying channel + * @param aSegment up to 512 octets of raw data from the stream + * + * @return the name of the character set to be used to decode this stream + */ + ACString onDetermineCharset(in nsIUnicharStreamLoader aLoader, + in nsISupports aContext, + in ACString aSegment); + + /** + * Called when the entire stream has been loaded and decoded. + * + * @param aLoader the unichar stream loader + * @param aContext the context parameter of the underlying channel + * @param aStatus the status of the underlying channel + * @param aBuffer the contents of the stream, decoded to UTF-16. + * + * This method will always be called asynchronously by the + * nsUnicharIStreamLoader involved, on the thread that called the + * loader's init() method. If onDetermineCharset fails, + * onStreamComplete will still be called, but aStatus will be an + * error code. + */ + void onStreamComplete(in nsIUnicharStreamLoader aLoader, + in nsISupports aContext, + in nsresult aStatus, + in AString aBuffer); +}; + +/** + * Asynchronously load a channel, converting the data to UTF-16. + * + * To use this interface, first call init() with a + * nsIUnicharStreamLoaderObserver that will be notified when the data has been + * loaded. Then call asyncOpen() on the channel with the nsIUnicharStreamLoader + * as the listener. The context argument in the asyncOpen() call will be + * passed to the onStreamComplete() callback. + */ +[scriptable, uuid(afb62060-37c7-4713-8a84-4a0c1199ba5c)] +interface nsIUnicharStreamLoader : nsIStreamListener +{ + /** + * Initializes the unichar stream loader + * + * @param aObserver the observer to notify when a charset is needed and when + * the load is complete + */ + void init(in nsIUnicharStreamLoaderObserver aObserver); + + /** + * The channel attribute is only valid inside the onDetermineCharset + * and onStreamComplete callbacks. Otherwise it will be null. + */ + readonly attribute nsIChannel channel; + + /** + * The charset that onDetermineCharset returned, if that's been + * called. + */ + readonly attribute ACString charset; + + /** + * Get the raw bytes as seen on the wire prior to character converstion. + * Used by Subresource Integrity checker to generate the correct hash. + */ + readonly attribute ACString rawBuffer; +}; |