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

Side by Side Diff: chrome/browser/chrome_content_browser_client.cc

Issue 439913002: Add a cache for FillFontFamilyMap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Minor unit test change. Created 6 years, 4 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 | chrome/browser/font_family_cache.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/chrome_content_browser_client.h" 5 #include "chrome/browser/chrome_content_browser_client.h"
6 6
7 #include <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 16 matching lines...) Expand all
27 #include "chrome/browser/chrome_quota_permission_context.h" 27 #include "chrome/browser/chrome_quota_permission_context.h"
28 #include "chrome/browser/content_settings/content_settings_utils.h" 28 #include "chrome/browser/content_settings/content_settings_utils.h"
29 #include "chrome/browser/content_settings/cookie_settings.h" 29 #include "chrome/browser/content_settings/cookie_settings.h"
30 #include "chrome/browser/content_settings/host_content_settings_map.h" 30 #include "chrome/browser/content_settings/host_content_settings_map.h"
31 #include "chrome/browser/content_settings/permission_request_id.h" 31 #include "chrome/browser/content_settings/permission_request_id.h"
32 #include "chrome/browser/content_settings/tab_specific_content_settings.h" 32 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
33 #include "chrome/browser/defaults.h" 33 #include "chrome/browser/defaults.h"
34 #include "chrome/browser/devtools/chrome_devtools_manager_delegate.h" 34 #include "chrome/browser/devtools/chrome_devtools_manager_delegate.h"
35 #include "chrome/browser/download/download_prefs.h" 35 #include "chrome/browser/download/download_prefs.h"
36 #include "chrome/browser/extensions/chrome_content_browser_client_extensions_par t.h" 36 #include "chrome/browser/extensions/chrome_content_browser_client_extensions_par t.h"
37 #include "chrome/browser/font_family_cache.h"
37 #include "chrome/browser/geolocation/chrome_access_token_store.h" 38 #include "chrome/browser/geolocation/chrome_access_token_store.h"
38 #include "chrome/browser/geolocation/geolocation_permission_context.h" 39 #include "chrome/browser/geolocation/geolocation_permission_context.h"
39 #include "chrome/browser/geolocation/geolocation_permission_context_factory.h" 40 #include "chrome/browser/geolocation/geolocation_permission_context_factory.h"
40 #include "chrome/browser/media/cast_transport_host_filter.h" 41 #include "chrome/browser/media/cast_transport_host_filter.h"
41 #include "chrome/browser/media/media_capture_devices_dispatcher.h" 42 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
42 #include "chrome/browser/media/midi_permission_context.h" 43 #include "chrome/browser/media/midi_permission_context.h"
43 #include "chrome/browser/media/midi_permission_context_factory.h" 44 #include "chrome/browser/media/midi_permission_context_factory.h"
44 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h" 45 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h"
45 #include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h" 46 #include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h"
46 #include "chrome/browser/net/chrome_net_log.h" 47 #include "chrome/browser/net/chrome_net_log.h"
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 return true; 418 return true;
418 419
419 std::string common_name; 420 std::string common_name;
420 if (filter.GetString("ISSUER.CN", &common_name) && 421 if (filter.GetString("ISSUER.CN", &common_name) &&
421 (cert.issuer().common_name == common_name)) { 422 (cert.issuer().common_name == common_name)) {
422 return true; 423 return true;
423 } 424 }
424 return false; 425 return false;
425 } 426 }
426 427
427 #if !defined(OS_ANDROID) 428 #if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
428 // Fills |map| with the per-script font prefs under path |map_name|.
429 void FillFontFamilyMap(const PrefService* prefs,
430 const char* map_name,
431 content::ScriptFontFamilyMap* map) {
432 // TODO(falken): Get rid of the brute-force scan over possible
433 // (font family / script) combinations - see http://crbug.com/308095.
434 for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) {
435 const char* script = prefs::kWebKitScriptsForFontFamilyMaps[i];
436 std::string pref_name = base::StringPrintf("%s.%s", map_name, script);
437 std::string font_family = prefs->GetString(pref_name.c_str());
438 if (!font_family.empty())
439 (*map)[script] = base::UTF8ToUTF16(font_family);
440 }
441 }
442
443 #if defined(OS_POSIX) && !defined(OS_MACOSX)
444 breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost( 429 breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost(
445 const std::string& process_type) { 430 const std::string& process_type) {
446 base::FilePath dumps_path; 431 base::FilePath dumps_path;
447 PathService::Get(chrome::DIR_CRASH_DUMPS, &dumps_path); 432 PathService::Get(chrome::DIR_CRASH_DUMPS, &dumps_path);
448 { 433 {
449 ANNOTATE_SCOPED_MEMORY_LEAK; 434 ANNOTATE_SCOPED_MEMORY_LEAK;
450 bool upload = (getenv(env_vars::kHeadless) == NULL); 435 bool upload = (getenv(env_vars::kHeadless) == NULL);
451 breakpad::CrashHandlerHostLinux* crash_handler = 436 breakpad::CrashHandlerHostLinux* crash_handler =
452 new breakpad::CrashHandlerHostLinux(process_type, dumps_path, upload); 437 new breakpad::CrashHandlerHostLinux(process_type, dumps_path, upload);
453 crash_handler->StartUploaderThread(); 438 crash_handler->StartUploaderThread();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 475
491 if (process_type == switches::kGpuProcess) { 476 if (process_type == switches::kGpuProcess) {
492 static breakpad::CrashHandlerHostLinux* crash_handler = NULL; 477 static breakpad::CrashHandlerHostLinux* crash_handler = NULL;
493 if (!crash_handler) 478 if (!crash_handler)
494 crash_handler = CreateCrashHandlerHost(process_type); 479 crash_handler = CreateCrashHandlerHost(process_type);
495 return crash_handler->GetDeathSignalSocket(); 480 return crash_handler->GetDeathSignalSocket();
496 } 481 }
497 482
498 return -1; 483 return -1;
499 } 484 }
500 #endif // defined(OS_POSIX) && !defined(OS_MACOSX) 485 #endif // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
501 #endif // !defined(OS_ANDROID)
502 486
503 #if !defined(OS_CHROMEOS) 487 #if !defined(OS_CHROMEOS)
504 GURL GetEffectiveURLForSignin(const GURL& url) { 488 GURL GetEffectiveURLForSignin(const GURL& url) {
505 CHECK(SigninManager::IsWebBasedSigninFlowURL(url)); 489 CHECK(SigninManager::IsWebBasedSigninFlowURL(url));
506 490
507 GURL effective_url(SigninManager::kChromeSigninEffectiveSite); 491 GURL effective_url(SigninManager::kChromeSigninEffectiveSite);
508 // Copy the path because the argument to SetPathStr must outlive 492 // Copy the path because the argument to SetPathStr must outlive
509 // the Replacements object. 493 // the Replacements object.
510 const std::string path_copy(url.path()); 494 const std::string path_copy(url.path());
511 GURL::Replacements replacements; 495 GURL::Replacements replacements;
(...skipping 1575 matching lines...) Expand 10 before | Expand all | Expand 10 after
2087 2071
2088 void ChromeContentBrowserClient::OverrideWebkitPrefs( 2072 void ChromeContentBrowserClient::OverrideWebkitPrefs(
2089 RenderViewHost* rvh, const GURL& url, WebPreferences* web_prefs) { 2073 RenderViewHost* rvh, const GURL& url, WebPreferences* web_prefs) {
2090 Profile* profile = Profile::FromBrowserContext( 2074 Profile* profile = Profile::FromBrowserContext(
2091 rvh->GetProcess()->GetBrowserContext()); 2075 rvh->GetProcess()->GetBrowserContext());
2092 PrefService* prefs = profile->GetPrefs(); 2076 PrefService* prefs = profile->GetPrefs();
2093 2077
2094 // Fill per-script font preferences. These are not registered on Android 2078 // Fill per-script font preferences. These are not registered on Android
2095 // - http://crbug.com/308033. 2079 // - http://crbug.com/308033.
2096 #if !defined(OS_ANDROID) 2080 #if !defined(OS_ANDROID)
2097 FillFontFamilyMap(prefs, prefs::kWebKitStandardFontFamilyMap, 2081 FontFamilyCache::FillFontFamilyMap(profile,
2098 &web_prefs->standard_font_family_map); 2082 prefs::kWebKitStandardFontFamilyMap,
2099 FillFontFamilyMap(prefs, prefs::kWebKitFixedFontFamilyMap, 2083 &web_prefs->standard_font_family_map);
2100 &web_prefs->fixed_font_family_map); 2084 FontFamilyCache::FillFontFamilyMap(profile,
2101 FillFontFamilyMap(prefs, prefs::kWebKitSerifFontFamilyMap, 2085 prefs::kWebKitFixedFontFamilyMap,
2102 &web_prefs->serif_font_family_map); 2086 &web_prefs->fixed_font_family_map);
2103 FillFontFamilyMap(prefs, prefs::kWebKitSansSerifFontFamilyMap, 2087 FontFamilyCache::FillFontFamilyMap(profile,
2104 &web_prefs->sans_serif_font_family_map); 2088 prefs::kWebKitSerifFontFamilyMap,
2105 FillFontFamilyMap(prefs, prefs::kWebKitCursiveFontFamilyMap, 2089 &web_prefs->serif_font_family_map);
2106 &web_prefs->cursive_font_family_map); 2090 FontFamilyCache::FillFontFamilyMap(profile,
2107 FillFontFamilyMap(prefs, prefs::kWebKitFantasyFontFamilyMap, 2091 prefs::kWebKitSansSerifFontFamilyMap,
2108 &web_prefs->fantasy_font_family_map); 2092 &web_prefs->sans_serif_font_family_map);
2109 FillFontFamilyMap(prefs, prefs::kWebKitPictographFontFamilyMap, 2093 FontFamilyCache::FillFontFamilyMap(profile,
2110 &web_prefs->pictograph_font_family_map); 2094 prefs::kWebKitCursiveFontFamilyMap,
2095 &web_prefs->cursive_font_family_map);
2096 FontFamilyCache::FillFontFamilyMap(profile,
2097 prefs::kWebKitFantasyFontFamilyMap,
2098 &web_prefs->fantasy_font_family_map);
2099 FontFamilyCache::FillFontFamilyMap(profile,
2100 prefs::kWebKitPictographFontFamilyMap,
2101 &web_prefs->pictograph_font_family_map);
2111 #endif 2102 #endif
2112 2103
2113 web_prefs->default_font_size = 2104 web_prefs->default_font_size =
2114 prefs->GetInteger(prefs::kWebKitDefaultFontSize); 2105 prefs->GetInteger(prefs::kWebKitDefaultFontSize);
2115 web_prefs->default_fixed_font_size = 2106 web_prefs->default_fixed_font_size =
2116 prefs->GetInteger(prefs::kWebKitDefaultFixedFontSize); 2107 prefs->GetInteger(prefs::kWebKitDefaultFixedFontSize);
2117 web_prefs->minimum_font_size = 2108 web_prefs->minimum_font_size =
2118 prefs->GetInteger(prefs::kWebKitMinimumFontSize); 2109 prefs->GetInteger(prefs::kWebKitMinimumFontSize);
2119 web_prefs->minimum_logical_font_size = 2110 web_prefs->minimum_logical_font_size =
2120 prefs->GetInteger(prefs::kWebKitMinimumLogicalFontSize); 2111 prefs->GetInteger(prefs::kWebKitMinimumLogicalFontSize);
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
2596 switches::kDisableWebRtcEncryption, 2587 switches::kDisableWebRtcEncryption,
2597 }; 2588 };
2598 to_command_line->CopySwitchesFrom(from_command_line, 2589 to_command_line->CopySwitchesFrom(from_command_line,
2599 kWebRtcDevSwitchNames, 2590 kWebRtcDevSwitchNames,
2600 arraysize(kWebRtcDevSwitchNames)); 2591 arraysize(kWebRtcDevSwitchNames));
2601 } 2592 }
2602 } 2593 }
2603 #endif // defined(ENABLE_WEBRTC) 2594 #endif // defined(ENABLE_WEBRTC)
2604 2595
2605 } // namespace chrome 2596 } // namespace chrome
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/font_family_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698