Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(133)

Side by Side Diff: chrome/install_static/install_util.h

Issue 1841573002: [Chrome ELF] New NT registry API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: PRESUBMIT to allow chrome_elf directory files to use wstring. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/install_static/DEPS ('k') | chrome/install_static/install_util.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // This file contains helper functions which provide information about the 4 // This file contains helper functions which provide information about the
5 // current version of Chrome. This includes channel information, version 5 // current version of Chrome. This includes channel information, version
6 // information etc. This functionality is provided by using functions in 6 // information etc. This functionality is provided by using functions in
7 // kernel32 and advapi32. No other dependencies are allowed in this file. 7 // kernel32 and advapi32. No other dependencies are allowed in this file.
8 8
9 #ifndef CHROME_INSTALL_STATIC_INSTALL_UTIL_H_ 9 #ifndef CHROME_INSTALL_STATIC_INSTALL_UTIL_H_
10 #define CHROME_INSTALL_STATIC_INSTALL_UTIL_H_ 10 #define CHROME_INSTALL_STATIC_INSTALL_UTIL_H_
11 11
12 #include <string> 12 #include <string>
13 #include <vector> 13 #include <vector>
14 14
15 #include "base/strings/string16.h"
16
17 namespace install_static { 15 namespace install_static {
18 16
19 enum class ProcessType { 17 enum class ProcessType {
20 UNINITIALIZED, 18 UNINITIALIZED,
21 NON_BROWSER_PROCESS, 19 NON_BROWSER_PROCESS,
22 BROWSER_PROCESS, 20 BROWSER_PROCESS,
23 }; 21 };
24 22
25 // TODO(ananta) 23 // TODO(ananta)
26 // https://crbug.com/604923 24 // https://crbug.com/604923
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 // Returns true if current installation of Chrome is a multi-install. 69 // Returns true if current installation of Chrome is a multi-install.
72 bool IsMultiInstall(bool is_system_install); 70 bool IsMultiInstall(bool is_system_install);
73 71
74 // Returns true if usage stats collecting is enabled for this user for the 72 // Returns true if usage stats collecting is enabled for this user for the
75 // current executable. 73 // current executable.
76 bool GetCollectStatsConsent(); 74 bool GetCollectStatsConsent();
77 75
78 // Returns true if usage stats collecting is enabled for this user for the 76 // Returns true if usage stats collecting is enabled for this user for the
79 // executable passed in as |exe_path|. 77 // executable passed in as |exe_path|.
80 // Only used by tests. 78 // Only used by tests.
81 bool GetCollectStatsConsentForTesting(const base::string16& exe_path); 79 bool GetCollectStatsConsentForTesting(const std::wstring& exe_path);
82 80
83 // Returns true if if usage stats reporting is controlled by a mandatory 81 // Returns true if if usage stats reporting is controlled by a mandatory
84 // policy. |metrics_is_enforced_by_policy| will be set to true accordingly. 82 // policy. |metrics_is_enforced_by_policy| will be set to true accordingly.
85 // TODO(ananta) 83 // TODO(ananta)
86 // Make this function private to install_util. 84 // Make this function private to install_util.
87 bool ReportingIsEnforcedByPolicy(bool* metrics_is_enforced_by_policy); 85 bool ReportingIsEnforcedByPolicy(bool* metrics_is_enforced_by_policy);
88 86
89 // Initializes |g_process_type| which stores whether or not the current 87 // Initializes |g_process_type| which stores whether or not the current
90 // process is the main browser process. 88 // process is the main browser process.
91 void InitializeProcessType(); 89 void InitializeProcessType();
92 90
93 // Returns true if invoked in a Chrome process other than the main browser 91 // Returns true if invoked in a Chrome process other than the main browser
94 // process. False otherwise. 92 // process. False otherwise.
95 bool IsNonBrowserProcess(); 93 bool IsNonBrowserProcess();
96 94
97 // Populates |result| with the default User Data directory for the current 95 // Populates |result| with the default User Data directory for the current
98 // user.This may be overidden by a command line option.Returns false if all 96 // user.This may be overidden by a command line option.Returns false if all
99 // attempts at locating a User Data directory fail 97 // attempts at locating a User Data directory fail
100 // TODO(ananta) 98 // TODO(ananta)
101 // http://crbug.com/604923 99 // http://crbug.com/604923
102 // Unify this with the Browser Distribution code. 100 // Unify this with the Browser Distribution code.
103 bool GetDefaultUserDataDirectory(base::string16* result); 101 bool GetDefaultUserDataDirectory(std::wstring* result);
104 102
105 // Populates |crash_dir| with the default crash dump location regardless of 103 // Populates |crash_dir| with the default crash dump location regardless of
106 // whether DIR_USER_DATA or DIR_CRASH_DUMPS has been overridden. 104 // whether DIR_USER_DATA or DIR_CRASH_DUMPS has been overridden.
107 // TODO(ananta) 105 // TODO(ananta)
108 // http://crbug.com/604923 106 // http://crbug.com/604923
109 // Unify this with the Browser Distribution code. 107 // Unify this with the Browser Distribution code.
110 bool GetDefaultCrashDumpLocation(base::string16* crash_dir); 108 bool GetDefaultCrashDumpLocation(std::wstring* crash_dir);
111 109
112 // Returns the contents of the specified |variable_name| from the environment 110 // Returns the contents of the specified |variable_name| from the environment
113 // block of the calling process. Returns an empty string if the variable does 111 // block of the calling process. Returns an empty string if the variable does
114 // not exist. 112 // not exist.
115 std::string GetEnvironmentString(const std::string& variable_name); 113 std::string GetEnvironmentString(const std::string& variable_name);
116 base::string16 GetEnvironmentString16(const base::string16& variable_name); 114 std::wstring GetEnvironmentString16(const std::wstring& variable_name);
117 115
118 // Sets the environment variable identified by |variable_name| to the value 116 // Sets the environment variable identified by |variable_name| to the value
119 // identified by |new_value|. 117 // identified by |new_value|.
120 bool SetEnvironmentString(const std::string& variable_name, 118 bool SetEnvironmentString(const std::string& variable_name,
121 const std::string& new_value); 119 const std::string& new_value);
122 bool SetEnvironmentString16(const base::string16& variable_name, 120 bool SetEnvironmentString16(const std::wstring& variable_name,
123 const base::string16& new_value); 121 const std::wstring& new_value);
124 122
125 // Returns true if the environment variable identified by |variable_name| 123 // Returns true if the environment variable identified by |variable_name|
126 // exists. 124 // exists.
127 bool HasEnvironmentVariable(const std::string& variable_name); 125 bool HasEnvironmentVariable(const std::string& variable_name);
128 bool HasEnvironmentVariable16(const base::string16& variable_name); 126 bool HasEnvironmentVariable16(const std::wstring& variable_name);
129 127
130 // Gets the exe version details like the |product_name|, |version|, 128 // Gets the exe version details like the |product_name|, |version|,
131 // |special_build|, |channel_name|, etc. Most of this information is read 129 // |special_build|, |channel_name|, etc. Most of this information is read
132 // from the version resource. |exe_path| is the path of chrome.exe. 130 // from the version resource. |exe_path| is the path of chrome.exe.
133 // TODO(ananta) 131 // TODO(ananta)
134 // http://crbug.com/604923 132 // http://crbug.com/604923
135 // Unify this with the Browser Distribution code. 133 // Unify this with the Browser Distribution code.
136 bool GetExecutableVersionDetails(const base::string16& exe_path, 134 bool GetExecutableVersionDetails(const std::wstring& exe_path,
137 base::string16* product_name, 135 std::wstring* product_name,
138 base::string16* version, 136 std::wstring* version,
139 base::string16* special_build, 137 std::wstring* special_build,
140 base::string16* channel_name); 138 std::wstring* channel_name);
141 139
142 // Gets the channel name for the current Chrome process. 140 // Gets the channel name for the current Chrome process.
143 // If |add_modifier| is true the channel name is returned with the modifier 141 // If |add_modifier| is true the channel name is returned with the modifier
144 // prepended to it. Currently this is only done for multi installs, i.e (-m) 142 // prepended to it. Currently this is only done for multi installs, i.e (-m)
145 // is the only modifier supported. 143 // is the only modifier supported.
146 // TODO(ananta) 144 // TODO(ananta)
147 // http://crbug.com/604923 145 // http://crbug.com/604923
148 // Unify this with the Browser Distribution code. 146 // Unify this with the Browser Distribution code.
149 void GetChromeChannelName(bool is_per_user_install, 147 void GetChromeChannelName(bool is_per_user_install,
150 bool add_modifier, 148 bool add_modifier,
151 base::string16* channel_name); 149 std::wstring* channel_name);
152
153 150
154 // Returns the version of Google Update that is installed. 151 // Returns the version of Google Update that is installed.
155 // TODO(ananta) 152 // TODO(ananta)
156 // http://crbug.com/604923 153 // http://crbug.com/604923
157 // Unify this with the Browser Distribution code. 154 // Unify this with the Browser Distribution code.
158 std::string GetGoogleUpdateVersion(); 155 std::string GetGoogleUpdateVersion();
159 156
160 // Returns the Chrome installation subdirectory, i.e. Google Chrome\Chromium, 157 // Returns the Chrome installation subdirectory, i.e. Google Chrome\Chromium,
161 // etc. 158 // etc.
162 // TODO(ananta) 159 // TODO(ananta)
163 // http://crbug.com/604923 160 // http://crbug.com/604923
164 // Unify this with the Browser Distribution code. 161 // Unify this with the Browser Distribution code.
165 base::string16 GetChromeInstallSubDirectory(); 162 std::wstring GetChromeInstallSubDirectory();
166 163
167 // Returns the registry path where the browser crash dumps metrics need to be 164 // Returns the registry path where the browser crash dumps metrics need to be
168 // written to. 165 // written to.
169 // TODO(ananta) 166 // TODO(ananta)
170 // http://crbug.com/604923 167 // http://crbug.com/604923
171 // Unify this with the version in 168 // Unify this with the version in
172 // chrome\common\metrics_constants_util_win.cc 169 // chrome\common\metrics_constants_util_win.cc
173 base::string16 GetBrowserCrashDumpAttemptsRegistryPath(); 170 std::wstring GetBrowserCrashDumpAttemptsRegistryPath();
174 171
175 // Returns true if the |source| string matches the |pattern|. The pattern 172 // Returns true if the |source| string matches the |pattern|. The pattern
176 // may contain wildcards like '?', which matches one character or a '*' 173 // may contain wildcards like '?', which matches one character or a '*'
177 // which matches 0 or more characters. 174 // which matches 0 or more characters.
178 // Please note that pattern matches the whole string. If you want to find 175 // Please note that pattern matches the whole string. If you want to find
179 // something in the middle of the string then you need to specify the pattern 176 // something in the middle of the string then you need to specify the pattern
180 // as '*xyz*'. 177 // as '*xyz*'.
181 bool MatchPattern(const base::string16& source, const base::string16& pattern); 178 bool MatchPattern(const std::wstring& source, const std::wstring& pattern);
182 179
183 // UTF8 to UTF16 and vice versa conversion helpers. 180 // UTF8 to UTF16 and vice versa conversion helpers.
184 base::string16 UTF8ToUTF16(const std::string& source); 181 std::wstring UTF8ToUTF16(const std::string& source);
185 182
186 std::string UTF16ToUTF8(const base::string16& source); 183 std::string UTF16ToUTF8(const std::wstring& source);
187 184
188 // Tokenizes a string |str| based on single character delimiter. 185 // Tokenizes a string |str| based on single character delimiter.
189 // The tokens are returned in a vector. The |trim_spaces| parameter indicates 186 // The tokens are returned in a vector. The |trim_spaces| parameter indicates
190 // whether the function should optionally trim spaces throughout the string. 187 // whether the function should optionally trim spaces throughout the string.
191 std::vector<std::string> TokenizeString(const std::string& str, 188 std::vector<std::string> TokenizeString(const std::string& str,
192 char delimiter, 189 char delimiter,
193 bool trim_spaces); 190 bool trim_spaces);
194 std::vector<base::string16> TokenizeString16(const base::string16& str, 191 std::vector<std::wstring> TokenizeString16(const std::wstring& str,
195 base::char16 delimiter, 192 wchar_t delimiter,
196 bool trim_spaces); 193 bool trim_spaces);
197 194
198 // Compares version strings of the form "X.X.X.X" and returns the result of the 195 // Compares version strings of the form "X.X.X.X" and returns the result of the
199 // comparison in the |result| parameter. The result is as below: 196 // comparison in the |result| parameter. The result is as below:
200 // 0 if the versions are equal. 197 // 0 if the versions are equal.
201 // -1 if version1 < version2. 198 // -1 if version1 < version2.
202 // 1 if version1 > version2. 199 // 1 if version1 > version2.
203 // Returns true on success, false on invalid strings being passed, etc. 200 // Returns true on success, false on invalid strings being passed, etc.
204 bool CompareVersionStrings(const std::string& version1, 201 bool CompareVersionStrings(const std::string& version1,
205 const std::string& version2, 202 const std::string& version2,
206 int* result); 203 int* result);
207 204
208 // We assume that the command line |command_line| contains multiple switches 205 // We assume that the command line |command_line| contains multiple switches
209 // with the format --<switch name>=<switch value>. This function returns the 206 // with the format --<switch name>=<switch value>. This function returns the
210 // value of the |switch_name| passed in. 207 // value of the |switch_name| passed in.
211 std::string GetSwitchValueFromCommandLine(const std::string& command_line, 208 std::string GetSwitchValueFromCommandLine(const std::string& command_line,
212 const std::string& switch_name); 209 const std::string& switch_name);
213 210
214 // Caches the |ProcessType| of the current process. 211 // Caches the |ProcessType| of the current process.
215 extern ProcessType g_process_type; 212 extern ProcessType g_process_type;
216 213
217 } // namespace install_static 214 } // namespace install_static
218 215
219 #endif // CHROME_INSTALL_STATIC_INSTALL_UTIL_H_ 216 #endif // CHROME_INSTALL_STATIC_INSTALL_UTIL_H_
OLDNEW
« no previous file with comments | « chrome/install_static/DEPS ('k') | chrome/install_static/install_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698