Chromium Code Reviews| Index: chrome/installer/mini_installer/mini_installer.cc |
| diff --git a/chrome/installer/mini_installer/mini_installer.cc b/chrome/installer/mini_installer/mini_installer.cc |
| index acbdc260ac6c8ed2c744bb29a7e25897dc6d3d1f..7bc51810443b904f5389e383a127e2467a559d0e 100644 |
| --- a/chrome/installer/mini_installer/mini_installer.cc |
| +++ b/chrome/installer/mini_installer/mini_installer.cc |
| @@ -75,6 +75,7 @@ class RegKey { |
| // Write a REG_SZ value to the registry. |value| must be null-terminated. |
| // Returns ERROR_SUCCESS or an error code. |
| LONG WriteValue(const wchar_t* value_name, const wchar_t* value); |
|
grt (UTC plus 2)
2015/07/24 14:49:10
some suggestions:
- change this to WriteSZValue
-
bcwhite
2015/07/24 17:08:01
Done.
|
| + LONG WriteDword(const wchar_t* value_name, DWORD value); |
| // Closes the key if it was open. |
| void Close(); |
| @@ -120,6 +121,12 @@ LONG RegKey::WriteValue(const wchar_t* value_name, const wchar_t* value) { |
| (lstrlen(value) + 1) * sizeof(wchar_t)); |
| } |
| +LONG RegKey::WriteDword(const wchar_t* value_name, DWORD value) { |
| + return ::RegSetValueEx(key_, value_name, 0, REG_DWORD, |
| + reinterpret_cast<const BYTE*>(&value), |
| + sizeof(value)); |
| +} |
| + |
| void RegKey::Close() { |
| if (key_ != NULL) { |
| ::RegCloseKey(key_); |
| @@ -886,6 +893,19 @@ ProcessExitCode WMain(HMODULE module) { |
| if (ShouldDeleteExtractedFiles()) |
| DeleteExtractedFiles(base_path.get(), archive_path.get(), setup_path.get()); |
| + const HKEY root_key = |
|
grt (UTC plus 2)
2015/07/24 14:49:11
please move this into a helper function (WriteInst
bcwhite
2015/07/24 17:08:01
Done.
|
| + configuration.is_system_level() ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER; |
| + const wchar_t* app_guid = configuration.chrome_app_guid(); |
|
grt (UTC plus 2)
2015/07/24 14:49:11
this and SetInstallerFlags need to use the same Cl
bcwhite
2015/07/24 17:08:01
Done. Complicated logic, though. Please check th
|
| + const REGSAM key_access = KEY_QUERY_VALUE | KEY_SET_VALUE; |
|
grt (UTC plus 2)
2015/07/24 14:49:11
looks like KEY_QUERY_VALUE isn't needed here.
|
| + RegKey key; |
| + if (OpenClientStateKey(root_key, app_guid, key_access, &key)) { |
| + key.WriteDword(kInstallerResultRegistryValue, |
| + exit_code ? 1 /* FAILED_CUSTOM_ERROR */ : 0 /* SUCCESS */); |
| + key.WriteDword(kInstallerErrorRegistryValue, exit_code); |
| + key.WriteDword(kInstallerExtraCode1RegistryValue, ::GetLastError()); |
|
grt (UTC plus 2)
2015/07/24 14:49:11
GetLastError must be called immediately after a fa
bcwhite
2015/07/24 17:08:01
Weird. I wrote that for initial testing and chang
|
| + key.Close(); |
| + } |
| + |
| return exit_code; |
| } |
| @@ -894,6 +914,7 @@ ProcessExitCode WMain(HMODULE module) { |
| int MainEntryPoint() { |
| mini_installer::ProcessExitCode result = |
| mini_installer::WMain(::GetModuleHandle(NULL)); |
| + |
| ::ExitProcess(result); |
| } |