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

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: 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 (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_(new ShellIntegration::DefaultBrowserWorker(
132 set_default_returned_(false), set_default_result_(false), 131 this,
133 response_delegate_(response_delegate) { 132 /*delete_observer=*/false)),
134 } 133 set_default_returned_(false),
134 set_default_result_(false),
135 response_delegate_(response_delegate) {}
135 136
136 SetAsDefaultBrowserHandler::~SetAsDefaultBrowserHandler() { 137 SetAsDefaultBrowserHandler::~SetAsDefaultBrowserHandler() {
137 default_browser_worker_->ObserverDestroyed(); 138 default_browser_worker_->ObserverDestroyed();
138 } 139 }
139 140
140 void SetAsDefaultBrowserHandler::RegisterMessages() { 141 void SetAsDefaultBrowserHandler::RegisterMessages() {
141 web_ui()->RegisterMessageCallback( 142 web_ui()->RegisterMessageCallback(
142 "SetAsDefaultBrowser:LaunchSetDefaultBrowserFlow", 143 "SetAsDefaultBrowser:LaunchSetDefaultBrowserFlow",
143 base::Bind(&SetAsDefaultBrowserHandler::HandleLaunchSetDefaultBrowserFlow, 144 base::Bind(&SetAsDefaultBrowserHandler::HandleLaunchSetDefaultBrowserFlow,
144 base::Unretained(this))); 145 base::Unretained(this)));
(...skipping 17 matching lines...) Expand all
162 163
163 // Otherwise, keep the dialog open since the user probably didn't make a 164 // Otherwise, keep the dialog open since the user probably didn't make a
164 // choice. 165 // choice.
165 } 166 }
166 167
167 void SetAsDefaultBrowserHandler::OnSetAsDefaultConcluded(bool call_result) { 168 void SetAsDefaultBrowserHandler::OnSetAsDefaultConcluded(bool call_result) {
168 set_default_returned_ = true; 169 set_default_returned_ = true;
169 set_default_result_ = call_result; 170 set_default_result_ = call_result;
170 } 171 }
171 172
172 bool SetAsDefaultBrowserHandler::IsInteractiveSetDefaultPermitted() {
173 return true;
174 }
175
176 void SetAsDefaultBrowserHandler::HandleLaunchSetDefaultBrowserFlow( 173 void SetAsDefaultBrowserHandler::HandleLaunchSetDefaultBrowserFlow(
177 const base::ListValue* args) { 174 const base::ListValue* args) {
178 set_default_returned_ = false; 175 set_default_returned_ = false;
179 set_default_result_ = false; 176 set_default_result_ = false;
180 default_browser_worker_->StartSetAsDefault(); 177 default_browser_worker_->StartSetAsDefault();
181 } 178 }
182 179
183 void SetAsDefaultBrowserHandler::ConcludeInteraction( 180 void SetAsDefaultBrowserHandler::ConcludeInteraction(
184 MakeChromeDefaultResult interaction_result) { 181 MakeChromeDefaultResult interaction_result) {
185 DCHECK_CURRENTLY_ON(BrowserThread::UI); 182 DCHECK_CURRENTLY_ON(BrowserThread::UI);
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 Profile::FromWebUI(web_ui), CreateSetAsDefaultBrowserUIHTMLSource()); 360 Profile::FromWebUI(web_ui), CreateSetAsDefaultBrowserUIHTMLSource());
364 } 361 }
365 362
366 // static 363 // static
367 void SetAsDefaultBrowserUI::Show(Profile* profile, Browser* browser) { 364 void SetAsDefaultBrowserUI::Show(Profile* profile, Browser* browser) {
368 DCHECK_CURRENTLY_ON(BrowserThread::UI); 365 DCHECK_CURRENTLY_ON(BrowserThread::UI);
369 SetAsDefaultBrowserDialogImpl* dialog = 366 SetAsDefaultBrowserDialogImpl* dialog =
370 new SetAsDefaultBrowserDialogImpl(profile, browser); 367 new SetAsDefaultBrowserDialogImpl(profile, browser);
371 dialog->ShowDialog(); 368 dialog->ShowDialog();
372 } 369 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698