| OLD | NEW |
| 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_browser_main_win.h" | 5 #include "chrome/browser/chrome_browser_main_win.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 #include <shellapi.h> | 8 #include <shellapi.h> |
| 9 #include <stddef.h> | 9 #include <stddef.h> |
| 10 | 10 |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 } | 108 } |
| 109 | 109 |
| 110 class TranslationDelegate : public installer::TranslationDelegate { | 110 class TranslationDelegate : public installer::TranslationDelegate { |
| 111 public: | 111 public: |
| 112 base::string16 GetLocalizedString(int installer_string_id) override; | 112 base::string16 GetLocalizedString(int installer_string_id) override; |
| 113 }; | 113 }; |
| 114 | 114 |
| 115 void ExecuteFontCacheBuildTask(const base::FilePath& path) { | 115 void ExecuteFontCacheBuildTask(const base::FilePath& path) { |
| 116 base::WeakPtr<content::UtilityProcessHost> utility_process_host( | 116 base::WeakPtr<content::UtilityProcessHost> utility_process_host( |
| 117 content::UtilityProcessHost::Create(NULL, NULL)->AsWeakPtr()); | 117 content::UtilityProcessHost::Create(NULL, NULL)->AsWeakPtr()); |
| 118 utility_process_host->SetName(l10n_util::GetStringUTF16( | 118 utility_process_host->SetName( |
| 119 IDS_UTILITY_PROCESS_FONT_CACHE_BUILDER_NAME)); | 119 l10n_util::GetStringUTF16(IDS_UTILITY_PROCESS_FONT_CACHE_BUILDER_NAME)); |
| 120 utility_process_host->DisableSandbox(); | 120 utility_process_host->DisableSandbox(); |
| 121 utility_process_host->Send( | 121 utility_process_host->Send( |
| 122 new ChromeUtilityHostMsg_BuildDirectWriteFontCache(path)); | 122 new ChromeUtilityHostMsg_BuildDirectWriteFontCache(path)); |
| 123 } | 123 } |
| 124 | 124 |
| 125 #if defined(KASKO) | 125 #if defined(KASKO) |
| 126 void ObserveFailedCrashReportDirectory(const base::FilePath& path, bool error) { | 126 void ObserveFailedCrashReportDirectory(const base::FilePath& path, bool error) { |
| 127 DCHECK(!error); | 127 DCHECK(!error); |
| 128 if (error) | 128 if (error) |
| 129 return; | 129 return; |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 ui::MessageBox(NULL, | 337 ui::MessageBox(NULL, |
| 338 base::ASCIIToUTF16(chrome_browser::kMissingLocaleDataMessage), | 338 base::ASCIIToUTF16(chrome_browser::kMissingLocaleDataMessage), |
| 339 base::ASCIIToUTF16(chrome_browser::kMissingLocaleDataTitle), | 339 base::ASCIIToUTF16(chrome_browser::kMissingLocaleDataTitle), |
| 340 MB_OK | MB_ICONERROR | MB_TOPMOST); | 340 MB_OK | MB_ICONERROR | MB_TOPMOST); |
| 341 } | 341 } |
| 342 | 342 |
| 343 void ChromeBrowserMainPartsWin::PostProfileInit() { | 343 void ChromeBrowserMainPartsWin::PostProfileInit() { |
| 344 ChromeBrowserMainParts::PostProfileInit(); | 344 ChromeBrowserMainParts::PostProfileInit(); |
| 345 | 345 |
| 346 // DirectWrite support is mainly available Windows 7 and up. | 346 // DirectWrite support is mainly available Windows 7 and up. |
| 347 if (gfx::win::ShouldUseDirectWrite()) { | 347 // Skip loading the font cache if we are using the font proxy field trial. |
| 348 if (gfx::win::ShouldUseDirectWrite() && |
| 349 !content::ShouldUseDirectWriteFontProxyFieldTrial()) { |
| 348 base::FilePath path( | 350 base::FilePath path( |
| 349 profile()->GetPath().AppendASCII(content::kFontCacheSharedSectionName)); | 351 profile()->GetPath().AppendASCII(content::kFontCacheSharedSectionName)); |
| 350 // This function will create a read only section if cache file exists | 352 // This function will create a read only section if cache file exists |
| 351 // otherwise it will spawn utility process to build cache file, which will | 353 // otherwise it will spawn utility process to build cache file, which will |
| 352 // be used during next browser start/postprofileinit. | 354 // be used during next browser start/postprofileinit. |
| 353 if (!content::LoadFontCache(path)) { | 355 if (!content::LoadFontCache(path)) { |
| 354 // We delay building of font cache until first startup page loads. | 356 // We delay building of font cache until first startup page loads. |
| 355 // During first renderer start there are lot of things happening | 357 // During first renderer start there are lot of things happening |
| 356 // simultaneously some of them are: | 358 // simultaneously some of them are: |
| 357 // - Renderer is going through all font files on the system to create | 359 // - Renderer is going through all font files on the system to create a |
| 358 // a font collection. | 360 // font collection. |
| 359 // - Renderer loading up startup URL, accessing HTML/JS File cache, | 361 // - Renderer loading up startup URL, accessing HTML/JS File cache, net |
| 360 // net activity etc. | 362 // activity etc. |
| 361 // - Extension initialization. | 363 // - Extension initialization. |
| 362 // We delay building of cache mainly to avoid parallel font file | 364 // We delay building of cache mainly to avoid parallel font file loading |
| 363 // loading along with Renderer. Some systems have significant number of | 365 // along with Renderer. Some systems have significant number of font files |
| 364 // font files which takes long time to process. | 366 // which takes long time to process. |
| 365 // Related information is at http://crbug.com/436195. | 367 // Related information is at http://crbug.com/436195. |
| 366 const int kBuildFontCacheDelaySec = 30; | 368 const int kBuildFontCacheDelaySec = 30; |
| 367 content::BrowserThread::PostDelayedTask( | 369 content::BrowserThread::PostDelayedTask( |
| 368 content::BrowserThread::IO, | 370 content::BrowserThread::IO, |
| 369 FROM_HERE, | 371 FROM_HERE, |
| 370 base::Bind(ExecuteFontCacheBuildTask, path), | 372 base::Bind(ExecuteFontCacheBuildTask, path), |
| 371 base::TimeDelta::FromSeconds(kBuildFontCacheDelaySec)); | 373 base::TimeDelta::FromSeconds(kBuildFontCacheDelaySec)); |
| 372 } | 374 } |
| 373 } | 375 } |
| 374 } | 376 } |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 574 if (resource_id) | 576 if (resource_id) |
| 575 return l10n_util::GetStringUTF16(resource_id); | 577 return l10n_util::GetStringUTF16(resource_id); |
| 576 return base::string16(); | 578 return base::string16(); |
| 577 } | 579 } |
| 578 | 580 |
| 579 // static | 581 // static |
| 580 void ChromeBrowserMainPartsWin::SetupInstallerUtilStrings() { | 582 void ChromeBrowserMainPartsWin::SetupInstallerUtilStrings() { |
| 581 CR_DEFINE_STATIC_LOCAL(TranslationDelegate, delegate, ()); | 583 CR_DEFINE_STATIC_LOCAL(TranslationDelegate, delegate, ()); |
| 582 installer::SetTranslationDelegate(&delegate); | 584 installer::SetTranslationDelegate(&delegate); |
| 583 } | 585 } |
| OLD | NEW |