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

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

Issue 11267023: Implementing --app-launcher install/uninstall flow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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
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/master_preferences.h" 5 #include "chrome/installer/util/master_preferences.h"
6 6
7 #include "base/environment.h" 7 #include "base/environment.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/json/json_string_value_serializer.h" 9 #include "base/json/json_string_value_serializer.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 } 75 }
76 76
77 } // namespace 77 } // namespace
78 78
79 namespace installer { 79 namespace installer {
80 80
81 MasterPreferences::MasterPreferences() : distribution_(NULL), 81 MasterPreferences::MasterPreferences() : distribution_(NULL),
82 preferences_read_from_file_(false), 82 preferences_read_from_file_(false),
83 chrome_(true), 83 chrome_(true),
84 chrome_app_host_(false), 84 chrome_app_host_(false),
85 chrome_app_launcher_(false),
85 chrome_frame_(false), 86 chrome_frame_(false),
86 multi_install_(false) { 87 multi_install_(false) {
87 InitializeFromCommandLine(*CommandLine::ForCurrentProcess()); 88 InitializeFromCommandLine(*CommandLine::ForCurrentProcess());
88 } 89 }
89 90
90 MasterPreferences::MasterPreferences(const CommandLine& cmd_line) 91 MasterPreferences::MasterPreferences(const CommandLine& cmd_line)
91 : distribution_(NULL), 92 : distribution_(NULL),
92 preferences_read_from_file_(false), 93 preferences_read_from_file_(false),
93 chrome_(true), 94 chrome_(true),
94 chrome_app_host_(false), 95 chrome_app_host_(false),
96 chrome_app_launcher_(false),
95 chrome_frame_(false), 97 chrome_frame_(false),
96 multi_install_(false) { 98 multi_install_(false) {
97 InitializeFromCommandLine(cmd_line); 99 InitializeFromCommandLine(cmd_line);
98 } 100 }
99 101
100 MasterPreferences::MasterPreferences(const FilePath& prefs_path) 102 MasterPreferences::MasterPreferences(const FilePath& prefs_path)
101 : distribution_(NULL), preferences_read_from_file_(false), 103 : distribution_(NULL),
102 chrome_(true), chrome_app_host_(false), chrome_frame_(false), 104 preferences_read_from_file_(false),
105 chrome_(true),
106 chrome_app_host_(false),
107 chrome_app_launcher_(false),
108 chrome_frame_(false),
103 multi_install_(false) { 109 multi_install_(false) {
104 master_dictionary_.reset(ParseDistributionPreferences(prefs_path)); 110 master_dictionary_.reset(ParseDistributionPreferences(prefs_path));
105 111
106 if (!master_dictionary_.get()) { 112 if (!master_dictionary_.get()) {
107 master_dictionary_.reset(new DictionaryValue()); 113 master_dictionary_.reset(new DictionaryValue());
108 } else { 114 } else {
109 preferences_read_from_file_ = true; 115 preferences_read_from_file_ = true;
110 // Cache a pointer to the distribution dictionary. 116 // Cache a pointer to the distribution dictionary.
111 master_dictionary_->GetDictionary( 117 master_dictionary_->GetDictionary(
112 installer::master_preferences::kDistroDict, &distribution_); 118 installer::master_preferences::kDistroDict, &distribution_);
(...skipping 21 matching lines...) Expand all
134 // distribution dictionary. Currently all switches added will be set to 140 // distribution dictionary. Currently all switches added will be set to
135 // 'true'. 141 // 'true'.
136 static const struct CmdLineSwitchToDistributionSwitch { 142 static const struct CmdLineSwitchToDistributionSwitch {
137 const char* cmd_line_switch; 143 const char* cmd_line_switch;
138 const char* distribution_switch; 144 const char* distribution_switch;
139 } translate_switches[] = { 145 } translate_switches[] = {
140 { installer::switches::kAutoLaunchChrome, 146 { installer::switches::kAutoLaunchChrome,
141 installer::master_preferences::kAutoLaunchChrome }, 147 installer::master_preferences::kAutoLaunchChrome },
142 { installer::switches::kChromeAppHost, 148 { installer::switches::kChromeAppHost,
143 installer::master_preferences::kChromeAppHost }, 149 installer::master_preferences::kChromeAppHost },
150 { installer::switches::kChromeAppLauncher,
151 installer::master_preferences::kChromeAppLauncher },
144 { installer::switches::kChrome, 152 { installer::switches::kChrome,
145 installer::master_preferences::kChrome }, 153 installer::master_preferences::kChrome },
146 { installer::switches::kChromeFrame, 154 { installer::switches::kChromeFrame,
147 installer::master_preferences::kChromeFrame }, 155 installer::master_preferences::kChromeFrame },
148 { installer::switches::kChromeFrameReadyMode, 156 { installer::switches::kChromeFrameReadyMode,
149 installer::master_preferences::kChromeFrameReadyMode }, 157 installer::master_preferences::kChromeFrameReadyMode },
150 { installer::switches::kCreateAllShortcuts, 158 { installer::switches::kCreateAllShortcuts,
151 installer::master_preferences::kCreateAllShortcuts }, 159 installer::master_preferences::kCreateAllShortcuts },
152 { installer::switches::kDisableLogging, 160 { installer::switches::kDisableLogging,
153 installer::master_preferences::kDisableLogging }, 161 installer::master_preferences::kDisableLogging },
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 215
208 InitializeProductFlags(); 216 InitializeProductFlags();
209 #endif 217 #endif
210 } 218 }
211 219
212 void MasterPreferences::InitializeProductFlags() { 220 void MasterPreferences::InitializeProductFlags() {
213 // Make sure we start out with the correct defaults. 221 // Make sure we start out with the correct defaults.
214 multi_install_ = false; 222 multi_install_ = false;
215 chrome_frame_ = false; 223 chrome_frame_ = false;
216 chrome_app_host_ = false; 224 chrome_app_host_ = false;
225 chrome_app_launcher_ = false;
217 chrome_ = true; 226 chrome_ = true;
218 227
219 GetBool(installer::master_preferences::kMultiInstall, &multi_install_); 228 GetBool(installer::master_preferences::kMultiInstall, &multi_install_);
220 GetBool(installer::master_preferences::kChromeFrame, &chrome_frame_); 229 GetBool(installer::master_preferences::kChromeFrame, &chrome_frame_);
221 GetBool(installer::master_preferences::kChromeAppHost, &chrome_app_host_); 230 GetBool(installer::master_preferences::kChromeAppHost, &chrome_app_host_);
231 GetBool(installer::master_preferences::kChromeAppLauncher,
232 &chrome_app_launcher_);
222 233
223 // When multi-install is specified, the checks are pretty simple (in theory): 234 // When multi-install is specified, the checks are pretty simple (in theory):
224 // In order to be installed/uninstalled, each product must have its switch 235 // In order to be installed/uninstalled, each product must have its switch
225 // present on the command line. 236 // present on the command line.
226 // Before multi-install was introduced however, we only supported installing 237 // Before multi-install was introduced however, we only supported installing
227 // two products, Chrome and Chrome Frame. For the time being we need to 238 // two products, Chrome and Chrome Frame. For the time being we need to
228 // continue to support this mode where multi-install is not set. 239 // continue to support this mode where multi-install is not set.
229 // So, when multi-install is not set, we continue to support mutually 240 // So, when multi-install is not set, we continue to support mutually
230 // exclusive installation of Chrome and Chrome Frame. 241 // exclusive installation of Chrome and Chrome Frame.
231 if (multi_install_) { 242 if (multi_install_) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 bool MasterPreferences::GetExtensionsBlock(DictionaryValue** extensions) const { 277 bool MasterPreferences::GetExtensionsBlock(DictionaryValue** extensions) const {
267 return master_dictionary_->GetDictionary( 278 return master_dictionary_->GetDictionary(
268 master_preferences::kExtensionsBlock, extensions); 279 master_preferences::kExtensionsBlock, extensions);
269 } 280 }
270 281
271 // static 282 // static
272 const MasterPreferences& MasterPreferences::ForCurrentProcess() { 283 const MasterPreferences& MasterPreferences::ForCurrentProcess() {
273 return g_master_preferences.Get(); 284 return g_master_preferences.Get();
274 } 285 }
275 } // installer_util 286 } // installer_util
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698