1ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// found in the LICENSE file. 4ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 5ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// This header exists as a starting point for extracting some of the 6ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// logic out of setup_main.cc. 7ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 8ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#ifndef CHROME_INSTALLER_SETUP_SETUP_MAIN_H_ 9ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#define CHROME_INSTALLER_SETUP_SETUP_MAIN_H_ 10ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 11ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "chrome/installer/util/util_constants.h" 12ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 1368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)namespace base { 14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class CommandLine; 1568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)class FilePath; 1668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)} // namespace base 17ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)namespace installer { 19ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochclass InstallationState; 20ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochclass InstallerState; 21ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochclass MasterPreferences; 22ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 23ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Helper function that performs the installation of a set of products. 2468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// |installer_directory|, if non-NULL, is populated with the path to the 2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// directory containing the newly installed setup.exe. |archive_type| is 2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// populated with the type of archive found. |delegated_to_existing| is set to 2768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// |true| if installation was delegated to a pre-existing higher version. 2868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)InstallStatus InstallProductsHelper(const InstallationState& original_state, 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::FilePath& setup_exe, 30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const base::CommandLine& cmd_line, 3168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const MasterPreferences& prefs, 3268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const InstallerState& installer_state, 3368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) base::FilePath* installer_directory, 3468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) ArchiveType* archive_type, 3568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) bool* delegated_to_existing); 36ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 37ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} // namespace installer 38ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 39ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#endif // CHROME_INSTALLER_SETUP_SETUP_MAIN_H_ 40