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