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 7namespace impl { 8 9// static 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 22RefcountedBrowserContextKeyedService::RefcountedBrowserContextKeyedService() 23 : requires_destruction_on_thread_(false), 24 thread_id_(content::BrowserThread::UI) { 25} 26 27RefcountedBrowserContextKeyedService::RefcountedBrowserContextKeyedService( 28 const content::BrowserThread::ID thread_id) 29 : requires_destruction_on_thread_(true), 30 thread_id_(thread_id) { 31} 32 33RefcountedBrowserContextKeyedService::~RefcountedBrowserContextKeyedService() {} 34 35