Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: chrome/installer/util/product.cc

Issue 2621923002: Product cleanups in the wake of multi-install removal. (Closed)
Patch Set: sync to position 442831 Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/installer/util/product.h ('k') | chrome/installer/util/product_operations.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "chrome/installer/util/product.h" 5 #include "chrome/installer/util/product.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/process/launch.h" 11 #include "base/process/launch.h"
12 #include "base/win/registry.h" 12 #include "base/win/registry.h"
13 #include "chrome/installer/util/browser_distribution.h" 13 #include "chrome/installer/util/browser_distribution.h"
14 #include "chrome/installer/util/chrome_browser_operations.h" 14 #include "chrome/installer/util/chrome_browser_operations.h"
15 #include "chrome/installer/util/chrome_browser_sxs_operations.h" 15 #include "chrome/installer/util/chrome_browser_sxs_operations.h"
16 #include "chrome/installer/util/google_update_constants.h" 16 #include "chrome/installer/util/google_update_constants.h"
17 #include "chrome/installer/util/install_util.h" 17 #include "chrome/installer/util/install_util.h"
18 #include "chrome/installer/util/master_preferences.h"
19 #include "chrome/installer/util/master_preferences_constants.h"
20 #include "chrome/installer/util/product_operations.h" 18 #include "chrome/installer/util/product_operations.h"
21 19
22 using base::win::RegKey; 20 using base::win::RegKey;
23 using installer::MasterPreferences;
24 21
25 namespace installer { 22 namespace installer {
26 23
27 Product::Product(BrowserDistribution* distribution) 24 Product::Product(BrowserDistribution* distribution)
28 : distribution_(distribution), 25 : distribution_(distribution),
29 operations_(InstallUtil::IsChromeSxSProcess() 26 operations_(InstallUtil::IsChromeSxSProcess()
30 ? new ChromeBrowserSxSOperations() 27 ? new ChromeBrowserSxSOperations()
31 : new ChromeBrowserOperations()) {} 28 : new ChromeBrowserOperations()) {}
32 29
33 Product::~Product() { 30 Product::~Product() {
34 } 31 }
35 32
36 void Product::InitializeFromPreferences(const MasterPreferences& prefs) {
37 operations_->ReadOptions(prefs, &options_);
38 }
39
40 void Product::InitializeFromUninstallCommand(
41 const base::CommandLine& uninstall_command) {
42 operations_->ReadOptions(uninstall_command, &options_);
43 }
44
45 bool Product::LaunchChrome(const base::FilePath& application_path) const { 33 bool Product::LaunchChrome(const base::FilePath& application_path) const {
46 bool success = !application_path.empty(); 34 bool success = !application_path.empty();
47 if (success) { 35 if (success) {
48 base::CommandLine cmd(application_path.Append(installer::kChromeExe)); 36 base::CommandLine cmd(application_path.Append(installer::kChromeExe));
49 success = base::LaunchProcess(cmd, base::LaunchOptions()).IsValid(); 37 success = base::LaunchProcess(cmd, base::LaunchOptions()).IsValid();
50 } 38 }
51 return success; 39 return success;
52 } 40 }
53 41
54 bool Product::LaunchChromeAndWait(const base::FilePath& application_path, 42 bool Product::LaunchChromeAndWait(const base::FilePath& application_path,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 if (result != ERROR_SUCCESS && result != ERROR_FILE_NOT_FOUND) { 93 if (result != ERROR_SUCCESS && result != ERROR_FILE_NOT_FOUND) {
106 LOG(ERROR) 94 LOG(ERROR)
107 << "Failed to Open or Write MSI value to client state key. error: " 95 << "Failed to Open or Write MSI value to client state key. error: "
108 << result; 96 << result;
109 return false; 97 return false;
110 } 98 }
111 return true; 99 return true;
112 } 100 }
113 101
114 void Product::AddKeyFiles(std::vector<base::FilePath>* key_files) const { 102 void Product::AddKeyFiles(std::vector<base::FilePath>* key_files) const {
115 operations_->AddKeyFiles(options_, key_files); 103 operations_->AddKeyFiles(key_files);
116 } 104 }
117 105
118 void Product::AppendProductFlags(base::CommandLine* command_line) const { 106 void Product::AppendProductFlags(base::CommandLine* command_line) const {
119 operations_->AppendProductFlags(options_, command_line); 107 operations_->AppendProductFlags(command_line);
120 } 108 }
121 109
122 void Product::AppendRenameFlags(base::CommandLine* command_line) const { 110 void Product::AppendRenameFlags(base::CommandLine* command_line) const {
123 operations_->AppendRenameFlags(options_, command_line); 111 operations_->AppendRenameFlags(command_line);
124 }
125
126 bool Product::SetChannelFlags(bool set, ChannelInfo* channel_info) const {
127 return operations_->SetChannelFlags(options_, set, channel_info);
128 } 112 }
129 113
130 void Product::AddDefaultShortcutProperties( 114 void Product::AddDefaultShortcutProperties(
131 const base::FilePath& target_exe, 115 const base::FilePath& target_exe,
132 ShellUtil::ShortcutProperties* properties) const { 116 ShellUtil::ShortcutProperties* properties) const {
133 return operations_->AddDefaultShortcutProperties( 117 return operations_->AddDefaultShortcutProperties(
134 distribution_, target_exe, properties); 118 distribution_, target_exe, properties);
135 } 119 }
136 120
137 void Product::LaunchUserExperiment(const base::FilePath& setup_path, 121 void Product::LaunchUserExperiment(const base::FilePath& setup_path,
138 InstallStatus status, 122 InstallStatus status,
139 bool system_level) const { 123 bool system_level) const {
140 if (distribution_->HasUserExperiments()) { 124 if (distribution_->HasUserExperiments()) {
141 VLOG(1) << "LaunchUserExperiment status: " << status << " product: " 125 VLOG(1) << "LaunchUserExperiment status: " << status << " product: "
142 << distribution_->GetDisplayName() 126 << distribution_->GetDisplayName()
143 << " system_level: " << system_level; 127 << " system_level: " << system_level;
144 operations_->LaunchUserExperiment( 128 operations_->LaunchUserExperiment(setup_path, status, system_level);
145 setup_path, options_, status, system_level);
146 } 129 }
147 } 130 }
148 131
149 } // namespace installer 132 } // namespace installer
OLDNEW
« no previous file with comments | « chrome/installer/util/product.h ('k') | chrome/installer/util/product_operations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698