Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
2 /*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
10 #ifndef SkGraphics_DEFINED
11 #define SkGraphics_DEFINED
13 #include "SkTypes.h"
15 class SK_API SkGraphics {
16 public:
17 /**
18 * Call this at process initialization time if your environment does not
19 * permit static global initializers that execute code. Note that
20 * Init() is not thread-safe.
21 */
22 static void Init();
24 /**
25 * Call this to release any memory held privately, such as the font cache.
26 */
27 static void Term();
29 /**
30 * Return the version numbers for the library. If the parameter is not
31 * null, it is set to the version number.
32 */
33 static void GetVersion(int32_t* major, int32_t* minor, int32_t* patch);
35 /**
36 * Return the max number of bytes that should be used by the font cache.
37 * If the cache needs to allocate more, it will purge previous entries.
38 * This max can be changed by calling SetFontCacheLimit().
39 */
40 static size_t GetFontCacheLimit();
42 /**
43 * Specify the max number of bytes that should be used by the font cache.
44 * If the cache needs to allocate more, it will purge previous entries.
45 *
46 * This function returns the previous setting, as if GetFontCacheLimit()
47 * had be called before the new limit was set.
48 */
49 static size_t SetFontCacheLimit(size_t bytes);
51 /**
52 * Return the number of bytes currently used by the font cache.
53 */
54 static size_t GetFontCacheUsed();
56 /**
57 * Return the number of entries in the font cache.
58 * A cache "entry" is associated with each typeface + pointSize + matrix.
59 */
60 static int GetFontCacheCountUsed();
62 /**
63 * Return the current limit to the number of entries in the font cache.
64 * A cache "entry" is associated with each typeface + pointSize + matrix.
65 */
66 static int GetFontCacheCountLimit();
68 /**
69 * Set the limit to the number of entries in the font cache, and return
70 * the previous value. If this new value is lower than the previous,
71 * it will automatically try to purge entries to meet the new limit.
72 */
73 static int SetFontCacheCountLimit(int count);
75 /**
76 * For debugging purposes, this will attempt to purge the font cache. It
77 * does not change the limit, but will cause subsequent font measures and
78 * draws to be recreated, since they will no longer be in the cache.
79 */
80 static void PurgeFontCache();
82 static size_t GetImageCacheBytesUsed();
83 static size_t GetImageCacheByteLimit();
84 static size_t SetImageCacheByteLimit(size_t newLimit);
86 /**
87 * Applications with command line options may pass optional state, such
88 * as cache sizes, here, for instance:
89 * font-cache-limit=12345678
90 *
91 * The flags format is name=value[;name=value...] with no spaces.
92 * This format is subject to change.
93 */
94 static void SetFlags(const char* flags);
96 /**
97 * Return the max number of bytes that should be used by the thread-local
98 * font cache.
99 * If the cache needs to allocate more, it will purge previous entries.
100 * This max can be changed by calling SetFontCacheLimit().
101 *
102 * If this thread has never called SetTLSFontCacheLimit, or has called it
103 * with 0, then this thread is using the shared font cache. In that case,
104 * this function will always return 0, and the caller may want to call
105 * GetFontCacheLimit.
106 */
107 static size_t GetTLSFontCacheLimit();
109 /**
110 * Specify the max number of bytes that should be used by the thread-local
111 * font cache. If this value is 0, then this thread will use the shared
112 * global font cache.
113 */
114 static void SetTLSFontCacheLimit(size_t bytes);
116 private:
117 /** This is automatically called by SkGraphics::Init(), and must be
118 implemented by the host OS. This allows the host OS to register a callback
119 with the C++ runtime to call SkGraphics::FreeCaches()
120 */
121 static void InstallNewHandler();
122 };
124 class SkAutoGraphics {
125 public:
126 SkAutoGraphics() {
127 SkGraphics::Init();
128 }
129 ~SkAutoGraphics() {
130 SkGraphics::Term();
131 }
132 };
134 #endif