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.
5 #include "chrome/common/profile_management_switches.h"
7 #include "base/command_line.h"
8 #include "base/metrics/field_trial.h"
9 #include "chrome/common/chrome_switches.h"
13 const char kNewProfileManagementFieldTrialName
[] = "NewProfileManagement";
15 bool CheckProfileManagementFlag(std::string command_switch
, bool active_state
) {
16 // Individiual flag settings take precedence.
17 if (CommandLine::ForCurrentProcess()->HasSwitch(command_switch
)) {
21 // --new-profile-management flag always affects all switches.
22 if (CommandLine::ForCurrentProcess()->HasSwitch(
23 switches::kNewProfileManagement
)) {
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")
33 if (trial_type
== "Disabled")
44 bool IsEnableWebBasedSignin() {
45 return CheckProfileManagementFlag(switches::kEnableWebBasedSignin
, false);
48 bool IsGoogleProfileInfo() {
49 return CheckProfileManagementFlag(switches::kGoogleProfileInfo
, true);
52 bool IsNewProfileManagement() {
53 return CheckProfileManagementFlag(switches::kNewProfileManagement
, true);
56 bool IsNewAvatarMenu() {
57 bool is_new_avatar_menu
=
58 CommandLine::ForCurrentProcess()->HasSwitch(switches::kNewAvatarMenu
);
59 return is_new_avatar_menu
|| IsNewProfileManagement();
62 bool IsNewProfileManagementPreviewEnabled() {
63 bool is_new_avatar_menu
=
64 CommandLine::ForCurrentProcess()->HasSwitch(switches::kNewAvatarMenu
);
65 return is_new_avatar_menu
&& IsNewProfileManagement();
68 bool IsFastUserSwitching() {
69 return CommandLine::ForCurrentProcess()->HasSwitch(
70 switches::kFastUserSwitching
);
73 } // namespace switches