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

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

Issue 10806086: Fix multi-install update regression. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressed review comments Created 8 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « chrome/installer/setup/setup_main.cc ('k') | chrome/installer/util/util_constants.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/chrome_binaries_operations.h" 5 #include "chrome/installer/util/chrome_binaries_operations.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "chrome/installer/util/channel_info.h" 10 #include "chrome/installer/util/channel_info.h"
11 #include "chrome/installer/util/helper.h" 11 #include "chrome/installer/util/helper.h"
12 #include "chrome/installer/util/master_preferences.h" 12 #include "chrome/installer/util/master_preferences.h"
13 #include "chrome/installer/util/master_preferences_constants.h" 13 #include "chrome/installer/util/master_preferences_constants.h"
14 #include "chrome/installer/util/util_constants.h" 14 #include "chrome/installer/util/util_constants.h"
15 15
16 namespace installer { 16 namespace installer {
17 17
18 void ChromeBinariesOperations::ReadOptions( 18 void ChromeBinariesOperations::ReadOptions(
19 const MasterPreferences& prefs, 19 const MasterPreferences& prefs,
20 std::set<std::wstring>* options) const { 20 std::set<std::wstring>* options) const {
21 DCHECK(options); 21 DCHECK(options);
22 22 options->insert(kOptionMultiInstall);
23 bool pref_value;
24
25 if (prefs.GetBool(master_preferences::kMultiInstall, &pref_value) &&
26 pref_value) {
27 options->insert(kOptionMultiInstall);
28 }
29 } 23 }
30 24
31 void ChromeBinariesOperations::ReadOptions( 25 void ChromeBinariesOperations::ReadOptions(
32 const CommandLine& uninstall_command, 26 const CommandLine& uninstall_command,
33 std::set<std::wstring>* options) const { 27 std::set<std::wstring>* options) const {
34 DCHECK(options); 28 DCHECK(options);
35 29 options->insert(kOptionMultiInstall);
36 if (uninstall_command.HasSwitch(switches::kMultiInstall))
37 options->insert(kOptionMultiInstall);
38 } 30 }
39 31
40 void ChromeBinariesOperations::AddKeyFiles( 32 void ChromeBinariesOperations::AddKeyFiles(
41 const std::set<std::wstring>& options, 33 const std::set<std::wstring>& options,
42 std::vector<FilePath>* key_files) const { 34 std::vector<FilePath>* key_files) const {
43 DCHECK(key_files); 35 DCHECK(key_files);
44 key_files->push_back(FilePath(installer::kChromeDll)); 36 key_files->push_back(FilePath(installer::kChromeDll));
45 } 37 }
46 38
47 void ChromeBinariesOperations::AddComDllList( 39 void ChromeBinariesOperations::AddComDllList(
48 const std::set<std::wstring>& options, 40 const std::set<std::wstring>& options,
49 std::vector<FilePath>* com_dll_list) const { 41 std::vector<FilePath>* com_dll_list) const {
50 } 42 }
51 43
52 void ChromeBinariesOperations::AppendProductFlags( 44 void ChromeBinariesOperations::AppendProductFlags(
53 const std::set<std::wstring>& options, 45 const std::set<std::wstring>& options,
54 CommandLine* cmd_line) const { 46 CommandLine* cmd_line) const {
55 DCHECK(cmd_line); 47 DCHECK(cmd_line);
56 48
57 if (options.find(kOptionMultiInstall) != options.end()) { 49 DCHECK(options.find(kOptionMultiInstall) != options.end());
58 // Add --multi-install if it isn't already there. 50
59 if (!cmd_line->HasSwitch(switches::kMultiInstall)) 51 // Add --multi-install if it isn't already there.
60 cmd_line->AppendSwitch(switches::kMultiInstall); 52 if (!cmd_line->HasSwitch(switches::kMultiInstall))
61 } 53 cmd_line->AppendSwitch(switches::kMultiInstall);
62 } 54 }
63 55
64 void ChromeBinariesOperations::AppendRenameFlags( 56 void ChromeBinariesOperations::AppendRenameFlags(
65 const std::set<std::wstring>& options, 57 const std::set<std::wstring>& options,
66 CommandLine* cmd_line) const { 58 CommandLine* cmd_line) const {
67 DCHECK(cmd_line); 59 DCHECK(cmd_line);
68 60
61 DCHECK(options.find(kOptionMultiInstall) != options.end());
62
69 // Add --multi-install if it isn't already there. 63 // Add --multi-install if it isn't already there.
70 if (options.find(kOptionMultiInstall) != options.end() && 64 if (!cmd_line->HasSwitch(switches::kMultiInstall))
71 !cmd_line->HasSwitch(switches::kMultiInstall)) {
72 cmd_line->AppendSwitch(switches::kMultiInstall); 65 cmd_line->AppendSwitch(switches::kMultiInstall);
73 }
74 } 66 }
75 67
76 bool ChromeBinariesOperations::SetChannelFlags( 68 bool ChromeBinariesOperations::SetChannelFlags(
77 const std::set<std::wstring>& options, 69 const std::set<std::wstring>& options,
78 bool set, 70 bool set,
79 ChannelInfo* channel_info) const { 71 ChannelInfo* channel_info) const {
80 return false; 72 return false;
81 } 73 }
82 74
83 bool ChromeBinariesOperations::ShouldCreateUninstallEntry( 75 bool ChromeBinariesOperations::ShouldCreateUninstallEntry(
84 const std::set<std::wstring>& options) const { 76 const std::set<std::wstring>& options) const {
85 return false; 77 return false;
86 } 78 }
87 79
88 } // namespace installer 80 } // namespace installer
OLDNEW
« no previous file with comments | « chrome/installer/setup/setup_main.cc ('k') | chrome/installer/util/util_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698