15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_INSTALLER_UTIL_CHROME_BROWSER_OPERATIONS_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_INSTALLER_UTIL_CHROME_BROWSER_OPERATIONS_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/installer/util/product_operations.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace installer {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Operations specific to Chrome; see ProductOperations for general info.
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ChromeBrowserOperations : public ProductOperations {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ChromeBrowserOperations() {}
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ReadOptions(const MasterPreferences& prefs,
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                           std::set<string16>* options) const OVERRIDE;
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ReadOptions(const CommandLine& uninstall_command,
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                           std::set<string16>* options) const OVERRIDE;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void AddKeyFiles(
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const std::set<string16>& options,
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      std::vector<base::FilePath>* key_files) const OVERRIDE;
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void AddComDllList(
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const std::set<string16>& options,
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      std::vector<base::FilePath>* com_dll_list) const OVERRIDE;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void AppendProductFlags(const std::set<string16>& options,
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                  CommandLine* cmd_line) const OVERRIDE;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void AppendRenameFlags(const std::set<string16>& options,
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                 CommandLine* cmd_line) const OVERRIDE;
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool SetChannelFlags(const std::set<string16>& options,
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                               bool set,
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                               ChannelInfo* channel_info) const OVERRIDE;
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool ShouldCreateUninstallEntry(
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const std::set<string16>& options) const OVERRIDE;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void AddDefaultShortcutProperties(
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      BrowserDistribution* dist,
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const base::FilePath& target_exe,
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ShellUtil::ShortcutProperties* properties) const OVERRIDE;
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void LaunchUserExperiment(const base::FilePath& setup_path,
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                    const std::set<string16>& options,
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                    InstallStatus status,
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                    bool system_level) const OVERRIDE;
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ChromeBrowserOperations);
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace installer
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CHROME_INSTALLER_UTIL_CHROME_BROWSER_OPERATIONS_H_
63