OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // This file contains the declarations of the installer functions that build | 5 // This file contains the declarations of the installer functions that build |
6 // the WorkItemList used to install the application. | 6 // the WorkItemList used to install the application. |
7 | 7 |
8 #ifndef CHROME_INSTALLER_SETUP_INSTALL_WORKER_H_ | 8 #ifndef CHROME_INSTALLER_SETUP_INSTALL_WORKER_H_ |
9 #define CHROME_INSTALLER_SETUP_INSTALL_WORKER_H_ | 9 #define CHROME_INSTALLER_SETUP_INSTALL_WORKER_H_ |
10 #pragma once | 10 #pragma once |
11 | 11 |
12 #include <vector> | 12 #include <vector> |
13 | 13 |
14 #include "base/scoped_ptr.h" | 14 #include "base/scoped_ptr.h" |
15 | 15 |
| 16 class BrowserDistribution; |
16 class CommandLine; | 17 class CommandLine; |
17 class FilePath; | 18 class FilePath; |
18 class Version; | 19 class Version; |
19 class WorkItemList; | 20 class WorkItemList; |
20 | 21 |
21 namespace installer { | 22 namespace installer { |
22 | 23 |
23 class InstallationState; | 24 class InstallationState; |
24 class InstallerState; | 25 class InstallerState; |
25 class Package; | 26 class Package; |
26 class Product; | 27 class Product; |
27 | 28 |
| 29 // Adds work items that make registry adjustments for Google Update. When a |
| 30 // product is installed (including overinstall), Google Update will write the |
| 31 // channel ("ap") value into either Chrome or Chrome Frame's ClientState key. |
| 32 // In the multi-install case, this value is used as the basis upon which the |
| 33 // package's channel value is built (by adding the ordered list of installed |
| 34 // products and their options). |
| 35 void AddGoogleUpdateWorkItems(const InstallerState& installer_state, |
| 36 WorkItemList* install_list); |
| 37 |
28 // Builds the complete WorkItemList used to build the set of installation steps | 38 // Builds the complete WorkItemList used to build the set of installation steps |
29 // needed to lay down one or more installed products. | 39 // needed to lay down one or more installed products. |
30 // | 40 // |
31 // setup_path: Path to the executable (setup.exe) as it will be copied | 41 // setup_path: Path to the executable (setup.exe) as it will be copied |
32 // to Chrome install folder after install is complete | 42 // to Chrome install folder after install is complete |
33 // archive_path: Path to the archive (chrome.7z) as it will be copied | 43 // archive_path: Path to the archive (chrome.7z) as it will be copied |
34 // to Chrome install folder after install is complete | 44 // to Chrome install folder after install is complete |
35 // src_path: the path that contains a complete and unpacked Chrome package | 45 // src_path: the path that contains a complete and unpacked Chrome package |
36 // to be installed. | 46 // to be installed. |
37 // temp_dir: the path of working directory used during installation. This path | 47 // temp_dir: the path of working directory used during installation. This path |
38 // does not need to exist. | 48 // does not need to exist. |
39 void AddInstallWorkItems(const InstallationState& original_state, | 49 void AddInstallWorkItems(const InstallationState& original_state, |
40 const InstallerState& installer_state, | 50 const InstallerState& installer_state, |
41 bool multi_install, | |
42 const FilePath& setup_path, | 51 const FilePath& setup_path, |
43 const FilePath& archive_path, | 52 const FilePath& archive_path, |
44 const FilePath& src_path, | 53 const FilePath& src_path, |
45 const FilePath& temp_dir, | 54 const FilePath& temp_dir, |
46 const Version& new_version, | 55 const Version& new_version, |
47 scoped_ptr<Version>* current_version, | 56 scoped_ptr<Version>* current_version, |
48 const Package& package, | |
49 WorkItemList* install_list); | 57 WorkItemList* install_list); |
50 | 58 |
51 // Appends registration or unregistration work items to |work_item_list| for the | 59 // Appends registration or unregistration work items to |work_item_list| for the |
52 // COM DLLs whose file names are given in |dll_files| and which reside in the | 60 // COM DLLs whose file names are given in |dll_files| and which reside in the |
53 // path |dll_folder|. | 61 // path |dll_folder|. |
54 // |system_level| specifies whether to call the system or user level DLL | 62 // |system_level| specifies whether to call the system or user level DLL |
55 // registration entry points. | 63 // registration entry points. |
56 // |do_register| says whether to register or unregister. | 64 // |do_register| says whether to register or unregister. |
57 // |may_fail| states whether this is best effort or not. If |may_fail| is true | 65 // |may_fail| states whether this is best effort or not. If |may_fail| is true |
58 // then |work_item_list| will still succeed if the registration fails and | 66 // then |work_item_list| will still succeed if the registration fails and |
59 // no registration rollback will be performed. | 67 // no registration rollback will be performed. |
60 void AddRegisterComDllWorkItems(const FilePath& dll_folder, | 68 void AddRegisterComDllWorkItems(const FilePath& dll_folder, |
61 const std::vector<FilePath>& dll_files, | 69 const std::vector<FilePath>& dll_files, |
62 bool system_level, | 70 bool system_level, |
63 bool do_register, | 71 bool do_register, |
64 bool ignore_failures, | 72 bool ignore_failures, |
65 WorkItemList* work_item_list); | 73 WorkItemList* work_item_list); |
66 | 74 |
67 void AddSetMsiMarkerWorkItem(const Product& product, | 75 void AddSetMsiMarkerWorkItem(const InstallerState& installer_state, |
| 76 BrowserDistribution* dist, |
68 bool set, | 77 bool set, |
69 WorkItemList* work_item_list); | 78 WorkItemList* work_item_list); |
70 | 79 |
71 // Called for either installation or uninstallation. This method updates the | 80 // Called for either installation or uninstallation. This method updates the |
72 // registry according to Chrome Frame specific options for the current | 81 // registry according to Chrome Frame specific options for the current |
73 // installation. This includes handling of the ready-mode option. | 82 // installation. This includes handling of the ready-mode option. |
74 void AddChromeFrameWorkItems(bool install, const FilePath& setup_path, | 83 void AddChromeFrameWorkItems(const InstallationState& original_state, |
75 const Version& new_version, const Product& product, | 84 const InstallerState& installer_state, |
| 85 const FilePath& setup_path, |
| 86 const Version& new_version, |
| 87 const Product& product, |
76 WorkItemList* list); | 88 WorkItemList* list); |
77 | 89 |
78 | |
79 // This method adds work items to create (or update) Chrome uninstall entry in | 90 // This method adds work items to create (or update) Chrome uninstall entry in |
80 // either the Control Panel->Add/Remove Programs list or in the Omaha client | 91 // either the Control Panel->Add/Remove Programs list or in the Omaha client |
81 // state key if running under an MSI installer. | 92 // state key if running under an MSI installer. |
82 void AddUninstallShortcutWorkItems(const FilePath& setup_path, | 93 void AddUninstallShortcutWorkItems(const InstallerState& installer_state, |
83 const Version& new_version, | 94 const FilePath& setup_path, |
84 WorkItemList* install_list, | |
85 const Product& product); | |
86 | |
87 void AddUninstallShortcutWorkItems(const FilePath& setup_path, | |
88 const Version& new_version, | 95 const Version& new_version, |
89 WorkItemList* install_list, | 96 WorkItemList* install_list, |
90 const Product& product); | 97 const Product& product); |
91 | 98 |
92 // Utility method currently shared between install.cc and install_worker.cc | 99 // Utility method currently shared between install.cc and install_worker.cc |
93 void AppendUninstallCommandLineFlags(CommandLine* uninstall_cmd, | 100 void AppendUninstallCommandLineFlags(const InstallerState& installer_state, |
94 const Product& product); | 101 const Product& product, |
| 102 CommandLine* uninstall_cmd); |
95 | 103 |
96 } // namespace installer | 104 } // namespace installer |
97 | 105 |
98 #endif // CHROME_INSTALLER_SETUP_INSTALL_WORKER_H_ | 106 #endif // CHROME_INSTALLER_SETUP_INSTALL_WORKER_H_ |
OLD | NEW |