profiles_state.cc revision 9ab5563a3196760eb381d102cbb2bc0f7abc6a50
19ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
29ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
39ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch// found in the LICENSE file.
49ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
59ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "chrome/browser/profiles/profiles_state.h"
69ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
79ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/command_line.h"
89ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/files/file_path.h"
99ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/prefs/pref_registry_simple.h"
109ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "chrome/common/chrome_constants.h"
119ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "chrome/common/chrome_switches.h"
129ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "chrome/common/pref_names.h"
139ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
149ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochnamespace profiles {
159ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
169ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochbool IsMultipleProfilesEnabled() {
179ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#if defined(OS_ANDROID)
189ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  return false;
199ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#endif
209ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#if defined(OS_CHROMEOS)
219ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kMultiProfiles))
229ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch    return false;
239ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#endif
249ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
259ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  return true;
269ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch}
279ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
289ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochbool IsNewProfileManagementEnabled() {
299ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  return CommandLine::ForCurrentProcess()->HasSwitch(
309ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch      switches::kNewProfileManagement);
319ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch}
329ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
339ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochbase::FilePath GetDefaultProfileDir(
349ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch    const base::FilePath& user_data_dir) {
359ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  base::FilePath default_profile_dir(user_data_dir);
369ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  default_profile_dir =
379ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch      default_profile_dir.AppendASCII(chrome::kInitialProfile);
389ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  return default_profile_dir;
399ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch}
409ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
419ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochbase::FilePath GetProfilePrefsPath(
429ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch    const base::FilePath &profile_dir) {
439ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  base::FilePath default_prefs_path(profile_dir);
449ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  default_prefs_path = default_prefs_path.Append(chrome::kPreferencesFilename);
459ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  return default_prefs_path;
469ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch}
479ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
489ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochvoid RegisterPrefs(PrefRegistrySimple* registry) {
499ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  registry->RegisterStringPref(prefs::kProfileLastUsed, std::string());
509ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  registry->RegisterIntegerPref(prefs::kProfilesNumCreated, 1);
519ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  registry->RegisterListPref(prefs::kProfilesLastActive);
529ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch}
539ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
549ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch}  // namespace profiles
55