OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/ui/webui/settings/settings_default_browser_handler.h" | 5 #include "chrome/browser/ui/webui/settings/settings_default_browser_handler.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
9 #include "chrome/common/pref_names.h" | 9 #include "chrome/common/pref_names.h" |
10 #include "components/prefs/pref_service.h" | 10 #include "components/prefs/pref_service.h" |
11 #include "content/public/browser/web_ui.h" | 11 #include "content/public/browser/web_ui.h" |
12 | 12 |
13 namespace settings { | 13 namespace settings { |
14 | 14 |
15 DefaultBrowserHandler::DefaultBrowserHandler(content::WebUI* webui) | 15 DefaultBrowserHandler::DefaultBrowserHandler(content::WebUI* webui) |
16 : default_browser_worker_( | 16 : default_browser_worker_(new shell_integration::DefaultBrowserWorker( |
17 new shell_integration::DefaultBrowserWorker(this)) { | 17 this, |
| 18 /*delete_observer=*/false)) { |
18 default_browser_policy_.Init( | 19 default_browser_policy_.Init( |
19 prefs::kDefaultBrowserSettingEnabled, g_browser_process->local_state(), | 20 prefs::kDefaultBrowserSettingEnabled, g_browser_process->local_state(), |
20 base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState, | 21 base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState, |
21 base::Unretained(this), nullptr)); | 22 base::Unretained(this), nullptr)); |
22 } | 23 } |
23 | 24 |
24 DefaultBrowserHandler::~DefaultBrowserHandler() { | 25 DefaultBrowserHandler::~DefaultBrowserHandler() { |
25 default_browser_worker_->ObserverDestroyed(); | 26 default_browser_worker_->ObserverDestroyed(); |
26 } | 27 } |
27 | 28 |
(...skipping 25 matching lines...) Expand all Loading... |
53 base::FundamentalValue can_be_default( | 54 base::FundamentalValue can_be_default( |
54 state != shell_integration::STATE_UNKNOWN && | 55 state != shell_integration::STATE_UNKNOWN && |
55 !default_browser_policy_.IsManaged() && | 56 !default_browser_policy_.IsManaged() && |
56 shell_integration::CanSetAsDefaultBrowser() != | 57 shell_integration::CanSetAsDefaultBrowser() != |
57 shell_integration::SET_DEFAULT_NOT_ALLOWED); | 58 shell_integration::SET_DEFAULT_NOT_ALLOWED); |
58 | 59 |
59 web_ui()->CallJavascriptFunction("Settings.updateDefaultBrowserState", | 60 web_ui()->CallJavascriptFunction("Settings.updateDefaultBrowserState", |
60 is_default, can_be_default); | 61 is_default, can_be_default); |
61 } | 62 } |
62 | 63 |
63 bool DefaultBrowserHandler::IsInteractiveSetDefaultPermitted() { | |
64 return true; | |
65 } | |
66 | |
67 void DefaultBrowserHandler::OnSetAsDefaultConcluded(bool succeeded) { | 64 void DefaultBrowserHandler::OnSetAsDefaultConcluded(bool succeeded) { |
68 base::FundamentalValue success(succeeded); | 65 base::FundamentalValue success(succeeded); |
69 web_ui()->CallJavascriptFunction("Settings.setAsDefaultConcluded", success); | 66 web_ui()->CallJavascriptFunction("Settings.setAsDefaultConcluded", success); |
70 } | 67 } |
71 | 68 |
72 void DefaultBrowserHandler::RequestDefaultBrowserState( | 69 void DefaultBrowserHandler::RequestDefaultBrowserState( |
73 const base::ListValue* /*args*/) { | 70 const base::ListValue* /*args*/) { |
74 default_browser_worker_->StartCheckIsDefault(); | 71 default_browser_worker_->StartCheckIsDefault(); |
75 } | 72 } |
76 | 73 |
77 void DefaultBrowserHandler::SetAsDefaultBrowser(const base::ListValue* args) { | 74 void DefaultBrowserHandler::SetAsDefaultBrowser(const base::ListValue* args) { |
78 CHECK(!default_browser_policy_.IsManaged()); | 75 CHECK(!default_browser_policy_.IsManaged()); |
79 | 76 |
80 default_browser_worker_->StartSetAsDefault(); | 77 default_browser_worker_->StartSetAsDefault(); |
81 | 78 |
82 // If the user attempted to make Chrome the default browser, notify | 79 // If the user attempted to make Chrome the default browser, notify |
83 // them when this changes. | 80 // them when this changes. |
84 Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean( | 81 Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean( |
85 prefs::kCheckDefaultBrowser, true); | 82 prefs::kCheckDefaultBrowser, true); |
86 } | 83 } |
87 | 84 |
88 } // namespace settings | 85 } // namespace settings |
OLD | NEW |