Tue, 06 Jan 2015 21:39:09 +0100
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 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef NSBASE64ENCODER_H_
6 #define NSBASE64ENCODER_H_
8 #include "nsIOutputStream.h"
9 #include "nsString.h"
10 #include "mozilla/Attributes.h"
12 /**
13 * A base64 encoder. Usage: Instantiate class, write to it using
14 * Write(), then call Finish() to get the base64-encoded data.
15 */
16 class nsBase64Encoder MOZ_FINAL : public nsIOutputStream {
17 public:
18 nsBase64Encoder() {}
20 NS_DECL_ISUPPORTS
21 NS_DECL_NSIOUTPUTSTREAM
23 nsresult Finish(nsCSubstring& _result);
24 private:
25 ~nsBase64Encoder() {}
27 /// The data written to this stream. nsCString can deal fine with
28 /// binary data.
29 nsCString mData;
30 };
32 #endif