| OLD | NEW |
| 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 "ios/chrome/browser/application_context_impl.h" | 5 #include "ios/chrome/browser/application_context_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 // SafeBrowsing before the IO thread gets destroyed, since their destructors | 126 // SafeBrowsing before the IO thread gets destroyed, since their destructors |
| 127 // can call the URLFetcher destructor, which does a PostDelayedTask operation | 127 // can call the URLFetcher destructor, which does a PostDelayedTask operation |
| 128 // on the IO thread. (The IO thread will handle that URLFetcher operation | 128 // on the IO thread. (The IO thread will handle that URLFetcher operation |
| 129 // before going away.) | 129 // before going away.) |
| 130 if (safe_browsing_service_) | 130 if (safe_browsing_service_) |
| 131 safe_browsing_service_->ShutDown(); | 131 safe_browsing_service_->ShutDown(); |
| 132 | 132 |
| 133 metrics_services_manager_.reset(); | 133 metrics_services_manager_.reset(); |
| 134 | 134 |
| 135 // Need to clear browser states before the IO thread. | 135 // Need to clear browser states before the IO thread. |
| 136 if (chrome_browser_state_manager_) { | 136 chrome_browser_state_manager_.reset(); |
| 137 // TODO(crbug.com/560854): the ShutDown() method can be folded into the | |
| 138 // destructor once ApplicationContextImpl owns ChromeBrowserStateManager. | |
| 139 chrome_browser_state_manager_->ShutDown(); | |
| 140 chrome_browser_state_manager_.reset(); | |
| 141 } | |
| 142 | 137 |
| 143 // PromoResourceService must be destroyed after the keyed services and before | 138 // PromoResourceService must be destroyed after the keyed services and before |
| 144 // the IO thread. | 139 // the IO thread. |
| 145 promo_resource_service_.reset(); | 140 promo_resource_service_.reset(); |
| 146 | 141 |
| 147 // The GCMDriver must shut down while the IO thread is still alive. | 142 // The GCMDriver must shut down while the IO thread is still alive. |
| 148 if (gcm_driver_) | 143 if (gcm_driver_) |
| 149 gcm_driver_->Shutdown(); | 144 gcm_driver_->Shutdown(); |
| 150 | 145 |
| 151 if (local_state_) { | 146 if (local_state_) { |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 390 worker_pool->GetSequenceToken(), | 385 worker_pool->GetSequenceToken(), |
| 391 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)); | 386 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)); |
| 392 | 387 |
| 393 gcm_driver_ = gcm::CreateGCMDriverDesktop( | 388 gcm_driver_ = gcm::CreateGCMDriverDesktop( |
| 394 make_scoped_ptr(new gcm::GCMClientFactory), GetLocalState(), store_path, | 389 make_scoped_ptr(new gcm::GCMClientFactory), GetLocalState(), store_path, |
| 395 GetSystemURLRequestContext(), ::GetChannel(), | 390 GetSystemURLRequestContext(), ::GetChannel(), |
| 396 web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), | 391 web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), |
| 397 web::WebThread::GetTaskRunnerForThread(web::WebThread::IO), | 392 web::WebThread::GetTaskRunnerForThread(web::WebThread::IO), |
| 398 blocking_task_runner); | 393 blocking_task_runner); |
| 399 } | 394 } |
| OLD | NEW |