Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: chrome/browser/shell_integration_win.cc

Issue 6090006: Regkey functions return error code instead of bool (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/shell_integration.h" 5 #include "chrome/browser/shell_integration.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <shobjidl.h> 8 #include <shobjidl.h>
9 #include <propkey.h> 9 #include <propkey.h>
10 #include <propvarutil.h> 10 #include <propvarutil.h>
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 336
337 // open command for protocol associations 337 // open command for protocol associations
338 for (int i = 0; i < _countof(kChromeProtocols); i++) { 338 for (int i = 0; i < _countof(kChromeProtocols); i++) {
339 // Check in HKEY_CLASSES_ROOT that is the result of merge between 339 // Check in HKEY_CLASSES_ROOT that is the result of merge between
340 // HKLM and HKCU 340 // HKLM and HKCU
341 HKEY root_key = HKEY_CLASSES_ROOT; 341 HKEY root_key = HKEY_CLASSES_ROOT;
342 // Check <protocol>\shell\open\command 342 // Check <protocol>\shell\open\command
343 std::wstring key_path(kChromeProtocols[i] + ShellUtil::kRegShellOpen); 343 std::wstring key_path(kChromeProtocols[i] + ShellUtil::kRegShellOpen);
344 base::win::RegKey key(root_key, key_path.c_str(), KEY_READ); 344 base::win::RegKey key(root_key, key_path.c_str(), KEY_READ);
345 std::wstring value; 345 std::wstring value;
346 if (!key.Valid() || !key.ReadValue(L"", &value)) 346 if (!key.Valid() || (key.ReadValue(L"", &value) != ERROR_SUCCESS))
347 return NOT_DEFAULT_BROWSER; 347 return NOT_DEFAULT_BROWSER;
348 // Need to normalize path in case it's been munged. 348 // Need to normalize path in case it's been munged.
349 CommandLine command_line = CommandLine::FromString(value); 349 CommandLine command_line = CommandLine::FromString(value);
350 std::wstring short_path; 350 std::wstring short_path;
351 GetShortPathName(command_line.GetProgram().value().c_str(), 351 GetShortPathName(command_line.GetProgram().value().c_str(),
352 WriteInto(&short_path, MAX_PATH), MAX_PATH); 352 WriteInto(&short_path, MAX_PATH), MAX_PATH);
353 if (!FilePath::CompareEqualIgnoreCase(short_path, short_app_path)) 353 if (!FilePath::CompareEqualIgnoreCase(short_path, short_app_path))
354 return NOT_DEFAULT_BROWSER; 354 return NOT_DEFAULT_BROWSER;
355 } 355 }
356 } 356 }
(...skipping 10 matching lines...) Expand all
367 // This method checks if Firefox is defualt browser by checking these 367 // This method checks if Firefox is defualt browser by checking these
368 // locations and returns true if Firefox traces are found there. In case of 368 // locations and returns true if Firefox traces are found there. In case of
369 // error (or if Firefox is not found)it returns the default value which 369 // error (or if Firefox is not found)it returns the default value which
370 // is false. 370 // is false.
371 bool ShellIntegration::IsFirefoxDefaultBrowser() { 371 bool ShellIntegration::IsFirefoxDefaultBrowser() {
372 bool ff_default = false; 372 bool ff_default = false;
373 if (base::win::GetVersion() >= base::win::VERSION_VISTA) { 373 if (base::win::GetVersion() >= base::win::VERSION_VISTA) {
374 std::wstring app_cmd; 374 std::wstring app_cmd;
375 base::win::RegKey key(HKEY_CURRENT_USER, 375 base::win::RegKey key(HKEY_CURRENT_USER,
376 ShellUtil::kRegVistaUrlPrefs, KEY_READ); 376 ShellUtil::kRegVistaUrlPrefs, KEY_READ);
377 if (key.Valid() && key.ReadValue(L"Progid", &app_cmd) && 377 if (key.Valid() && (key.ReadValue(L"Progid", &app_cmd) == ERROR_SUCCESS) &&
378 app_cmd == L"FirefoxURL") 378 app_cmd == L"FirefoxURL")
379 ff_default = true; 379 ff_default = true;
380 } else { 380 } else {
381 std::wstring key_path(L"http"); 381 std::wstring key_path(L"http");
382 key_path.append(ShellUtil::kRegShellOpen); 382 key_path.append(ShellUtil::kRegShellOpen);
383 base::win::RegKey key(HKEY_CLASSES_ROOT, key_path.c_str(), KEY_READ); 383 base::win::RegKey key(HKEY_CLASSES_ROOT, key_path.c_str(), KEY_READ);
384 std::wstring app_cmd; 384 std::wstring app_cmd;
385 if (key.Valid() && key.ReadValue(L"", &app_cmd) && 385 if (key.Valid() && (key.ReadValue(L"", &app_cmd) == ERROR_SUCCESS) &&
386 std::wstring::npos != StringToLowerASCII(app_cmd).find(L"firefox")) 386 std::wstring::npos != StringToLowerASCII(app_cmd).find(L"firefox"))
387 ff_default = true; 387 ff_default = true;
388 } 388 }
389 return ff_default; 389 return ff_default;
390 } 390 }
391 391
392 std::wstring ShellIntegration::GetAppId(const std::wstring& app_name, 392 std::wstring ShellIntegration::GetAppId(const std::wstring& app_name,
393 const FilePath& profile_path) { 393 const FilePath& profile_path) {
394 std::wstring app_id(app_name); 394 std::wstring app_id(app_name);
395 395
(...skipping 13 matching lines...) Expand all
409 profile_path); 409 profile_path);
410 } 410 }
411 411
412 void ShellIntegration::MigrateChromiumShortcuts() { 412 void ShellIntegration::MigrateChromiumShortcuts() {
413 if (base::win::GetVersion() < base::win::VERSION_WIN7) 413 if (base::win::GetVersion() < base::win::VERSION_WIN7)
414 return; 414 return;
415 415
416 BrowserThread::PostTask( 416 BrowserThread::PostTask(
417 BrowserThread::FILE, FROM_HERE, new MigrateChromiumShortcutsTask()); 417 BrowserThread::FILE, FROM_HERE, new MigrateChromiumShortcutsTask());
418 } 418 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698