OLD | NEW |
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/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 // Event handler for SetAsDefaultBrowserUI. Capable of setting Chrome as the | 91 // Event handler for SetAsDefaultBrowserUI. Capable of setting Chrome as the |
92 // default browser on button click, closing itself and triggering Chrome | 92 // default browser on button click, closing itself and triggering Chrome |
93 // restart. | 93 // restart. |
94 class SetAsDefaultBrowserHandler | 94 class SetAsDefaultBrowserHandler |
95 : public WebUIMessageHandler, | 95 : public WebUIMessageHandler, |
96 public base::SupportsWeakPtr<SetAsDefaultBrowserHandler>, | 96 public base::SupportsWeakPtr<SetAsDefaultBrowserHandler>, |
97 public ShellIntegration::DefaultWebClientObserver { | 97 public ShellIntegration::DefaultWebClientObserver { |
98 public: | 98 public: |
99 explicit SetAsDefaultBrowserHandler( | 99 explicit SetAsDefaultBrowserHandler( |
100 const base::WeakPtr<ResponseDelegate>& response_delegate); | 100 const base::WeakPtr<ResponseDelegate>& response_delegate); |
101 virtual ~SetAsDefaultBrowserHandler(); | 101 ~SetAsDefaultBrowserHandler() override; |
102 | 102 |
103 // WebUIMessageHandler implementation. | 103 // WebUIMessageHandler implementation. |
104 virtual void RegisterMessages() override; | 104 void RegisterMessages() override; |
105 | 105 |
106 // ShellIntegration::DefaultWebClientObserver implementation. | 106 // ShellIntegration::DefaultWebClientObserver implementation. |
107 virtual void SetDefaultWebClientUIState( | 107 void SetDefaultWebClientUIState( |
108 ShellIntegration::DefaultWebClientUIState state) override; | 108 ShellIntegration::DefaultWebClientUIState state) override; |
109 virtual void OnSetAsDefaultConcluded(bool close_chrome) override; | 109 void OnSetAsDefaultConcluded(bool close_chrome) override; |
110 virtual bool IsInteractiveSetDefaultPermitted() override; | 110 bool IsInteractiveSetDefaultPermitted() override; |
111 | 111 |
112 private: | 112 private: |
113 // Handler for the 'Next' (or 'make Chrome the Metro browser') button. | 113 // Handler for the 'Next' (or 'make Chrome the Metro browser') button. |
114 void HandleLaunchSetDefaultBrowserFlow(const base::ListValue* args); | 114 void HandleLaunchSetDefaultBrowserFlow(const base::ListValue* args); |
115 | 115 |
116 // Close this web ui. | 116 // Close this web ui. |
117 void ConcludeInteraction(MakeChromeDefaultResult interaction_result); | 117 void ConcludeInteraction(MakeChromeDefaultResult interaction_result); |
118 | 118 |
119 scoped_refptr<ShellIntegration::DefaultBrowserWorker> default_browser_worker_; | 119 scoped_refptr<ShellIntegration::DefaultBrowserWorker> default_browser_worker_; |
120 bool set_default_returned_; | 120 bool set_default_returned_; |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 } | 194 } |
195 } | 195 } |
196 | 196 |
197 // A web dialog delegate implementation for when 'Make Chrome Metro' UI | 197 // A web dialog delegate implementation for when 'Make Chrome Metro' UI |
198 // is displayed on a dialog. | 198 // is displayed on a dialog. |
199 class SetAsDefaultBrowserDialogImpl : public ui::WebDialogDelegate, | 199 class SetAsDefaultBrowserDialogImpl : public ui::WebDialogDelegate, |
200 public ResponseDelegate, | 200 public ResponseDelegate, |
201 public chrome::BrowserListObserver { | 201 public chrome::BrowserListObserver { |
202 public: | 202 public: |
203 SetAsDefaultBrowserDialogImpl(Profile* profile, Browser* browser); | 203 SetAsDefaultBrowserDialogImpl(Profile* profile, Browser* browser); |
204 virtual ~SetAsDefaultBrowserDialogImpl(); | 204 ~SetAsDefaultBrowserDialogImpl() override; |
205 // Show a modal web dialog with kChromeUIMetroFlowURL page. | 205 // Show a modal web dialog with kChromeUIMetroFlowURL page. |
206 void ShowDialog(); | 206 void ShowDialog(); |
207 | 207 |
208 protected: | 208 protected: |
209 // Overridden from WebDialogDelegate: | 209 // Overridden from WebDialogDelegate: |
210 virtual ui::ModalType GetDialogModalType() const override; | 210 ui::ModalType GetDialogModalType() const override; |
211 virtual base::string16 GetDialogTitle() const override; | 211 base::string16 GetDialogTitle() const override; |
212 virtual GURL GetDialogContentURL() const override; | 212 GURL GetDialogContentURL() const override; |
213 virtual void GetWebUIMessageHandlers( | 213 void GetWebUIMessageHandlers( |
214 std::vector<WebUIMessageHandler*>* handlers) const override; | 214 std::vector<WebUIMessageHandler*>* handlers) const override; |
215 virtual void GetDialogSize(gfx::Size* size) const override; | 215 void GetDialogSize(gfx::Size* size) const override; |
216 virtual std::string GetDialogArgs() const override; | 216 std::string GetDialogArgs() const override; |
217 virtual void OnDialogClosed(const std::string& json_retval) override; | 217 void OnDialogClosed(const std::string& json_retval) override; |
218 virtual void OnCloseContents(WebContents* source, | 218 void OnCloseContents(WebContents* source, bool* out_close_dialog) override; |
219 bool* out_close_dialog) override; | 219 bool ShouldShowDialogTitle() const override; |
220 virtual bool ShouldShowDialogTitle() const override; | 220 bool HandleContextMenu(const content::ContextMenuParams& params) override; |
221 virtual bool HandleContextMenu( | |
222 const content::ContextMenuParams& params) override; | |
223 | 221 |
224 // Overridden from ResponseDelegate: | 222 // Overridden from ResponseDelegate: |
225 virtual void SetDialogInteractionResult(MakeChromeDefaultResult result); | 223 void SetDialogInteractionResult(MakeChromeDefaultResult result) override; |
226 | 224 |
227 // Overridden from BrowserListObserver: | 225 // Overridden from BrowserListObserver: |
228 virtual void OnBrowserRemoved(Browser* browser) override; | 226 void OnBrowserRemoved(Browser* browser) override; |
229 | 227 |
230 private: | 228 private: |
231 Profile* profile_; | 229 Profile* profile_; |
232 Browser* browser_; | 230 Browser* browser_; |
233 mutable bool owns_handler_; | 231 mutable bool owns_handler_; |
234 base::WeakPtrFactory<ResponseDelegate> response_delegate_ptr_factory_; | 232 base::WeakPtrFactory<ResponseDelegate> response_delegate_ptr_factory_; |
235 SetAsDefaultBrowserHandler* handler_; | 233 SetAsDefaultBrowserHandler* handler_; |
236 MakeChromeDefaultResult dialog_interaction_result_; | 234 MakeChromeDefaultResult dialog_interaction_result_; |
237 | 235 |
238 DISALLOW_COPY_AND_ASSIGN(SetAsDefaultBrowserDialogImpl); | 236 DISALLOW_COPY_AND_ASSIGN(SetAsDefaultBrowserDialogImpl); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 Profile::FromWebUI(web_ui), CreateSetAsDefaultBrowserUIHTMLSource()); | 361 Profile::FromWebUI(web_ui), CreateSetAsDefaultBrowserUIHTMLSource()); |
364 } | 362 } |
365 | 363 |
366 // static | 364 // static |
367 void SetAsDefaultBrowserUI::Show(Profile* profile, Browser* browser) { | 365 void SetAsDefaultBrowserUI::Show(Profile* profile, Browser* browser) { |
368 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 366 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
369 SetAsDefaultBrowserDialogImpl* dialog = | 367 SetAsDefaultBrowserDialogImpl* dialog = |
370 new SetAsDefaultBrowserDialogImpl(profile, browser); | 368 new SetAsDefaultBrowserDialogImpl(profile, browser); |
371 dialog->ShowDialog(); | 369 dialog->ShowDialog(); |
372 } | 370 } |
OLD | NEW |