Use a better registration suffix that will always be unique while respecting the MSDN rules (2nd try). 

The suffix will now be the base32 encoding of the md5 hash of the user's username. This is always unique and can be determined many times deterministically without I/O access (as opposed to other methods we considered). 

It respects all MSDN constraints for properties onto which it is appended. 

This replaces the prior-style username suffixes for new installs. 

Old-style suffixes (i.e. unsuffixed and username suffixed) will however be kept as is through future updates. 

Design doc: https://docs.google.com/a/chromium.org/document/d/1qmcV3uYBh3JwvXhYkI7asg0nN7KfVMWVOzND4p0jQ3E/edit 

Note: This is the continuation of http://codereview.chromium.org/10617002/ which was reverted in https://chromiumcodereview.appspot.com/10667006/

BUG=133810, 133173
TEST= http://goo.gl/ZZ7gE 
installer_util_unittests.exe --gtest_filter=ShellUtilTest.*


Review URL: https://chromiumcodereview.appspot.com/10662052

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145596 0039d316-1c4b-4281-b951-d872f2087c98
4 files changed