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: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*-
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 #ifndef GFX_D2DSURFACE_H
7 #define GFX_D2DSURFACE_H
9 #include "gfxASurface.h"
10 #include "nsPoint.h"
12 #include <windows.h>
14 struct ID3D10Texture2D;
15 struct nsIntRect;
17 class gfxD2DSurface : public gfxASurface {
18 public:
20 gfxD2DSurface(HWND wnd,
21 gfxContentType aContent);
23 gfxD2DSurface(const gfxIntSize& size,
24 gfxImageFormat imageFormat = gfxImageFormat::RGB24);
26 gfxD2DSurface(HANDLE handle, gfxContentType aContent);
28 gfxD2DSurface(ID3D10Texture2D *texture, gfxContentType aContent);
30 gfxD2DSurface(cairo_surface_t *csurf);
32 void MovePixels(const nsIntRect& aSourceRect,
33 const nsIntPoint& aDestTopLeft)
34 {
35 FastMovePixels(aSourceRect, aDestTopLeft);
36 }
38 virtual ~gfxD2DSurface();
40 void Present();
41 void Scroll(const nsIntPoint &aDelta, const nsIntRect &aClip);
43 virtual const gfxIntSize GetSize() const;
45 ID3D10Texture2D *GetTexture();
47 HDC GetDC(bool aRetainContents);
48 void ReleaseDC(const nsIntRect *aUpdatedRect);
49 };
51 #endif /* GFX_D2DSURFACE_H */