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 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 26RefcountedBrowserContextKeyedService::RefcountedBrowserContextKeyedService( 27 const content::BrowserThread::ID thread_id) 28 : requires_destruction_on_thread_(true), thread_id_(thread_id) {} 29 30RefcountedBrowserContextKeyedService::~RefcountedBrowserContextKeyedService() {} 31