1 // Copyright 2018 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 #ifndef CHROME_CREDENTIAL_PROVIDER_COMMON_GCP_STRINGS_H_
6 #define CHROME_CREDENTIAL_PROVIDER_COMMON_GCP_STRINGS_H_
7 
8 #include <string>
9 #include <vector>
10 
11 namespace credential_provider {
12 
13 // The the UI process can exit with the following exit code.
14 enum UiExitCodes {
15   // The user completed the sign in successfully.
16   kUiecSuccess,
17 
18   // The sign in was aborted by the user.
19   kUiecAbort,
20 
21   // The sign in timed out.
22   kUiecTimeout,
23 
24   // The process was killed by the GCP.
25   kUiecKilled,
26 
27   // The email is not valid for the given user logging in.
28   kUiecEMailMissmatch,
29 
30   // The email domain is not an accepted domain.
31   kUiecInvalidEmailDomain,
32 
33   // Some signin data was missing.
34   kUiecMissingSigninData,
35 
36   kUiecCount,
37 };
38 
39 // Names of keys returned on json data from UI process.
40 extern const char kKeyEmail[];
41 extern const char kKeyPicture[];
42 extern const char kKeyFullname[];
43 extern const char kKeyId[];
44 extern const char kKeyMdmUrl[];
45 extern const char kKeyMdmIdToken[];
46 extern const char kKeyPassword[];
47 extern const char kKeyRefreshToken[];
48 extern const char kKeyAccessToken[];
49 extern const char kKeyMdmAccessToken[];
50 extern const char kKeySID[];
51 extern const char kKeyTokenHandle[];
52 extern const char kKeyUsername[];
53 extern const char kKeyDomain[];
54 extern const char kKeyExitCode[];
55 
56 // AD attributes related to the device.
57 extern const char kKeyIsAdJoinedUser[];
58 
59 // Name of registry value that holds user properties.
60 extern const wchar_t kUserTokenHandle[];
61 extern const wchar_t kUserEmail[];
62 extern const wchar_t kUserId[];
63 extern const wchar_t kUserPictureUrl[];
64 
65 // Username and password key for special GAIA account to run GLS.
66 extern const wchar_t kDefaultGaiaAccountName[];
67 extern const wchar_t kLsaKeyGaiaUsername[];
68 extern const wchar_t kLsaKeyGaiaPassword[];
69 
70 // Name of the desktop used on the Window welcome screen for interactive
71 // logon.
72 extern const wchar_t kDesktopName[];
73 extern const wchar_t kDesktopFullName[];
74 
75 // GUID used by Google Update client for GCPW application.
76 extern const wchar_t kGcpwUpdateClientGuid[];
77 
78 // Google Update related registry paths.
79 extern const wchar_t kRegUpdaterClientStateAppPath[];
80 extern const wchar_t kRegUpdaterClientsAppPath[];
81 extern const wchar_t kRegUninstallStringField[];
82 extern const wchar_t kRegUninstallArgumentsField[];
83 extern const wchar_t kRegUsageStatsName[];
84 extern const wchar_t kRegUpdateTracksName[];
85 extern const wchar_t kRegVersionName[];
86 
87 // Registry keys to list GCPW in add/remove programs on Windows.
88 extern const wchar_t kRegUninstall[];
89 extern const wchar_t kRegUninstallProduct[];
90 extern const wchar_t kRegUninstallString[];
91 extern const wchar_t kRegUninstallDisplayName[];
92 extern const wchar_t kRegInstallLocation[];
93 extern const wchar_t kRegDisplayIcon[];
94 extern const wchar_t kRegNoModify[];
95 extern const wchar_t kRegNoRepair[];
96 extern const wchar_t kRegPublisherName[];
97 extern const wchar_t kRegVersion[];
98 extern const wchar_t kRegDisplayVersion[];
99 extern const wchar_t kRegInstallDate[];
100 extern const wchar_t kRegVersionMajor[];
101 extern const wchar_t kRegVersionMinor[];
102 extern const wchar_t kRegPublisher[];
103 
104 // These are command line switches passed to chrome to start it as a process
105 // used as a logon stub.
106 extern const char kGcpwSigninSwitch[];
107 extern const char kPrefillEmailSwitch[];
108 extern const char kEmailDomainsSwitch[];
109 extern const char kGaiaIdSwitch[];
110 extern const char kGcpwEndpointPathSwitch[];
111 extern const char kGcpwAdditionalOauthScopes[];
112 extern const char kShowTosSwitch[];
113 
114 // Parameter appended to sign in URL to pass valid signin domains to the inline
115 // login handler. These domains are separated by ','.
116 extern const char kEmailDomainsSigninPromoParameter[];
117 extern const char kEmailDomainsSeparator[];
118 extern const char kValidateGaiaIdSigninPromoParameter[];
119 extern const char kGcpwEndpointPathPromoParameter[];
120 
121 // Crashpad related constants.
122 extern const wchar_t kRunAsCrashpadHandlerEntryPoint[];
123 
124 // Flags to manipulate behavior of Chrome when importing credentials for the
125 // account signs in through GCPW.
126 extern const wchar_t kAllowImportOnlyOnFirstRun[];
127 extern const wchar_t kAllowImportWhenPrimaryAccountExists[];
128 
129 // HKCU account information path in the hive of the OS user.
130 extern const wchar_t kRegHkcuAccountsPath[];
131 
132 }  // namespace credential_provider
133 
134 #endif  // CHROME_CREDENTIAL_PROVIDER_COMMON_GCP_STRINGS_H_
135