| Index: chrome/installer/util/shell_util.h
|
| diff --git a/chrome/installer/util/shell_util.h b/chrome/installer/util/shell_util.h
|
| index a29caddafe4100c985a69cc7e77c860aa858d52c..945211ae27b15849116862a44a2f34b494a9ca3b 100644
|
| --- a/chrome/installer/util/shell_util.h
|
| +++ b/chrome/installer/util/shell_util.h
|
| @@ -16,6 +16,7 @@
|
| #include <vector>
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/md5.h"
|
| #include "base/string16.h"
|
| #include "chrome/installer/util/work_item_list.h"
|
|
|
| @@ -243,8 +244,8 @@ class ShellUtil {
|
| const string16& chrome_exe);
|
|
|
| // Returns the AppUserModelId for |dist|. This identifier is unconditionally
|
| - // suffixed with the user id for user-level installs (in contrast to other
|
| - // registration entries which are suffix as described in
|
| + // suffixed with a unique id for this user on user-level installs (in contrast
|
| + // to other registration entries which are suffixed as described in
|
| // GetCurrentInstallationSuffix() above).
|
| static string16 GetBrowserModelId(BrowserDistribution* dist,
|
| const string16& chrome_exe);
|
| @@ -405,6 +406,40 @@ class ShellUtil {
|
| int icon_index,
|
| uint32 options);
|
|
|
| + // Sets |suffix| to the base 32 encoding of the md5 hash of this user's
|
| + // username preceded by a dot.
|
| + // This is guaranteed to be unique on the machine and 27 characters long
|
| + // (including the '.').
|
| + // This suffix is then meant to be added to all registration that may conflict
|
| + // with another user-level Chrome install.
|
| + // Note that prior to Chrome 21, the suffix registered used to be the user's
|
| + // username (see GetOldUserSpecificRegistrySuffix() below). We still honor old
|
| + // installs registered that way, but it was wrong because some of the
|
| + // characters allowed in a username are not allowed in a ProgId.
|
| + // Returns true unless the OS call to retrieve the username fails.
|
| + // NOTE: Only the installer should use this suffix directly. Other callers
|
| + // should call GetCurrentInstallationSuffix().
|
| + static bool GetNewUserSpecificRegistrySuffix(string16* suffix);
|
| +
|
| + // Sets |suffix| to this user's username preceded by a dot. This suffix is
|
| + // then meant to be added to all registration that may conflict with another
|
| + // user-level Chrome install.
|
| + // Returns true unless the OS call to retrieve the username fails.
|
| + // NOTE: Only the installer should use this suffix directly. Other callers
|
| + // should call GetCurrentInstallationSuffix().
|
| + static bool GetOldUserSpecificRegistrySuffix(string16* suffix);
|
| +
|
| + // Returns the base32 encoding (using the [A-Z2-7] alphabet) of |digest|.
|
| + // The returned string will be exactly 26 characters in length.
|
| + static string16 MD5DigestToBase32(const base::MD5Digest& digest);
|
| +
|
| + // Returns the base32 encoding (using the [A-Z2-7] alphabet) of |bytes|.
|
| + // |size| is the length of |bytes|.
|
| + // Note: This method does not suffix the output with '=' signs as technically
|
| + // required by the base32 standard for inputs that aren't a multiple of 5
|
| + // bits.
|
| + static string16 ByteArrayToBase32(const unsigned char bytes[], int size);
|
| +
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(ShellUtil);
|
| };
|
|
|