Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Side by Side Diff: content/common/font_cache_dispatcher_win.cc

Issue 1308823002: Move Singleton and related structs to namespace base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ToT Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/font_cache_dispatcher_win.h" 5 #include "content/common/font_cache_dispatcher_win.h"
6 6
7 #include <map> 7 #include <map>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/profiler/scoped_tracker.h" 11 #include "base/profiler/scoped_tracker.h"
12 #include "base/strings/string16.h" 12 #include "base/strings/string16.h"
13 #include "content/common/child_process_messages.h" 13 #include "content/common/child_process_messages.h"
14 14
15 namespace content { 15 namespace content {
16 namespace { 16 namespace {
17 typedef std::vector<base::string16> FontNameVector; 17 typedef std::vector<base::string16> FontNameVector;
18 typedef std::map<FontCacheDispatcher*, FontNameVector> DispatcherToFontNames; 18 typedef std::map<FontCacheDispatcher*, FontNameVector> DispatcherToFontNames;
19 19
20 class FontCache { 20 class FontCache {
21 public: 21 public:
22 static FontCache* GetInstance() { 22 static FontCache* GetInstance() { return base::Singleton<FontCache>::get(); }
23 return Singleton<FontCache>::get();
24 }
25 23
26 void PreCacheFont(const LOGFONT& font, FontCacheDispatcher* dispatcher) { 24 void PreCacheFont(const LOGFONT& font, FontCacheDispatcher* dispatcher) {
27 // TODO(ananta): Remove ScopedTracker below once crbug.com/90127 is fixed. 25 // TODO(ananta): Remove ScopedTracker below once crbug.com/90127 is fixed.
28 tracked_objects::ScopedTracker tracking_profile( 26 tracked_objects::ScopedTracker tracking_profile(
29 FROM_HERE_WITH_EXPLICIT_FUNCTION("90127 FontCache::PreCacheFont")); 27 FROM_HERE_WITH_EXPLICIT_FUNCTION("90127 FontCache::PreCacheFont"));
30 28
31 base::AutoLock lock(mutex_); 29 base::AutoLock lock(mutex_);
32 30
33 // Fetch the font into memory. 31 // Fetch the font into memory.
34 // No matter the font is cached or not, we load it to avoid GDI swapping out 32 // No matter the font is cached or not, we load it to avoid GDI swapping out
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 if (dc_) { 114 if (dc_) {
117 ReleaseDC(NULL, dc_); 115 ReleaseDC(NULL, dc_);
118 } 116 }
119 } 117 }
120 118
121 HFONT font_; 119 HFONT font_;
122 HGDIOBJ old_font_; 120 HGDIOBJ old_font_;
123 HDC dc_; 121 HDC dc_;
124 int ref_count_; 122 int ref_count_;
125 }; 123 };
126 friend struct DefaultSingletonTraits<FontCache>; 124 friend struct base::DefaultSingletonTraits<FontCache>;
127 125
128 FontCache() { 126 FontCache() {
129 } 127 }
130 128
131 std::map<base::string16, CacheElement> cache_; 129 std::map<base::string16, CacheElement> cache_;
132 DispatcherToFontNames dispatcher_font_map_; 130 DispatcherToFontNames dispatcher_font_map_;
133 base::Lock mutex_; 131 base::Lock mutex_;
134 132
135 DISALLOW_COPY_AND_ASSIGN(FontCache); 133 DISALLOW_COPY_AND_ASSIGN(FontCache);
136 }; 134 };
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 FontCache::GetInstance()->PreCacheFont(font, this); 186 FontCache::GetInstance()->PreCacheFont(font, this);
189 } 187 }
190 188
191 void FontCacheDispatcher::OnReleaseCachedFonts() { 189 void FontCacheDispatcher::OnReleaseCachedFonts() {
192 // Release cached fonts that requested from a pid by decrementing the ref 190 // Release cached fonts that requested from a pid by decrementing the ref
193 // count. When ref count is zero, the handles are released. 191 // count. When ref count is zero, the handles are released.
194 FontCache::GetInstance()->ReleaseCachedFonts(this); 192 FontCache::GetInstance()->ReleaseCachedFonts(this);
195 } 193 }
196 194
197 } // namespace content 195 } // namespace content
OLDNEW
« no previous file with comments | « content/child/child_io_surface_manager_mac.cc ('k') | content/common/sandbox_linux/sandbox_linux.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698