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 3 // found in the LICENSE file. 4 5 #include "components/keyed_service/content/refcounted_browser_context_keyed_service.h" 6 7 namespace impl { 8 9 // static Destruct(const RefcountedBrowserContextKeyedService * obj)10void RefcountedBrowserContextKeyedServiceTraits::Destruct( 11 const RefcountedBrowserContextKeyedService* obj) { 12 if (obj->requires_destruction_on_thread_ && 13 !content::BrowserThread::CurrentlyOn(obj->thread_id_)) { 14 content::BrowserThread::DeleteSoon(obj->thread_id_, FROM_HERE, obj); 15 } else { 16 delete obj; 17 } 18 } 19 20 } // namespace impl 21 RefcountedBrowserContextKeyedService()22RefcountedBrowserContextKeyedService::RefcountedBrowserContextKeyedService() 23 : requires_destruction_on_thread_(false), 24 thread_id_(content::BrowserThread::UI) {} 25 RefcountedBrowserContextKeyedService(const content::BrowserThread::ID thread_id)26RefcountedBrowserContextKeyedService::RefcountedBrowserContextKeyedService( 27 const content::BrowserThread::ID thread_id) 28 : requires_destruction_on_thread_(true), thread_id_(thread_id) {} 29 ~RefcountedBrowserContextKeyedService()30RefcountedBrowserContextKeyedService::~RefcountedBrowserContextKeyedService() {} 31