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 file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef GFXMEMCOWSURFACEWRAPPER
6 #define GFXMEMCOWSURFACEWRAPPER
8 #include "gfxReusableSurfaceWrapper.h"
10 class gfxImageSurface;
12 /**
13 * A cross-thread capable implementation of gfxReusableSurfaceWrapper based
14 * on gfxImageSurface.
15 */
16 class gfxReusableImageSurfaceWrapper : public gfxReusableSurfaceWrapper {
17 public:
18 gfxReusableImageSurfaceWrapper(gfxImageSurface* aSurface);
19 ~gfxReusableImageSurfaceWrapper();
21 const unsigned char* GetReadOnlyData() const MOZ_OVERRIDE;
22 gfxImageFormat Format() MOZ_OVERRIDE;
23 gfxReusableSurfaceWrapper* GetWritable(gfxImageSurface** aSurface) MOZ_OVERRIDE;
24 void ReadLock() MOZ_OVERRIDE;
25 void ReadUnlock() MOZ_OVERRIDE;
27 Type GetType()
28 {
29 return TYPE_IMAGE;
30 }
32 private:
33 nsRefPtr<gfxImageSurface> mSurface;
34 };
36 #endif // GFXMEMCOWSURFACEWRAPPER