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

Side by Side Diff: chrome/browser/ui/webui/set_as_default_browser_ui.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 2 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/set_as_default_browser_ui.h" 5 #include "chrome/browser/ui/webui/set_as_default_browser_ui.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 const base::WeakPtr<ResponseDelegate>& response_delegate); 102 const base::WeakPtr<ResponseDelegate>& response_delegate);
103 ~SetAsDefaultBrowserHandler() override; 103 ~SetAsDefaultBrowserHandler() override;
104 104
105 // WebUIMessageHandler implementation. 105 // WebUIMessageHandler implementation.
106 void RegisterMessages() override; 106 void RegisterMessages() override;
107 107
108 // ShellIntegration::DefaultWebClientObserver implementation. 108 // ShellIntegration::DefaultWebClientObserver implementation.
109 void SetDefaultWebClientUIState( 109 void SetDefaultWebClientUIState(
110 ShellIntegration::DefaultWebClientUIState state) override; 110 ShellIntegration::DefaultWebClientUIState state) override;
111 void OnSetAsDefaultConcluded(bool close_chrome) override; 111 void OnSetAsDefaultConcluded(bool close_chrome) override;
112 bool IsInteractiveSetDefaultPermitted() override;
113 112
114 private: 113 private:
115 // Handler for the 'Next' (or 'make Chrome the Metro browser') button. 114 // Handler for the 'Next' (or 'make Chrome the Metro browser') button.
116 void HandleLaunchSetDefaultBrowserFlow(const base::ListValue* args); 115 void HandleLaunchSetDefaultBrowserFlow(const base::ListValue* args);
117 116
118 // Close this web ui. 117 // Close this web ui.
119 void ConcludeInteraction(MakeChromeDefaultResult interaction_result); 118 void ConcludeInteraction(MakeChromeDefaultResult interaction_result);
120 119
121 scoped_refptr<ShellIntegration::DefaultBrowserWorker> default_browser_worker_; 120 scoped_refptr<ShellIntegration::DefaultBrowserWorker> default_browser_worker_;
122 bool set_default_returned_; 121 bool set_default_returned_;
123 bool set_default_result_; 122 bool set_default_result_;
124 base::WeakPtr<ResponseDelegate> response_delegate_; 123 base::WeakPtr<ResponseDelegate> response_delegate_;
125 124
126 DISALLOW_COPY_AND_ASSIGN(SetAsDefaultBrowserHandler); 125 DISALLOW_COPY_AND_ASSIGN(SetAsDefaultBrowserHandler);
127 }; 126 };
128 127
129 SetAsDefaultBrowserHandler::SetAsDefaultBrowserHandler( 128 SetAsDefaultBrowserHandler::SetAsDefaultBrowserHandler(
130 const base::WeakPtr<ResponseDelegate>& response_delegate) 129 const base::WeakPtr<ResponseDelegate>& response_delegate)
131 : default_browser_worker_(new ShellIntegration::DefaultBrowserWorker(this)), 130 : default_browser_worker_(
132 set_default_returned_(false), set_default_result_(false), 131 new ShellIntegration::DefaultBrowserWorker(this, false)),
133 response_delegate_(response_delegate) { 132 set_default_returned_(false),
134 } 133 set_default_result_(false),
134 response_delegate_(response_delegate) {}
135 135
136 SetAsDefaultBrowserHandler::~SetAsDefaultBrowserHandler() { 136 SetAsDefaultBrowserHandler::~SetAsDefaultBrowserHandler() {
137 default_browser_worker_->ObserverDestroyed(); 137 default_browser_worker_->ObserverDestroyed();
138 } 138 }
139 139
140 void SetAsDefaultBrowserHandler::RegisterMessages() { 140 void SetAsDefaultBrowserHandler::RegisterMessages() {
141 web_ui()->RegisterMessageCallback( 141 web_ui()->RegisterMessageCallback(
142 "SetAsDefaultBrowser:LaunchSetDefaultBrowserFlow", 142 "SetAsDefaultBrowser:LaunchSetDefaultBrowserFlow",
143 base::Bind(&SetAsDefaultBrowserHandler::HandleLaunchSetDefaultBrowserFlow, 143 base::Bind(&SetAsDefaultBrowserHandler::HandleLaunchSetDefaultBrowserFlow,
144 base::Unretained(this))); 144 base::Unretained(this)));
(...skipping 17 matching lines...) Expand all
162 162
163 // Otherwise, keep the dialog open since the user probably didn't make a 163 // Otherwise, keep the dialog open since the user probably didn't make a
164 // choice. 164 // choice.
165 } 165 }
166 166
167 void SetAsDefaultBrowserHandler::OnSetAsDefaultConcluded(bool call_result) { 167 void SetAsDefaultBrowserHandler::OnSetAsDefaultConcluded(bool call_result) {
168 set_default_returned_ = true; 168 set_default_returned_ = true;
169 set_default_result_ = call_result; 169 set_default_result_ = call_result;
170 } 170 }
171 171
172 bool SetAsDefaultBrowserHandler::IsInteractiveSetDefaultPermitted() {
173 return true;
174 }
175
176 void SetAsDefaultBrowserHandler::HandleLaunchSetDefaultBrowserFlow( 172 void SetAsDefaultBrowserHandler::HandleLaunchSetDefaultBrowserFlow(
177 const base::ListValue* args) { 173 const base::ListValue* args) {
178 set_default_returned_ = false; 174 set_default_returned_ = false;
179 set_default_result_ = false; 175 set_default_result_ = false;
180 default_browser_worker_->StartSetAsDefault(); 176 default_browser_worker_->StartSetAsDefault();
181 } 177 }
182 178
183 void SetAsDefaultBrowserHandler::ConcludeInteraction( 179 void SetAsDefaultBrowserHandler::ConcludeInteraction(
184 MakeChromeDefaultResult interaction_result) { 180 MakeChromeDefaultResult interaction_result) {
185 DCHECK_CURRENTLY_ON(BrowserThread::UI); 181 DCHECK_CURRENTLY_ON(BrowserThread::UI);
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 Profile::FromWebUI(web_ui), CreateSetAsDefaultBrowserUIHTMLSource()); 359 Profile::FromWebUI(web_ui), CreateSetAsDefaultBrowserUIHTMLSource());
364 } 360 }
365 361
366 // static 362 // static
367 void SetAsDefaultBrowserUI::Show(Profile* profile, Browser* browser) { 363 void SetAsDefaultBrowserUI::Show(Profile* profile, Browser* browser) {
368 DCHECK_CURRENTLY_ON(BrowserThread::UI); 364 DCHECK_CURRENTLY_ON(BrowserThread::UI);
369 SetAsDefaultBrowserDialogImpl* dialog = 365 SetAsDefaultBrowserDialogImpl* dialog =
370 new SetAsDefaultBrowserDialogImpl(profile, browser); 366 new SetAsDefaultBrowserDialogImpl(profile, browser);
371 dialog->ShowDialog(); 367 dialog->ShowDialog();
372 } 368 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698