10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// found in the LICENSE file.
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// These are functions to access various profile-management flags but with
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// possible overrides from Experiements.  This is done inside chrome/common
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// because it is accessed by files through the chrome/ directory tree.
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef CHROME_COMMON_PROFILE_MANAGEMENT_SWITCHES_H_
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define CHROME_COMMON_PROFILE_MANAGEMENT_SWITCHES_H_
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace base {
13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class CommandLine;
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace switches {
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Checks whether account consistency is enabled. If enabled, the account
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// management UI is available in the avatar bubble.
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool IsEnableAccountConsistency();
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Enables the web-based sign in flow on Chrome desktop.
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)bool IsEnableWebBasedSignin();
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Whether the chrome.identity API should be multi-account.
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool IsExtensionsMultiAccount();
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
280529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Checks whether the flag for fast user switching is enabled.
290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochbool IsFastUserSwitching();
300529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Enables using GAIA information to populate profile name and icon.
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)bool IsGoogleProfileInfo();
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Whether the new avatar menu is enabled, either because new profile management
35a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// is enabled or because the new profile management preview UI is enabled.
36a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochbool IsNewAvatarMenu();
37a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
380529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Use new profile management system, including profile sign-out and new
390529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// choosers.
400529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochbool IsNewProfileManagement();
410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
42a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Whether the new profile management preview has been enabled.
43a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochbool IsNewProfileManagementPreviewEnabled();
44a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
45f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Called in tests to force enabling different modes.
465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void EnableNewAvatarMenuForTesting(base::CommandLine* command_line);
476e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)void DisableNewAvatarMenuForTesting(base::CommandLine* command_line);
48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void EnableNewProfileManagementForTesting(base::CommandLine* command_line);
49f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void EnableAccountConsistencyForTesting(base::CommandLine* command_line);
50f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}  // namespace switches
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif  // CHROME_COMMON_PROFILE_MANAGEMENT_SWITCHES_H_
54