| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <shlwapi.h> | 8 #include <shlwapi.h> |
| 9 #include <shobjidl.h> | 9 #include <shobjidl.h> |
| 10 #include <propkey.h> // Needs to come after shobjidl.h. | 10 #include <propkey.h> // Needs to come after shobjidl.h. |
| (...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 632 | 632 |
| 633 shortcut = shortcut.Append(shortcut_name).Append(shortcut_name + | 633 shortcut = shortcut.Append(shortcut_name).Append(shortcut_name + |
| 634 installer::kLnkExt); | 634 installer::kLnkExt); |
| 635 if (base::PathExists(shortcut)) | 635 if (base::PathExists(shortcut)) |
| 636 return shortcut; | 636 return shortcut; |
| 637 } | 637 } |
| 638 | 638 |
| 639 return base::FilePath(); | 639 return base::FilePath(); |
| 640 } | 640 } |
| 641 | 641 |
| 642 // static | |
| 643 bool ShellIntegration::DefaultWebClientWorker::ShouldReportAttemptResults() { | |
| 644 return base::win::GetVersion() >= base::win::VERSION_WIN10 && | |
| 645 IsSetAsDefaultAsynchronous(); | |
| 646 } | |
| 647 | |
| 648 bool ShellIntegration::DefaultBrowserWorker::InitializeSetAsDefault() { | 642 bool ShellIntegration::DefaultBrowserWorker::InitializeSetAsDefault() { |
| 649 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 643 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 650 | 644 |
| 651 if (!IsSetAsDefaultAsynchronous()) | 645 if (!IsSetAsDefaultAsynchronous()) |
| 652 return false; | 646 return false; |
| 653 | 647 |
| 654 // On Windows 10+, there is no official way to prompt the user to set a | 648 // On Windows 10+, there is no official way to prompt the user to set a |
| 655 // default browser. This is the workaround: | 649 // default browser. This is the workaround: |
| 656 // 1. Unregister the default browser. | 650 // 1. Unregister the default browser. |
| 657 // 2. Open "How to make Chrome my default browser" link with openwith.exe. | 651 // 2. Open "How to make Chrome my default browser" link with openwith.exe. |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 704 // static | 698 // static |
| 705 bool ShellIntegration::DefaultBrowserWorker::SetAsDefaultBrowserAsynchronous() { | 699 bool ShellIntegration::DefaultBrowserWorker::SetAsDefaultBrowserAsynchronous() { |
| 706 DCHECK(IsSetAsDefaultAsynchronous()); | 700 DCHECK(IsSetAsDefaultAsynchronous()); |
| 707 | 701 |
| 708 ResetDefaultBrowser(); | 702 ResetDefaultBrowser(); |
| 709 | 703 |
| 710 base::CommandLine cmdline(base::FilePath(L"openwith.exe")); | 704 base::CommandLine cmdline(base::FilePath(L"openwith.exe")); |
| 711 cmdline.AppendArgNative(StartupBrowserCreator::GetDefaultBrowserUrl()); | 705 cmdline.AppendArgNative(StartupBrowserCreator::GetDefaultBrowserUrl()); |
| 712 return base::LaunchProcess(cmdline, base::LaunchOptions()).IsValid(); | 706 return base::LaunchProcess(cmdline, base::LaunchOptions()).IsValid(); |
| 713 } | 707 } |
| OLD | NEW |