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

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: Rebase 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 // shell_integration::DefaultWebClientObserver implementation. 108 // shell_integration::DefaultWebClientObserver implementation.
109 void SetDefaultWebClientUIState( 109 void SetDefaultWebClientUIState(
110 shell_integration::DefaultWebClientUIState state) override; 110 shell_integration::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<shell_integration::DefaultBrowserWorker> 120 scoped_refptr<shell_integration::DefaultBrowserWorker>
122 default_browser_worker_; 121 default_browser_worker_;
123 bool set_default_returned_; 122 bool set_default_returned_;
124 bool set_default_result_; 123 bool set_default_result_;
125 base::WeakPtr<ResponseDelegate> response_delegate_; 124 base::WeakPtr<ResponseDelegate> response_delegate_;
126 125
127 DISALLOW_COPY_AND_ASSIGN(SetAsDefaultBrowserHandler); 126 DISALLOW_COPY_AND_ASSIGN(SetAsDefaultBrowserHandler);
128 }; 127 };
129 128
130 SetAsDefaultBrowserHandler::SetAsDefaultBrowserHandler( 129 SetAsDefaultBrowserHandler::SetAsDefaultBrowserHandler(
131 const base::WeakPtr<ResponseDelegate>& response_delegate) 130 const base::WeakPtr<ResponseDelegate>& response_delegate)
132 : default_browser_worker_( 131 : default_browser_worker_(new shell_integration::DefaultBrowserWorker(
133 new shell_integration::DefaultBrowserWorker(this)), 132 this,
133 /*delete_observer=*/false)),
Nico 2016/02/10 17:33:58 ditto
Patrick Monette 2016/02/10 20:44:42 Done.
134 set_default_returned_(false), 134 set_default_returned_(false),
135 set_default_result_(false), 135 set_default_result_(false),
136 response_delegate_(response_delegate) {} 136 response_delegate_(response_delegate) {}
137 137
138 SetAsDefaultBrowserHandler::~SetAsDefaultBrowserHandler() { 138 SetAsDefaultBrowserHandler::~SetAsDefaultBrowserHandler() {
139 default_browser_worker_->ObserverDestroyed(); 139 default_browser_worker_->ObserverDestroyed();
140 } 140 }
141 141
142 void SetAsDefaultBrowserHandler::RegisterMessages() { 142 void SetAsDefaultBrowserHandler::RegisterMessages() {
143 web_ui()->RegisterMessageCallback( 143 web_ui()->RegisterMessageCallback(
(...skipping 20 matching lines...) Expand all
164 164
165 // Otherwise, keep the dialog open since the user probably didn't make a 165 // Otherwise, keep the dialog open since the user probably didn't make a
166 // choice. 166 // choice.
167 } 167 }
168 168
169 void SetAsDefaultBrowserHandler::OnSetAsDefaultConcluded(bool call_result) { 169 void SetAsDefaultBrowserHandler::OnSetAsDefaultConcluded(bool call_result) {
170 set_default_returned_ = true; 170 set_default_returned_ = true;
171 set_default_result_ = call_result; 171 set_default_result_ = call_result;
172 } 172 }
173 173
174 bool SetAsDefaultBrowserHandler::IsInteractiveSetDefaultPermitted() {
175 return true;
176 }
177
178 void SetAsDefaultBrowserHandler::HandleLaunchSetDefaultBrowserFlow( 174 void SetAsDefaultBrowserHandler::HandleLaunchSetDefaultBrowserFlow(
179 const base::ListValue* args) { 175 const base::ListValue* args) {
180 set_default_returned_ = false; 176 set_default_returned_ = false;
181 set_default_result_ = false; 177 set_default_result_ = false;
182 default_browser_worker_->StartSetAsDefault(); 178 default_browser_worker_->StartSetAsDefault();
183 } 179 }
184 180
185 void SetAsDefaultBrowserHandler::ConcludeInteraction( 181 void SetAsDefaultBrowserHandler::ConcludeInteraction(
186 MakeChromeDefaultResult interaction_result) { 182 MakeChromeDefaultResult interaction_result) {
187 DCHECK_CURRENTLY_ON(BrowserThread::UI); 183 DCHECK_CURRENTLY_ON(BrowserThread::UI);
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 Profile::FromWebUI(web_ui), CreateSetAsDefaultBrowserUIHTMLSource()); 361 Profile::FromWebUI(web_ui), CreateSetAsDefaultBrowserUIHTMLSource());
366 } 362 }
367 363
368 // static 364 // static
369 void SetAsDefaultBrowserUI::Show(Profile* profile, Browser* browser) { 365 void SetAsDefaultBrowserUI::Show(Profile* profile, Browser* browser) {
370 DCHECK_CURRENTLY_ON(BrowserThread::UI); 366 DCHECK_CURRENTLY_ON(BrowserThread::UI);
371 SetAsDefaultBrowserDialogImpl* dialog = 367 SetAsDefaultBrowserDialogImpl* dialog =
372 new SetAsDefaultBrowserDialogImpl(profile, browser); 368 new SetAsDefaultBrowserDialogImpl(profile, browser);
373 dialog->ShowDialog(); 369 dialog->ShowDialog();
374 } 370 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698