| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 | 4 |
| 5 // mini_installer.exe is the first exe that is run when chrome is being | 5 // mini_installer.exe is the first exe that is run when chrome is being |
| 6 // installed or upgraded. It is designed to be extremely small (~5KB with no | 6 // installed or upgraded. It is designed to be extremely small (~5KB with no |
| 7 // extra resources linked) and it has two main jobs: | 7 // extra resources linked) and it has two main jobs: |
| 8 // 1) unpack the resources (possibly decompressing some) | 8 // 1) unpack the resources (possibly decompressing some) |
| 9 // 2) run the real installer (setup.exe) with appropriate flags. | 9 // 2) run the real installer (setup.exe) with appropriate flags. |
| 10 // | 10 // |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 return FALSE; | 293 return FALSE; |
| 294 } else { | 294 } else { |
| 295 // Resources should either start with 'chrome' or 'setup'. We don't handle | 295 // Resources should either start with 'chrome' or 'setup'. We don't handle |
| 296 // anything else. | 296 // anything else. |
| 297 return FALSE; | 297 return FALSE; |
| 298 } | 298 } |
| 299 | 299 |
| 300 return TRUE; | 300 return TRUE; |
| 301 } | 301 } |
| 302 | 302 |
| 303 #if defined(COMPONENT_BUILD) | 303 #if defined(COMPONENT_BUILD) || defined(SYZYASAN) |
| 304 // An EnumResNameProc callback that writes the resource |name| to disk in the | 304 // An EnumResNameProc callback that writes the resource |name| to disk in the |
| 305 // directory |base_path_ptr| (which must end with a path separator). | 305 // directory |base_path_ptr| (which must end with a path separator). |
| 306 BOOL CALLBACK WriteResourceToDirectory(HMODULE module, | 306 BOOL CALLBACK WriteResourceToDirectory(HMODULE module, |
| 307 const wchar_t* type, | 307 const wchar_t* type, |
| 308 wchar_t* name, | 308 wchar_t* name, |
| 309 LONG_PTR base_path_ptr) { | 309 LONG_PTR base_path_ptr) { |
| 310 const wchar_t* base_path = reinterpret_cast<const wchar_t*>(base_path_ptr); | 310 const wchar_t* base_path = reinterpret_cast<const wchar_t*>(base_path_ptr); |
| 311 PathString full_path; | 311 PathString full_path; |
| 312 | 312 |
| 313 PEResource resource(name, type, module); | 313 PEResource resource(name, type, module); |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 ::DeleteFile(setup_path->get()); | 419 ::DeleteFile(setup_path->get()); |
| 420 if (success) { | 420 if (success) { |
| 421 if (!setup_path->assign(setup_dest_path.get())) { | 421 if (!setup_path->assign(setup_dest_path.get())) { |
| 422 ::DeleteFile(setup_dest_path.get()); | 422 ::DeleteFile(setup_dest_path.get()); |
| 423 exit_code = ProcessExitResult(PATH_STRING_OVERFLOW); | 423 exit_code = ProcessExitResult(PATH_STRING_OVERFLOW); |
| 424 } | 424 } |
| 425 } else { | 425 } else { |
| 426 exit_code = ProcessExitResult(UNABLE_TO_EXTRACT_SETUP_EXE); | 426 exit_code = ProcessExitResult(UNABLE_TO_EXTRACT_SETUP_EXE); |
| 427 } | 427 } |
| 428 | 428 |
| 429 #if defined(COMPONENT_BUILD) | 429 #if defined(COMPONENT_BUILD) || defined(SYZYASAN) |
| 430 if (exit_code.IsSuccess()) { | 430 if (exit_code.IsSuccess()) { |
| 431 // Extract the (uncompressed) modules required by setup.exe. | 431 // Extract the (uncompressed) modules required by setup.exe. |
| 432 if (!::EnumResourceNames(module, kBinResourceType, WriteResourceToDirectory, | 432 if (!::EnumResourceNames(module, kBinResourceType, WriteResourceToDirectory, |
| 433 reinterpret_cast<LONG_PTR>(base_path))) { | 433 reinterpret_cast<LONG_PTR>(base_path))) { |
| 434 return ProcessExitResult(UNABLE_TO_EXTRACT_SETUP, ::GetLastError()); | 434 return ProcessExitResult(UNABLE_TO_EXTRACT_SETUP, ::GetLastError()); |
| 435 } | 435 } |
| 436 } | 436 } |
| 437 #endif | 437 #endif |
| 438 | 438 |
| 439 return exit_code; | 439 return exit_code; |
| (...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 859 DeleteExtractedFiles(base_path.get(), archive_path.get(), setup_path.get()); | 859 DeleteExtractedFiles(base_path.get(), archive_path.get(), setup_path.get()); |
| 860 | 860 |
| 861 #if defined(GOOGLE_CHROME_BUILD) | 861 #if defined(GOOGLE_CHROME_BUILD) |
| 862 WriteInstallResults(configuration, exit_code); | 862 WriteInstallResults(configuration, exit_code); |
| 863 #endif | 863 #endif |
| 864 | 864 |
| 865 return exit_code; | 865 return exit_code; |
| 866 } | 866 } |
| 867 | 867 |
| 868 } // namespace mini_installer | 868 } // namespace mini_installer |
| OLD | NEW |