1 // Copyright (c) 2012 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/browser_context_keyed_service/refcounted_browser_context_keyed_service.h" 6 7 namespace impl { 8 9 // static 10 void 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 22 RefcountedBrowserContextKeyedService::RefcountedBrowserContextKeyedService() 23 : requires_destruction_on_thread_(false), 24 thread_id_(content::BrowserThread::UI) { 25 } 26 27 RefcountedBrowserContextKeyedService::RefcountedBrowserContextKeyedService( 28 const content::BrowserThread::ID thread_id) 29 : requires_destruction_on_thread_(true), 30 thread_id_(thread_id) { 31 } 32 33 RefcountedBrowserContextKeyedService::~RefcountedBrowserContextKeyedService() {} 34 35