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

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

Issue 1063893002: DirectWrite: Removed font file name limit when loading from registry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 769 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 base::string16 name; 780 base::string16 name;
781 base::string16 value; 781 base::string16 value;
782 for (DWORD idx = 0; idx < regkey.GetValueCount(); idx++) { 782 for (DWORD idx = 0; idx < regkey.GetValueCount(); idx++) {
783 if (regkey.GetValueNameAt(idx, &name) == ERROR_SUCCESS && 783 if (regkey.GetValueNameAt(idx, &name) == ERROR_SUCCESS &&
784 regkey.ReadValue(name.c_str(), &value) == ERROR_SUCCESS) { 784 regkey.ReadValue(name.c_str(), &value) == ERROR_SUCCESS) {
785 base::FilePath path(value.c_str()); 785 base::FilePath path(value.c_str());
786 // We need to check if file name is the only component that exists, 786 // We need to check if file name is the only component that exists,
787 // we will ignore all other registry entries. 787 // we will ignore all other registry entries.
788 std::vector<base::FilePath::StringType> components; 788 std::vector<base::FilePath::StringType> components;
789 path.GetComponents(&components); 789 path.GetComponents(&components);
790 if ((components.size() == 1 && 790 if (components.size() == 1 ||
791 value.size() < kMaxFontFileNameLength - 1) ||
792 base::FilePath::CompareEqualIgnoreCase(system_font_path.value(), 791 base::FilePath::CompareEqualIgnoreCase(system_font_path.value(),
793 path.DirName().value())) { 792 path.DirName().value())) {
794 bool should_ignore = false; 793 bool should_ignore = false;
795 for (const auto& ignore : kFontsToIgnore) { 794 for (const auto& ignore : kFontsToIgnore) {
796 if (base::FilePath::CompareEqualIgnoreCase(path.value(), ignore)) { 795 if (base::FilePath::CompareEqualIgnoreCase(path.value(), ignore)) {
797 should_ignore = true; 796 should_ignore = true;
798 break; 797 break;
799 } 798 }
800 } 799 }
801 if (!should_ignore) 800 if (!should_ignore)
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
1203 g_shared_font_cache.Set(mapping); 1202 g_shared_font_cache.Set(mapping);
1204 1203
1205 return true; 1204 return true;
1206 } 1205 }
1207 1206
1208 bool BuildFontCache(const base::FilePath& file) { 1207 bool BuildFontCache(const base::FilePath& file) {
1209 return BuildFontCacheInternal(file.value().c_str()); 1208 return BuildFontCacheInternal(file.value().c_str());
1210 } 1209 }
1211 1210
1212 } // namespace content 1211 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698