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

Side by Side Diff: chrome/browser/ui/webui/settings/settings_default_browser_handler.cc

Issue 1657933003: Fixes the interactive default browser UX for policy setting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: grt comments Created 4 years, 10 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
OLDNEW
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/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/common/pref_names.h" 10 #include "chrome/common/pref_names.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_(
17 new ShellIntegration::DefaultBrowserWorker(this)) { 17 new ShellIntegration::DefaultBrowserWorker(this, false)) {
18 default_browser_policy_.Init( 18 default_browser_policy_.Init(
19 prefs::kDefaultBrowserSettingEnabled, g_browser_process->local_state(), 19 prefs::kDefaultBrowserSettingEnabled, g_browser_process->local_state(),
20 base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState, 20 base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState,
21 base::Unretained(this), nullptr)); 21 base::Unretained(this), nullptr));
22 } 22 }
23 23
24 DefaultBrowserHandler::~DefaultBrowserHandler() { 24 DefaultBrowserHandler::~DefaultBrowserHandler() {
25 default_browser_worker_->ObserverDestroyed(); 25 default_browser_worker_->ObserverDestroyed();
26 } 26 }
27 27
(...skipping 25 matching lines...) Expand all
53 base::FundamentalValue can_be_default( 53 base::FundamentalValue can_be_default(
54 state != ShellIntegration::STATE_UNKNOWN && 54 state != ShellIntegration::STATE_UNKNOWN &&
55 !default_browser_policy_.IsManaged() && 55 !default_browser_policy_.IsManaged() &&
56 ShellIntegration::CanSetAsDefaultBrowser() != 56 ShellIntegration::CanSetAsDefaultBrowser() !=
57 ShellIntegration::SET_DEFAULT_NOT_ALLOWED); 57 ShellIntegration::SET_DEFAULT_NOT_ALLOWED);
58 58
59 web_ui()->CallJavascriptFunction("Settings.updateDefaultBrowserState", 59 web_ui()->CallJavascriptFunction("Settings.updateDefaultBrowserState",
60 is_default, can_be_default); 60 is_default, can_be_default);
61 } 61 }
62 62
63 bool DefaultBrowserHandler::IsInteractiveSetDefaultPermitted() {
64 return true;
65 }
66
67 void DefaultBrowserHandler::OnSetAsDefaultConcluded(bool succeeded) { 63 void DefaultBrowserHandler::OnSetAsDefaultConcluded(bool succeeded) {
68 base::FundamentalValue success(succeeded); 64 base::FundamentalValue success(succeeded);
69 web_ui()->CallJavascriptFunction("Settings.setAsDefaultConcluded", success); 65 web_ui()->CallJavascriptFunction("Settings.setAsDefaultConcluded", success);
70 } 66 }
71 67
72 void DefaultBrowserHandler::RequestDefaultBrowserState( 68 void DefaultBrowserHandler::RequestDefaultBrowserState(
73 const base::ListValue* /*args*/) { 69 const base::ListValue* /*args*/) {
74 default_browser_worker_->StartCheckIsDefault(); 70 default_browser_worker_->StartCheckIsDefault();
75 } 71 }
76 72
77 void DefaultBrowserHandler::SetAsDefaultBrowser(const base::ListValue* args) { 73 void DefaultBrowserHandler::SetAsDefaultBrowser(const base::ListValue* args) {
78 CHECK(!default_browser_policy_.IsManaged()); 74 CHECK(!default_browser_policy_.IsManaged());
79 75
80 default_browser_worker_->StartSetAsDefault(); 76 default_browser_worker_->StartSetAsDefault();
81 77
82 // If the user attempted to make Chrome the default browser, notify 78 // If the user attempted to make Chrome the default browser, notify
83 // them when this changes. 79 // them when this changes.
84 Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean( 80 Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean(
85 prefs::kCheckDefaultBrowser, true); 81 prefs::kCheckDefaultBrowser, true);
86 } 82 }
87 83
88 } // namespace settings 84 } // namespace settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698