| 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 "base/metrics/histogram_macros.h" | 8 #include "base/metrics/histogram_macros.h" |
| 9 #include "base/metrics/user_metrics.h" | 9 #include "base/metrics/user_metrics.h" |
| 10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 return pref.IsManaged() && !pref.GetValue(); | 21 return pref.IsManaged() && !pref.GetValue(); |
| 22 } | 22 } |
| 23 | 23 |
| 24 } // namespace | 24 } // namespace |
| 25 | 25 |
| 26 DefaultBrowserHandler::DefaultBrowserHandler(content::WebUI* webui) | 26 DefaultBrowserHandler::DefaultBrowserHandler(content::WebUI* webui) |
| 27 : weak_ptr_factory_(this) { | 27 : weak_ptr_factory_(this) { |
| 28 default_browser_worker_ = new shell_integration::DefaultBrowserWorker( | 28 default_browser_worker_ = new shell_integration::DefaultBrowserWorker( |
| 29 base::Bind(&DefaultBrowserHandler::OnDefaultBrowserWorkerFinished, | 29 base::Bind(&DefaultBrowserHandler::OnDefaultBrowserWorkerFinished, |
| 30 weak_ptr_factory_.GetWeakPtr())); | 30 weak_ptr_factory_.GetWeakPtr())); |
| 31 default_browser_policy_.Init( | |
| 32 prefs::kDefaultBrowserSettingEnabled, g_browser_process->local_state(), | |
| 33 base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState, | |
| 34 base::Unretained(this), nullptr)); | |
| 35 } | 31 } |
| 36 | 32 |
| 37 DefaultBrowserHandler::~DefaultBrowserHandler() {} | 33 DefaultBrowserHandler::~DefaultBrowserHandler() {} |
| 38 | 34 |
| 39 void DefaultBrowserHandler::RegisterMessages() { | 35 void DefaultBrowserHandler::RegisterMessages() { |
| 40 web_ui()->RegisterMessageCallback( | 36 web_ui()->RegisterMessageCallback( |
| 41 "SettingsDefaultBrowser.requestDefaultBrowserState", | 37 "SettingsDefaultBrowser.requestDefaultBrowserState", |
| 42 base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState, | 38 base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState, |
| 43 base::Unretained(this))); | 39 base::Unretained(this))); |
| 44 web_ui()->RegisterMessageCallback( | 40 web_ui()->RegisterMessageCallback( |
| 45 "SettingsDefaultBrowser.setAsDefaultBrowser", | 41 "SettingsDefaultBrowser.setAsDefaultBrowser", |
| 46 base::Bind(&DefaultBrowserHandler::SetAsDefaultBrowser, | 42 base::Bind(&DefaultBrowserHandler::SetAsDefaultBrowser, |
| 47 base::Unretained(this))); | 43 base::Unretained(this))); |
| 48 } | 44 } |
| 49 | 45 |
| 46 void DefaultBrowserHandler::OnJavascriptAllowed() { |
| 47 default_browser_policy_.Init( |
| 48 prefs::kDefaultBrowserSettingEnabled, g_browser_process->local_state(), |
| 49 base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState, |
| 50 base::Unretained(this), nullptr)); |
| 51 } |
| 52 |
| 53 void DefaultBrowserHandler::OnJavascriptDisallowed() { |
| 54 default_browser_policy_.Destroy(); |
| 55 } |
| 56 |
| 50 void DefaultBrowserHandler::RequestDefaultBrowserState( | 57 void DefaultBrowserHandler::RequestDefaultBrowserState( |
| 51 const base::ListValue* /*args*/) { | 58 const base::ListValue* /*args*/) { |
| 59 AllowJavascript(); |
| 60 |
| 52 default_browser_worker_->StartCheckIsDefault(); | 61 default_browser_worker_->StartCheckIsDefault(); |
| 53 } | 62 } |
| 54 | 63 |
| 55 void DefaultBrowserHandler::SetAsDefaultBrowser(const base::ListValue* args) { | 64 void DefaultBrowserHandler::SetAsDefaultBrowser(const base::ListValue* args) { |
| 56 CHECK(!IsDisabledByPolicy(default_browser_policy_)); | 65 CHECK(!IsDisabledByPolicy(default_browser_policy_)); |
| 57 | 66 |
| 58 base::RecordAction(base::UserMetricsAction("Options_SetAsDefaultBrowser")); | 67 base::RecordAction(base::UserMetricsAction("Options_SetAsDefaultBrowser")); |
| 59 UMA_HISTOGRAM_COUNTS("Settings.StartSetAsDefault", true); | 68 UMA_HISTOGRAM_COUNTS("Settings.StartSetAsDefault", true); |
| 60 | 69 |
| 61 default_browser_worker_->StartSetAsDefault(); | 70 default_browser_worker_->StartSetAsDefault(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 72 // default browser. | 81 // default browser. |
| 73 chrome::ResetDefaultBrowserPrompt(Profile::FromWebUI(web_ui())); | 82 chrome::ResetDefaultBrowserPrompt(Profile::FromWebUI(web_ui())); |
| 74 } | 83 } |
| 75 | 84 |
| 76 base::FundamentalValue is_default(state == shell_integration::IS_DEFAULT); | 85 base::FundamentalValue is_default(state == shell_integration::IS_DEFAULT); |
| 77 base::FundamentalValue can_be_default( | 86 base::FundamentalValue can_be_default( |
| 78 state != shell_integration::UNKNOWN_DEFAULT && | 87 state != shell_integration::UNKNOWN_DEFAULT && |
| 79 !IsDisabledByPolicy(default_browser_policy_) && | 88 !IsDisabledByPolicy(default_browser_policy_) && |
| 80 shell_integration::CanSetAsDefaultBrowser()); | 89 shell_integration::CanSetAsDefaultBrowser()); |
| 81 | 90 |
| 82 web_ui()->CallJavascriptFunction("Settings.updateDefaultBrowserState", | 91 CallJavascriptFunction("Settings.updateDefaultBrowserState", is_default, |
| 83 is_default, can_be_default); | 92 can_be_default); |
| 84 } | 93 } |
| 85 | 94 |
| 86 } // namespace settings | 95 } // namespace settings |
| OLD | NEW |