blob: 756c8c221e52b70bcae2a897e6a26307cf27a983 [file] [log] [blame]
// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "temp_scaffolding_stubs.h"
#include "base/file_util.h"
#include "base/thread.h"
#include "base/path_service.h"
#include "base/singleton.h"
#include "chrome/browser/plugin_service.h"
#include "chrome/browser/shell_integration.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/pref_service.h"
BrowserProcessImpl::BrowserProcessImpl(CommandLine& command_line)
: created_local_state_(), created_metrics_service_(),
created_profile_manager_() {
g_browser_process = this;
}
BrowserProcessImpl::~BrowserProcessImpl() {
g_browser_process = NULL;
}
void BrowserProcessImpl::CreateLocalState() {
DCHECK(!created_local_state_ && local_state_.get() == NULL);
created_local_state_ = true;
std::wstring local_state_path;
PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path);
local_state_.reset(new PrefService(local_state_path));
}
void BrowserProcessImpl::CreateMetricsService() {
DCHECK(!created_metrics_service_ && metrics_service_.get() == NULL);
created_metrics_service_ = true;
metrics_service_.reset(new MetricsService);
}
void BrowserProcessImpl::CreateProfileManager() {
DCHECK(!created_profile_manager_ && profile_manager_.get() == NULL);
created_profile_manager_ = true;
profile_manager_.reset(new ProfileManager());
}
MetricsService* BrowserProcessImpl::metrics_service() {
if (!created_metrics_service_)
CreateMetricsService();
return metrics_service_.get();
}
ProfileManager* BrowserProcessImpl::profile_manager() {
if (!created_profile_manager_)
CreateProfileManager();
return profile_manager_.get();
}
PrefService* BrowserProcessImpl::local_state() {
if (!created_local_state_)
CreateLocalState();
return local_state_.get();
}
//--------------------------------------------------------------------------
static bool s_in_startup = false;
bool BrowserInit::ProcessCommandLine(const CommandLine& parsed_command_line,
const std::wstring& cur_dir,
PrefService* prefs, bool process_startup,
Profile* profile, int* return_code) {
return LaunchBrowser(parsed_command_line, profile, cur_dir,
process_startup, return_code);
}
bool BrowserInit::LaunchBrowser(const CommandLine& parsed_command_line,
Profile* profile, const std::wstring& cur_dir,
bool process_startup, int* return_code) {
s_in_startup = process_startup;
bool result = LaunchBrowserImpl(parsed_command_line, profile, cur_dir,
process_startup, return_code);
s_in_startup = false;
return result;
}
bool BrowserInit::LaunchBrowserImpl(const CommandLine& parsed_command_line,
Profile* profile,
const std::wstring& cur_dir,
bool process_startup,
int* return_code) {
DCHECK(profile);
// LAUNCH BROWSER WITH PROFILE HERE!
return true;
}
//--------------------------------------------------------------------------
UserDataManager* UserDataManager::instance_ = NULL;
void UserDataManager::Create() {
DCHECK(!instance_);
std::wstring user_data;
PathService::Get(chrome::DIR_USER_DATA, &user_data);
instance_ = new UserDataManager(user_data);
}
UserDataManager* UserDataManager::Get() {
DCHECK(instance_);
return instance_;
}
//--------------------------------------------------------------------------
std::wstring ProfileManager::GetDefaultProfileDir(
const std::wstring& user_data_dir) {
std::wstring default_profile_dir(user_data_dir);
file_util::AppendToPath(&default_profile_dir, chrome::kNotSignedInProfile);
return default_profile_dir;
}
std::wstring ProfileManager::GetDefaultProfilePath(
const std::wstring &profile_dir) {
std::wstring default_prefs_path(profile_dir);
file_util::AppendToPath(&default_prefs_path, chrome::kPreferencesFilename);
return default_prefs_path;
}
Profile* ProfileManager::GetDefaultProfile(const std::wstring& user_data_dir) {
std::wstring default_profile_dir = GetDefaultProfileDir(user_data_dir);
return new Profile(default_profile_dir);
}
//--------------------------------------------------------------------------
Profile::Profile(const std::wstring& path)
: path_(path) {
}
std::wstring Profile::GetPrefFilePath() {
std::wstring pref_file_path = path_;
file_util::AppendToPath(&pref_file_path, chrome::kPreferencesFilename);
return pref_file_path;
}
PrefService* Profile::GetPrefs() {
if (!prefs_.get())
prefs_.reset(new PrefService(GetPrefFilePath()));
return prefs_.get();
}
//--------------------------------------------------------------------------
bool ShellIntegration::SetAsDefaultBrowser() {
return true;
}
bool ShellIntegration::IsDefaultBrowser() {
return true;
}
//--------------------------------------------------------------------------
namespace browser {
void RegisterAllPrefs(PrefService*, PrefService*) { }
} // namespace browser
namespace browser_shutdown {
void ReadLastShutdownInfo() { }
void Shutdown() { }
}
void OpenFirstRunDialog(Profile* profile) { }
//--------------------------------------------------------------------------
PluginService* PluginService::GetInstance() {
return Singleton<PluginService>::get();
}
PluginService::PluginService()
: main_message_loop_(MessageLoop::current()),
resource_dispatcher_host_(NULL),
ui_locale_(g_browser_process->GetApplicationLocale()),
plugin_shutdown_handler_(NULL) {
}
PluginService::~PluginService() {
}
void PluginService::SetChromePluginDataDir(const std::wstring& data_dir) {
AutoLock lock(lock_);
chrome_plugin_data_dir_ = data_dir;
}
//--------------------------------------------------------------------------
void InstallJankometer(const CommandLine&) {
}