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 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
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 "nsRect.h"
7 #include "mozilla/gfx/Types.h" // for NS_SIDE_BOTTOM, etc
8 #include "nsDeviceContext.h" // for nsDeviceContext
9 #include "nsString.h" // for nsAutoString, etc
10 #include "nsMargin.h" // for nsMargin
12 static_assert((int(NS_SIDE_TOP) == 0) &&
13 (int(NS_SIDE_RIGHT) == 1) &&
14 (int(NS_SIDE_BOTTOM) == 2) &&
15 (int(NS_SIDE_LEFT) == 3),
16 "The mozilla::css::Side sequence must match the nsMargin nscoord sequence");
18 #ifdef DEBUG
19 // Diagnostics
21 FILE* operator<<(FILE* out, const nsRect& rect)
22 {
23 nsAutoString tmp;
25 // Output the coordinates in fractional pixels so they're easier to read
26 tmp.AppendLiteral("{");
27 tmp.AppendFloat(NSAppUnitsToFloatPixels(rect.x,
28 nsDeviceContext::AppUnitsPerCSSPixel()));
29 tmp.AppendLiteral(", ");
30 tmp.AppendFloat(NSAppUnitsToFloatPixels(rect.y,
31 nsDeviceContext::AppUnitsPerCSSPixel()));
32 tmp.AppendLiteral(", ");
33 tmp.AppendFloat(NSAppUnitsToFloatPixels(rect.width,
34 nsDeviceContext::AppUnitsPerCSSPixel()));
35 tmp.AppendLiteral(", ");
36 tmp.AppendFloat(NSAppUnitsToFloatPixels(rect.height,
37 nsDeviceContext::AppUnitsPerCSSPixel()));
38 tmp.AppendLiteral("}");
39 fputs(NS_LossyConvertUTF16toASCII(tmp).get(), out);
40 return out;
41 }
43 #endif // DEBUG