| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/public/common/dwrite_font_platform_win.h" | 5 #include "content/public/common/dwrite_font_platform_win.h" |
| 6 | 6 |
| 7 #include <dwrite.h> | 7 #include <dwrite.h> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 914 bool FontCollectionLoader::IsFileCached(UINT32 font_key) { | 914 bool FontCollectionLoader::IsFileCached(UINT32 font_key) { |
| 915 if (!cache_.get() || cache_->memory() == NULL) { | 915 if (!cache_.get() || cache_->memory() == NULL) { |
| 916 return false; | 916 return false; |
| 917 } | 917 } |
| 918 CacheMap::iterator iter = cache_map_.find( | 918 CacheMap::iterator iter = cache_map_.find( |
| 919 GetFontNameFromKey(font_key).c_str()); | 919 GetFontNameFromKey(font_key).c_str()); |
| 920 return iter != cache_map_.end();; | 920 return iter != cache_map_.end();; |
| 921 } | 921 } |
| 922 | 922 |
| 923 bool FontCollectionLoader::LoadCacheFile() { | 923 bool FontCollectionLoader::LoadCacheFile() { |
| 924 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( | 924 std::string font_cache_handle_string = |
| 925 switches::kFontCacheSharedMemSuffix)) { | 925 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
| 926 return false; | 926 switches::kFontCacheSharedHandle); |
| 927 } | 927 if (font_cache_handle_string.empty()) |
| 928 base::SharedMemory* shared_mem = new base::SharedMemory(); | |
| 929 std::string name(content::kFontCacheSharedSectionName); | |
| 930 name.append(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | |
| 931 switches::kFontCacheSharedMemSuffix)); | |
| 932 if (!shared_mem->Open(name.c_str(), true)) | |
| 933 return false; | 928 return false; |
| 934 | 929 |
| 930 base::SharedMemoryHandle font_cache_handle = NULL; |
| 931 base::StringToUint(font_cache_handle_string, |
| 932 reinterpret_cast<unsigned int*>(&font_cache_handle)); |
| 933 DCHECK(font_cache_handle); |
| 934 |
| 935 base::SharedMemory* shared_mem = new base::SharedMemory( |
| 936 font_cache_handle, true); |
| 935 // Map while file | 937 // Map while file |
| 936 shared_mem->Map(0); | 938 shared_mem->Map(0); |
| 937 | 939 |
| 938 cache_.reset(shared_mem); | 940 cache_.reset(shared_mem); |
| 939 | 941 |
| 940 if (!ValidateAndLoadCacheMap()) { | 942 if (!ValidateAndLoadCacheMap()) { |
| 941 cache_.reset(); | 943 cache_.reset(); |
| 942 return false; | 944 return false; |
| 943 } | 945 } |
| 944 | 946 |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1218 g_shared_font_cache.Set(mapping); | 1220 g_shared_font_cache.Set(mapping); |
| 1219 | 1221 |
| 1220 return true; | 1222 return true; |
| 1221 } | 1223 } |
| 1222 | 1224 |
| 1223 bool BuildFontCache(const base::FilePath& file) { | 1225 bool BuildFontCache(const base::FilePath& file) { |
| 1224 return BuildFontCacheInternal(file.value().c_str()); | 1226 return BuildFontCacheInternal(file.value().c_str()); |
| 1225 } | 1227 } |
| 1226 | 1228 |
| 1227 } // namespace content | 1229 } // namespace content |
| OLD | NEW |