OLD | NEW |
(Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 // |
| 5 // This file contains the declarations of the installer functions that build |
| 6 // the WorkItemList used to install the application. |
| 7 |
| 8 #ifndef CHROME_INSTALLER_SETUP_INSTALL_WORKER_H_ |
| 9 #define CHROME_INSTALLER_SETUP_INSTALL_WORKER_H_ |
| 10 #pragma once |
| 11 |
| 12 #include <vector> |
| 13 |
| 14 #include "base/scoped_ptr.h" |
| 15 |
| 16 class CommandLine; |
| 17 class FilePath; |
| 18 class Version; |
| 19 class WorkItemList; |
| 20 |
| 21 namespace installer { |
| 22 |
| 23 class InstallationState; |
| 24 class InstallerState; |
| 25 class Package; |
| 26 class Product; |
| 27 |
| 28 // Builds the complete WorkItemList used to build the set of installation steps |
| 29 // needed to lay down one or more installed products. |
| 30 // |
| 31 // setup_path: Path to the executable (setup.exe) as it will be copied |
| 32 // to Chrome install folder after install is complete |
| 33 // archive_path: Path to the archive (chrome.7z) as it will be copied |
| 34 // to Chrome install folder after install is complete |
| 35 // src_path: the path that contains a complete and unpacked Chrome package |
| 36 // to be installed. |
| 37 // temp_dir: the path of working directory used during installation. This path |
| 38 // does not need to exist. |
| 39 void AddInstallWorkItems(const InstallationState& original_state, |
| 40 const InstallerState& installer_state, |
| 41 bool multi_install, |
| 42 const FilePath& setup_path, |
| 43 const FilePath& archive_path, |
| 44 const FilePath& src_path, |
| 45 const FilePath& temp_dir, |
| 46 const Version& new_version, |
| 47 scoped_ptr<Version>* current_version, |
| 48 const Package& package, |
| 49 WorkItemList* install_list); |
| 50 |
| 51 // 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 |
| 53 // path |dll_folder|. |
| 54 // |system_level| specifies whether to call the system or user level DLL |
| 55 // registration entry points. |
| 56 // |do_register| says whether to register or unregister. |
| 57 // |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 |
| 59 // no registration rollback will be performed. |
| 60 void AddRegisterComDllWorkItems(const FilePath& dll_folder, |
| 61 const std::vector<FilePath>& dll_files, |
| 62 bool system_level, |
| 63 bool do_register, |
| 64 bool ignore_failures, |
| 65 WorkItemList* work_item_list); |
| 66 |
| 67 void AddSetMsiMarkerWorkItem(const Product& product, |
| 68 bool set, |
| 69 WorkItemList* work_item_list); |
| 70 |
| 71 // Called for either installation or uninstallation. This method updates the |
| 72 // registry according to Chrome Frame specific options for the current |
| 73 // installation. This includes handling of the ready-mode option. |
| 74 void AddChromeFrameWorkItems(bool install, const FilePath& setup_path, |
| 75 const Version& new_version, const Product& product, |
| 76 WorkItemList* list); |
| 77 |
| 78 |
| 79 // 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 |
| 81 // state key if running under an MSI installer. |
| 82 void AddUninstallShortcutWorkItems(const FilePath& setup_path, |
| 83 const Version& new_version, |
| 84 WorkItemList* install_list, |
| 85 const Product& product); |
| 86 |
| 87 void AddUninstallShortcutWorkItems(const FilePath& setup_path, |
| 88 const Version& new_version, |
| 89 WorkItemList* install_list, |
| 90 const Product& product); |
| 91 |
| 92 // Utility method currently shared between install.cc and install_worker.cc |
| 93 void AppendUninstallCommandLineFlags(CommandLine* uninstall_cmd, |
| 94 const Product& product); |
| 95 |
| 96 } // namespace installer |
| 97 |
| 98 #endif // CHROME_INSTALLER_SETUP_INSTALL_WORKER_H_ |
OLD | NEW |