Chromium Code Reviews| Index: chrome/browser/shell_integration_win.cc |
| =================================================================== |
| --- chrome/browser/shell_integration_win.cc (revision 25499) |
| +++ chrome/browser/shell_integration_win.cc (working copy) |
| @@ -44,13 +44,13 @@ |
| return true; |
| } |
| -bool ShellIntegration::IsDefaultBrowser() { |
| +ShellIntegration::DefaultBrowserState ShellIntegration::IsDefaultBrowser() { |
| // First determine the app path. If we can't determine what that is, we have |
| // bigger fish to fry... |
| std::wstring app_path; |
| if (!PathService::Get(base::FILE_EXE, &app_path)) { |
| LOG(ERROR) << "Error getting app exe path"; |
| - return false; |
| + return UNKNOWN_DEFAULT_BROWSER; |
| } |
| // When we check for default browser we don't necessarily want to count file |
| // type handlers and icons as having changed the default browser status, |
| @@ -69,7 +69,7 @@ |
| NULL, CLSCTX_INPROC, __uuidof(IApplicationAssociationRegistration), |
| (void**)&pAAR); |
| if (!SUCCEEDED(hr)) |
| - return false; |
| + return UNKNOWN_DEFAULT_BROWSER; |
| BrowserDistribution* dist = BrowserDistribution::GetDistribution(); |
| std::wstring app_name = dist->GetApplicationName(); |
| @@ -84,10 +84,14 @@ |
| BOOL result = TRUE; |
| hr = pAAR->QueryAppIsDefault(kChromeProtocols[i].c_str(), AT_URLPROTOCOL, |
| AL_EFFECTIVE, app_name.c_str(), &result); |
| - if (!SUCCEEDED(hr) || (result == FALSE)) { |
| + if (!SUCCEEDED(hr)) { |
| pAAR->Release(); |
| - return false; |
| + return UNKNOWN_DEFAULT_BROWSER; |
| } |
| + if (result == FALSE) { |
| + pAAR->Release(); |
| + return NOT_DEFAULT_BROWSER; |
| + } |
| } |
| pAAR->Release(); |
| } else { |
| @@ -105,7 +109,7 @@ |
| RegKey key(root_key, key_path.c_str(), KEY_READ); |
| std::wstring value; |
| if (!key.Valid() || !key.ReadValue(L"", &value)) |
| - return false; |
| + return NOT_DEFAULT_BROWSER; // Or UNKNOWN_DEFAULT_BROWSER? |
|
Evan Martin
2009/09/04 22:46:15
If this registry key is something we set when we *
Mike Mammarella
2009/09/04 22:56:27
I looked through the RegKey source but it wasn't c
kuchhal
2009/09/04 23:05:12
These are keys like <root>\Software\Classes\http\s
|
| // Need to normalize path in case it's been munged. |
| CommandLine command_line(L""); |
| command_line.ParseFromString(value); |
| @@ -117,10 +121,10 @@ |
| short_path.end(), |
| short_app_path.begin(), |
| CaseInsensitiveCompare<wchar_t>()))) |
| - return false; |
| + return NOT_DEFAULT_BROWSER; |
| } |
| } |
| - return true; |
| + return IS_DEFAULT_BROWSER; |
| } |
| // There is no reliable way to say which browser is default on a machine (each |