diff options
Diffstat (limited to 'chromium/content/browser/service_process_host_impl.cc')
-rw-r--r-- | chromium/content/browser/service_process_host_impl.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/chromium/content/browser/service_process_host_impl.cc b/chromium/content/browser/service_process_host_impl.cc index 1d417b84d88..4fc39a84b36 100644 --- a/chromium/content/browser/service_process_host_impl.cc +++ b/chromium/content/browser/service_process_host_impl.cc @@ -79,7 +79,9 @@ class ServiceProcessTracker { } void RemoveObserver(ServiceProcessHost::Observer* observer) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); + // NOTE: Some tests may remove observers after BrowserThreads are shut down. + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || + !BrowserThread::IsThreadInitialized(BrowserThread::UI)); observers_.RemoveObserver(observer); } @@ -110,13 +112,11 @@ class ServiceProcessTracker { ServiceProcessId GenerateNextId() { DCHECK_CURRENTLY_ON(BrowserThread::IO); - auto id = next_id_; - next_id_ = ServiceProcessId::FromUnsafeValue(next_id_.GetUnsafeValue() + 1); - return id; + return service_process_id_generator_.GenerateNextId(); } const scoped_refptr<base::TaskRunner> ui_task_runner_; - ServiceProcessId next_id_{1}; + ServiceProcessId::Generator service_process_id_generator_; base::Lock processes_lock_; std::map<ServiceProcessId, ServiceProcessInfo> processes_; |