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

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

Issue 1749813002: Fixes hidden "Set Default Browser" button when group policy is enabled (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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/options/browser_options_handler.cc ('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 namespace {
16
17 bool IsDisabledByPolicy(const BooleanPrefMember& pref) {
18 return pref.IsManaged() && !pref.GetValue();
19 }
20
21 } // namespace
22
15 DefaultBrowserHandler::DefaultBrowserHandler(content::WebUI* webui) 23 DefaultBrowserHandler::DefaultBrowserHandler(content::WebUI* webui)
16 : default_browser_worker_(new shell_integration::DefaultBrowserWorker( 24 : default_browser_worker_(new shell_integration::DefaultBrowserWorker(
17 this, 25 this,
18 /*delete_observer=*/false)) { 26 /*delete_observer=*/false)) {
19 default_browser_policy_.Init( 27 default_browser_policy_.Init(
20 prefs::kDefaultBrowserSettingEnabled, g_browser_process->local_state(), 28 prefs::kDefaultBrowserSettingEnabled, g_browser_process->local_state(),
21 base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState, 29 base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState,
22 base::Unretained(this), nullptr)); 30 base::Unretained(this), nullptr));
23 } 31 }
24 32
(...skipping 21 matching lines...) Expand all
46 // Notify the user in the future if Chrome ceases to be the user's chosen 54 // Notify the user in the future if Chrome ceases to be the user's chosen
47 // default browser. 55 // default browser.
48 Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean( 56 Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean(
49 prefs::kCheckDefaultBrowser, true); 57 prefs::kCheckDefaultBrowser, true);
50 } 58 }
51 59
52 base::FundamentalValue is_default(state == 60 base::FundamentalValue is_default(state ==
53 shell_integration::STATE_IS_DEFAULT); 61 shell_integration::STATE_IS_DEFAULT);
54 base::FundamentalValue can_be_default( 62 base::FundamentalValue can_be_default(
55 state != shell_integration::STATE_UNKNOWN && 63 state != shell_integration::STATE_UNKNOWN &&
56 !default_browser_policy_.IsManaged() && 64 !IsDisabledByPolicy(default_browser_policy_) &&
57 shell_integration::CanSetAsDefaultBrowser() != 65 shell_integration::CanSetAsDefaultBrowser() !=
58 shell_integration::SET_DEFAULT_NOT_ALLOWED); 66 shell_integration::SET_DEFAULT_NOT_ALLOWED);
59 67
60 web_ui()->CallJavascriptFunction("Settings.updateDefaultBrowserState", 68 web_ui()->CallJavascriptFunction("Settings.updateDefaultBrowserState",
61 is_default, can_be_default); 69 is_default, can_be_default);
62 } 70 }
63 71
64 void DefaultBrowserHandler::RequestDefaultBrowserState( 72 void DefaultBrowserHandler::RequestDefaultBrowserState(
65 const base::ListValue* /*args*/) { 73 const base::ListValue* /*args*/) {
66 default_browser_worker_->StartCheckIsDefault(); 74 default_browser_worker_->StartCheckIsDefault();
67 } 75 }
68 76
69 void DefaultBrowserHandler::SetAsDefaultBrowser(const base::ListValue* args) { 77 void DefaultBrowserHandler::SetAsDefaultBrowser(const base::ListValue* args) {
70 CHECK(!default_browser_policy_.IsManaged()); 78 CHECK(!IsDisabledByPolicy(default_browser_policy_));
71 79
72 default_browser_worker_->StartSetAsDefault(); 80 default_browser_worker_->StartSetAsDefault();
73 81
74 // If the user attempted to make Chrome the default browser, notify 82 // If the user attempted to make Chrome the default browser, notify
75 // them when this changes. 83 // them when this changes.
76 Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean( 84 Profile::FromWebUI(web_ui())->GetPrefs()->SetBoolean(
77 prefs::kCheckDefaultBrowser, true); 85 prefs::kCheckDefaultBrowser, true);
78 } 86 }
79 87
80 } // namespace settings 88 } // namespace settings
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/browser_options_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698