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

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: Fix merge issue 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
« no previous file with comments | « chrome/browser/ui/webui/settings/settings_default_browser_handler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "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
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
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/settings/settings_default_browser_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698