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

Side by Side Diff: chrome/installer/util/shell_util.h

Issue 10512026: Fix RegisterChromeBrowser definition and usage in shell_util (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 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 | « no previous file | chrome/installer/util/shell_util.cc » ('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 // This file declares methods that are useful for integrating Chrome in 5 // This file declares methods that are useful for integrating Chrome in
6 // Windows shell. These methods are all static and currently part of 6 // Windows shell. These methods are all static and currently part of
7 // ShellUtil class. 7 // ShellUtil class.
8 8
9 #ifndef CHROME_INSTALLER_UTIL_SHELL_UTIL_H_ 9 #ifndef CHROME_INSTALLER_UTIL_SHELL_UTIL_H_
10 #define CHROME_INSTALLER_UTIL_SHELL_UTIL_H_ 10 #define CHROME_INSTALLER_UTIL_SHELL_UTIL_H_
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 const string16& chrome_exe, 237 const string16& chrome_exe,
238 bool elevate_if_not_admin); 238 bool elevate_if_not_admin);
239 239
240 // Make Chrome the default application for a protocol. 240 // Make Chrome the default application for a protocol.
241 // chrome_exe: The chrome.exe path to register as default browser. 241 // chrome_exe: The chrome.exe path to register as default browser.
242 // protocol: The protocol to register as the default handler for. 242 // protocol: The protocol to register as the default handler for.
243 static bool MakeChromeDefaultProtocolClient(BrowserDistribution* dist, 243 static bool MakeChromeDefaultProtocolClient(BrowserDistribution* dist,
244 const string16& chrome_exe, 244 const string16& chrome_exe,
245 const string16& protocol); 245 const string16& protocol);
246 246
247 // This method adds Chrome to the list that shows up in Add/Remove Programs-> 247 // This method first checks if Chrome is fully registered (as outlined below)
248 // Set Program Access and Defaults and also creates Chrome ProgIds under 248 // on Windows. If it is, this method is a no-op; if it isn't, this method
249 // Software\Classes. This method requires write access to HKLM so is just 249 // registers Chrome so that it shows up in the list of Default Programs with
250 // best effort deal. If write to HKLM fails and elevate_if_not_admin is true, 250 // all the protocols and file types it can handle. This method requires write
grt (UTC plus 2) 2012/06/08 15:42:01 "all the protocols" is incorrect since registerPro
gab 2012/06/08 16:03:10 Adapted the comment to reflect this.
251 // this method will: 251 // access to HKLM so is just a best effort deal.
252 // - add the ProgId entries to HKCU on XP. HKCU entries will not make 252 // If write to HKLM fails and:
253 // Chrome show in Set Program Access and Defaults but they are still useful 253 // - elevate_if_not_admin is true (and we are on Vista and above):
254 // because we can make Chrome run when user clicks on http link or html 254 // this method will try to launch setup.exe with admin priviledges (by
255 // file. 255 // prompting the user with a UAC) to do these tasks.
256 // - will try to launch setup.exe with admin priviledges on Vista to do 256 // - elevate_if_not_admin is false (or we are on XP):
257 // these tasks. Users will see standard Vista elevation prompt and if they 257 // add the ProgId entries to HKCU. These entries will not make Chrome show
258 // enter the right credentials, the write operation will work. 258 // in Set Program Access and Defaults but they are still useful because we
259 // can make Chrome run when user clicks on http link or html file.
259 // Currently elevate_if_not_admin is true only when user tries to make Chrome 260 // Currently elevate_if_not_admin is true only when user tries to make Chrome
260 // default browser (through the UI or through installer options) and Chrome 261 // default browser (through the UI or through installer options).
261 // is not registered on the machine.
262 // 262 //
263 // |chrome_exe| full path to chrome.exe. 263 // |chrome_exe| full path to chrome.exe.
264 // |unique_suffix| Optional input. If given, this function appends the value 264 // |unique_suffix| Optional input. If given, this function appends the value
265 // to default browser entries names that it creates in the registry. 265 // to default browser entries names that it creates in the registry.
266 // Currently, this is only used to continue an install with the same suffix
267 // when elevating and calling setup.exe with admin privileges as described
268 // above.
266 // |elevate_if_not_admin| if true will make this method try alternate methods 269 // |elevate_if_not_admin| if true will make this method try alternate methods
267 // as described above. 270 // as described above.
271 //
272 // Returns true if Chrome is successfully registered (or already registered).
268 static bool RegisterChromeBrowser(BrowserDistribution* dist, 273 static bool RegisterChromeBrowser(BrowserDistribution* dist,
269 const string16& chrome_exe, 274 const string16& chrome_exe,
270 const string16& unique_suffix, 275 const string16& unique_suffix,
271 bool elevate_if_not_admin); 276 bool elevate_if_not_admin);
272 277
273 // This method declares to Windows that Chrome is capable of handling the 278 // This method declares to Windows that Chrome is capable of handling the
274 // given protocol. This function will call the RegisterChromeBrowser function 279 // given protocol. This function will call the RegisterChromeBrowser function
275 // to register with Windows as capable of handling the protocol, if it isn't 280 // to register with Windows as capable of handling the protocol, if it isn't
276 // currently registered as capable. 281 // currently registered as capable.
277 // Declaring the capability of handling a protocol is necessary to register 282 // Declaring the capability of handling a protocol is necessary to register
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 const string16& icon_path, 349 const string16& icon_path,
345 int icon_index, 350 int icon_index,
346 uint32 options); 351 uint32 options);
347 352
348 private: 353 private:
349 DISALLOW_COPY_AND_ASSIGN(ShellUtil); 354 DISALLOW_COPY_AND_ASSIGN(ShellUtil);
350 }; 355 };
351 356
352 357
353 #endif // CHROME_INSTALLER_UTIL_SHELL_UTIL_H_ 358 #endif // CHROME_INSTALLER_UTIL_SHELL_UTIL_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/installer/util/shell_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698