Index: chrome/browser/browser_process_impl.cc |
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc |
index 330ff8abb1d6d778691b7b3b7353f29dd483755a..53d73e9f20e97076d78d411fa33f383b531e3d6f 100644 |
--- a/chrome/browser/browser_process_impl.cc |
+++ b/chrome/browser/browser_process_impl.cc |
@@ -183,7 +183,8 @@ BrowserProcessImpl::BrowserProcessImpl( |
module_ref_count_(0), |
did_start_(false), |
download_status_updater_(new DownloadStatusUpdater), |
- local_state_task_runner_(local_state_task_runner) { |
+ local_state_task_runner_(local_state_task_runner), |
+ cached_default_web_client_state_(ShellIntegration::UNKNOWN_DEFAULT) { |
g_browser_process = this; |
platform_part_.reset(new BrowserProcessPlatformPart()); |
@@ -782,6 +783,11 @@ memory::OomPriorityManager* BrowserProcessImpl::GetOomPriorityManager() { |
#endif |
} |
+ShellIntegration::DefaultWebClientState |
+BrowserProcessImpl::CachedDefaultWebClientState() { |
+ return cached_default_web_client_state_; |
+} |
+ |
// static |
void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) { |
registry->RegisterBooleanPref(prefs::kDefaultBrowserSettingEnabled, |
@@ -1081,6 +1087,8 @@ void BrowserProcessImpl::PreMainMessageLoopRun() { |
child_process_watcher_.reset(new ChromeChildProcessWatcher()); |
+ CacheDefaultWebClientState(); |
+ |
platform_part_->PreMainMessageLoopRun(); |
} |
@@ -1192,6 +1200,14 @@ void BrowserProcessImpl::ApplyMetricsReportingPolicy() { |
#endif |
} |
+void BrowserProcessImpl::CacheDefaultWebClientState() { |
+#if defined(OS_CHROMEOS) |
+ cached_default_web_client_state_ = ShellIntegration::IS_DEFAULT; |
+#elif !defined(OS_ANDROID) && !defined(OS_IOS) |
+ cached_default_web_client_state_ = ShellIntegration::GetDefaultBrowser(); |
+#endif |
+} |
+ |
// Mac is currently not supported. |
#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) |