Index: chrome/installer/util/shell_util.cc |
diff --git a/chrome/installer/util/shell_util.cc b/chrome/installer/util/shell_util.cc |
index a5122d50ad4c3fa472a15585b3bbac1e020d3a8e..ad1aa1af6b0fda0d22bb32473314f644eb98b143 100644 |
--- a/chrome/installer/util/shell_util.cc |
+++ b/chrome/installer/util/shell_util.cc |
@@ -102,7 +102,7 @@ bool IsChromeMetroSupported() { |
// "ChromeHTML|suffix|"). |
// |suffix| can be the empty string. |
string16 GetBrowserProgId(const string16& suffix) { |
- string16 chrome_html(ShellUtil::kChromeHTMLProgId); |
+ string16 chrome_html(ShellUtil::GetBrowserProgIdPrefix()); |
chrome_html.append(suffix); |
// ProgIds cannot be longer than 39 characters. |
@@ -289,7 +289,7 @@ class RegistryEntry { |
chrome_html_prog_id.push_back(base::FilePath::kSeparators[0]); |
chrome_html_prog_id.append(GetBrowserProgId(suffix)); |
entries->push_back(new RegistryEntry( |
- chrome_html_prog_id, ShellUtil::kChromeHTMLProgIdDesc)); |
+ chrome_html_prog_id, ShellUtil::GetBrowserProgIdDesc())); |
entries->push_back(new RegistryEntry( |
chrome_html_prog_id, ShellUtil::kRegUrlProtocol, L"")); |
entries->push_back(new RegistryEntry( |
@@ -789,7 +789,7 @@ bool QuickIsChromeRegistered(BrowserDistribution* dist, |
// Software\Classes\ChromeHTML|suffix| |
reg_key = ShellUtil::kRegClasses; |
reg_key.push_back(base::FilePath::kSeparators[0]); |
- reg_key.append(ShellUtil::kChromeHTMLProgId); |
+ reg_key.append(ShellUtil::GetBrowserProgIdPrefix()); |
reg_key.append(suffix); |
break; |
case CONFIRM_SHELL_REGISTRATION: |
@@ -1058,7 +1058,7 @@ ShellUtil::DefaultState ProbeCurrentDefaultHandlers( |
NOTREACHED(); |
return ShellUtil::UNKNOWN_DEFAULT; |
} |
- string16 prog_id(ShellUtil::kChromeHTMLProgId); |
+ string16 prog_id(ShellUtil::GetBrowserProgIdPrefix()); |
prog_id += ShellUtil::GetCurrentInstallationSuffix(dist, chrome_exe.value()); |
for (size_t i = 0; i < num_protocols; ++i) { |
@@ -1344,8 +1344,11 @@ const wchar_t* ShellUtil::kAppPathsRegistryKey = |
const wchar_t* ShellUtil::kAppPathsRegistryPathName = L"Path"; |
#if defined(GOOGLE_CHROME_BUILD) |
-const wchar_t* ShellUtil::kChromeHTMLProgId = L"ChromeHTML"; |
-const wchar_t* ShellUtil::kChromeHTMLProgIdDesc = L"Chrome HTML Document"; |
+const wchar_t* ShellUtil::kChromeStableHTMLProgId = L"ChromeHTML"; |
grt (UTC plus 2)
2013/09/04 03:33:36
these constants are no longer public, so move them
zturner
2013/09/05 01:35:29
Done.
|
+const wchar_t* ShellUtil::kChromeStableHTMLProgIdDesc = L"Chrome HTML Document"; |
+const wchar_t* ShellUtil::kChromeSXSHTMLProgId = L"ChromeSSHTM"; |
+const wchar_t* ShellUtil::kChromeSXSHTMLProgIdDesc = |
+ L"Chrome Canary HTML Document"; |
#else |
// This used to be "ChromiumHTML", but was forced to become "ChromiumHTM" |
// because of http://crbug.com/153349 as with the '.' and 26 characters suffix |
@@ -1354,8 +1357,8 @@ const wchar_t* ShellUtil::kChromeHTMLProgIdDesc = L"Chrome HTML Document"; |
// http://msdn.microsoft.com/library/aa911706.aspx), is the maximum length |
// for a progid. It was however determined through experimentation that the 39 |
// character limit mentioned on MSDN includes the NULL character... |
-const wchar_t* ShellUtil::kChromeHTMLProgId = L"ChromiumHTM"; |
-const wchar_t* ShellUtil::kChromeHTMLProgIdDesc = L"Chromium HTML Document"; |
+const wchar_t* ShellUtil::kChromiumHTMLProgId = L"ChromiumHTM"; |
+const wchar_t* ShellUtil::kChromiumHTMLProgIdDesc = L"Chromium HTML Document"; |
#endif |
const wchar_t* ShellUtil::kDefaultFileAssociations[] = {L".htm", L".html", |
@@ -1390,6 +1393,29 @@ bool ShellUtil::QuickIsChromeRegisteredInHKLM(BrowserDistribution* dist, |
CONFIRM_SHELL_REGISTRATION_IN_HKLM); |
} |
+ |
+string16 ShellUtil::GetBrowserProgIdPrefix() { |
+#if defined(GOOGLE_CHROME_BUILD) |
+ if (InstallUtil::IsChromeSXSProcess()) |
+ return string16(ShellUtil::kChromeSXSHTMLProgId); |
+ else |
+ return string16(ShellUtil::kChromeStableHTMLProgId); |
+#else |
+ return string16(ShellUtil::kChromiumHTMLProgId); |
+#endif |
+} |
+ |
+string16 ShellUtil::GetBrowserProgIdDesc() { |
+#if defined(GOOGLE_CHROME_BUILD) |
+ if (InstallUtil::IsChromeSXSProcess()) |
+ return string16(ShellUtil::kChromeSXSHTMLProgIdDesc); |
+ else |
+ return string16(ShellUtil::kChromeStableHTMLProgIdDesc); |
+#else |
+ return string16(ShellUtil::kChromiumHTMLProgIdDesc); |
+#endif |
+} |
+ |
bool ShellUtil::ShortcutLocationIsSupported( |
ShellUtil::ShortcutLocation location) { |
switch (location) { |