Index: chrome/browser/browser_process_impl.cc |
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc |
index 574a2f891ffafdf69984db1caac429d6bb9a236a..55dc1ee0873b3205efc0cdd95024facb70838e74 100644 |
--- a/chrome/browser/browser_process_impl.cc |
+++ b/chrome/browser/browser_process_impl.cc |
@@ -114,6 +114,7 @@ |
#if defined(OS_CHROMEOS) |
#include "chrome/browser/chromeos/memory/oom_priority_manager.h" |
+#include "chrome/browser/chromeos/settings/device_oauth2_token_service.h" |
#endif // defined(OS_CHROMEOS) |
#if defined(ENABLE_PLUGIN_INSTALLATION) |
@@ -274,6 +275,11 @@ void BrowserProcessImpl::StartTearDown() { |
#if defined(OS_MACOSX) |
app_shim_host_manager_.reset(); |
#endif |
+ |
+#if defined(OS_CHROMEOS) |
+ // Terminate any in-flight token requests before the IO thread shuts down. |
+ device_oauth2_token_service_.reset(); |
+#endif |
} |
void BrowserProcessImpl::PostDestroyThreads() { |
@@ -456,6 +462,17 @@ chromeos::OomPriorityManager* BrowserProcessImpl::oom_priority_manager() { |
oom_priority_manager_.reset(new chromeos::OomPriorityManager()); |
return oom_priority_manager_.get(); |
} |
+ |
+chromeos::DeviceOAuth2TokenService* |
+ BrowserProcessImpl::device_oauth2_token_service() { |
+ DCHECK(CalledOnValidThread()); |
+ if (!device_oauth2_token_service_.get()) { |
+ device_oauth2_token_service_.reset( |
+ new chromeos::DeviceOAuth2TokenService(system_request_context(), |
+ local_state())); |
+ } |
+ return device_oauth2_token_service_.get(); |
+} |
#endif // defined(OS_CHROMEOS) |
extensions::EventRouterForwarder* |