Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / chrome / common / profile_management_switches.cc
1 // Copyright 2013 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/common/profile_management_switches.h"
6
7 #include "base/command_line.h"
8 #include "base/metrics/field_trial.h"
9 #include "chrome/common/chrome_switches.h"
10
11 namespace {
12
13 const char kNewProfileManagementFieldTrialName[] = "NewProfileManagement";
14
15 bool CheckProfileManagementFlag(std::string command_switch, bool active_state) {
16   // Individiual flag settings take precedence.
17   if (CommandLine::ForCurrentProcess()->HasSwitch(command_switch)) {
18     return true;
19   }
20
21   // --new-profile-management flag always affects all switches.
22   if (CommandLine::ForCurrentProcess()->HasSwitch(
23         switches::kNewProfileManagement)) {
24     return active_state;
25   }
26
27   // NewProfileManagement experiment acts like above flag.
28   std::string trial_type =
29       base::FieldTrialList::FindFullName(kNewProfileManagementFieldTrialName);
30   if (!trial_type.empty()) {
31     if (trial_type == "Enabled")
32       return active_state;
33     if (trial_type == "Disabled")
34       return !active_state;
35   }
36
37   return false;
38 }
39
40 }  // namespace
41
42 namespace switches {
43
44 bool IsEnableWebBasedSignin() {
45   return CheckProfileManagementFlag(switches::kEnableWebBasedSignin, false);
46 }
47
48 bool IsGoogleProfileInfo() {
49   return CheckProfileManagementFlag(switches::kGoogleProfileInfo, true);
50 }
51
52 bool IsNewProfileManagement() {
53   return CheckProfileManagementFlag(switches::kNewProfileManagement, true);
54 }
55
56 bool IsFastUserSwitching() {
57   return CommandLine::ForCurrentProcess()->HasSwitch(
58       switches::kFastUserSwitching);
59 }
60
61 }  // namespace switches