Index: chrome/installer/util/shell_util.h |
diff --git a/chrome/installer/util/shell_util.h b/chrome/installer/util/shell_util.h |
index 85e5fbd7d0f9e8123a5e2b2157810f3ad4ede95f..c4b71b3aef96a63d1f39a0859d8bfb42f54c3406 100644 |
--- a/chrome/installer/util/shell_util.h |
+++ b/chrome/installer/util/shell_util.h |
@@ -204,15 +204,42 @@ class ShellUtil { |
static void GetRegisteredBrowsers(BrowserDistribution* dist, |
std::map<string16, string16>* browsers); |
- // This function gets a suffix (user's login name) that can be added |
- // to Chromium default browser entry in the registry to create a unique name |
- // if there are multiple users on the machine, each with their own copy of |
- // Chromium that they want to set as default browser. |
- // This suffix value is assigned to |entry|. The function also checks for |
- // existence of Default Browser registry key with this suffix and |
- // returns true if it exists. In all other cases it returns false. |
- static bool GetUserSpecificDefaultBrowserSuffix(BrowserDistribution* dist, |
- string16* entry); |
+ // Returns the suffix this user's Chrome install is registered with. |
+ // Note: this method returns the empty string on system-level installs by |
+ // design as no system-level installs is ever suffixed. |
+ // |
+ // This method is meant for external methods which need to know the suffix of |
+ // the current install at run-time, not for install-time decisions. |
+ // There are no guarantees that this suffix will not change later: |
+ // (e.g. if two user-level installs were previously installed in parallel on |
+ // the same machine, both without admin rights and with no user-level install |
+ // having claimed the non-suffixed HKLM registrations, they both have no |
+ // suffix in their progId entries (as per the old suffix rules). If they were |
+ // to both fully register (i.e. click "Make Chrome Default" and go through |
+ // UAC; or upgrade to Win8 and get the automatic no UAC full registration) |
+ // they would then both get a suffixed registration as per the new suffix |
+ // rules). |
+ static string16 GetCurrentInstallationSuffix(); |
+ |
+ // Returns true if the current user-level install has been fully registered |
+ // without a suffix. This is used to support old installs where we used to |
+ // not suffix user-level installs if they were the first to request the |
+ // non-suffixed registry entries on the machine. This however created clashes |
+ // with system-level installs when updating user-level installs to |
+ // system-level installs. There is no downside to suffixing anyways (the name |
+ // registered is not user visible). |
+ // All the conditions below have to be true for it to return true: |
+ // - Software\Clients\StartMenuInternet\Chromium\"" key should have a valid |
+ // value. |
+ // - The value should be same as given value in |chrome_exe|. |
+ static bool CurrentUserIsRegisteredWithNoSuffix(BrowserDistribution* dist, |
+ const string16& chrome_exe); |
+ |
+ // Returns true if any of the possible Chrome registry keys are present in |
+ // HKLM with |suffix|. |
+ static bool IsInstallationPresentInHKLM(BrowserDistribution* dist, |
+ const string16& chrome_exe, |
+ const string16& suffix); |
// Make Chrome the default browser. This function works by going through |
// the url protocols and file associations that are related to general |