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 "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h" 6 7#include "chrome/browser/browser_process.h" 8#include "chrome/browser/chromeos/settings/device_oauth2_token_service.h" 9#include "chrome/browser/chromeos/settings/token_encryptor.h" 10#include "chromeos/cryptohome/system_salt_getter.h" 11#include "content/public/browser/browser_thread.h" 12 13namespace chromeos { 14 15namespace { 16 17static DeviceOAuth2TokenService* g_device_oauth2_token_service_ = NULL; 18 19} // namespace 20 21// static 22DeviceOAuth2TokenService* DeviceOAuth2TokenServiceFactory::Get() { 23 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 24 return g_device_oauth2_token_service_; 25} 26 27// static 28void DeviceOAuth2TokenServiceFactory::Initialize() { 29 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 30 DCHECK(!g_device_oauth2_token_service_); 31 g_device_oauth2_token_service_ = new DeviceOAuth2TokenService( 32 g_browser_process->system_request_context(), 33 g_browser_process->local_state()); 34} 35 36// static 37void DeviceOAuth2TokenServiceFactory::Shutdown() { 38 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 39 if (g_device_oauth2_token_service_) { 40 delete g_device_oauth2_token_service_; 41 g_device_oauth2_token_service_ = NULL; 42 } 43} 44 45} // namespace chromeos 46