Chromium Code Reviews| Index: chrome/browser/chromeos/enrollment_dialog_view.cc |
| diff --git a/chrome/browser/chromeos/enrollment_dialog_view.cc b/chrome/browser/chromeos/enrollment_dialog_view.cc |
| index cfab93da7affe423e7325dba572a92c394d86f0e..07e77c6bfe70c506628216a7828026ad539f1b8c 100644 |
| --- a/chrome/browser/chromeos/enrollment_dialog_view.cc |
| +++ b/chrome/browser/chromeos/enrollment_dialog_view.cc |
| @@ -10,7 +10,7 @@ |
| #include "chrome/browser/extensions/extension_host.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/browser/ui/browser_finder.h" |
| -#include "chrome/browser/ui/browser_tabstrip.h" |
| +#include "chrome/browser/ui/browser_navigator.h" |
| #include "chrome/browser/ui/host_desktop.h" |
| #include "content/public/common/page_transition_types.h" |
| #include "extensions/common/constants.h" |
| @@ -46,6 +46,7 @@ class EnrollmentDialogView : public views::DialogDelegateView { |
| // views::DialogDelegateView overrides |
| virtual int GetDialogButtons() const OVERRIDE; |
| virtual bool Accept() OVERRIDE; |
| + virtual void OnClose() OVERRIDE; |
| virtual string16 GetDialogButtonLabel(ui::DialogButton button) const OVERRIDE; |
| // views::WidgetDelegate overrides |
| @@ -62,6 +63,7 @@ class EnrollmentDialogView : public views::DialogDelegateView { |
| const base::Closure& connect); |
| void InitDialog(); |
| + bool accepted_; |
| std::string network_name_; |
| Profile* profile_; |
| GURL target_uri_; |
| @@ -76,7 +78,8 @@ EnrollmentDialogView::EnrollmentDialogView(const std::string& network_name, |
| Profile* profile, |
| const GURL& target_uri, |
| const base::Closure& connect) |
| - : network_name_(network_name), |
| + : accepted_(false), |
| + network_name_(network_name), |
| profile_(profile), |
| target_uri_(target_uri), |
| connect_(connect), |
| @@ -106,21 +109,22 @@ int EnrollmentDialogView::GetDialogButtons() const { |
| } |
| bool EnrollmentDialogView::Accept() { |
| - // TODO(beng): use Navigate(). |
| - // Navigate to the target URI in a browser tab. |
| - Browser* browser = chrome::FindTabbedBrowser(profile_, false, |
| - chrome::HOST_DESKTOP_TYPE_ASH); |
| - if (!browser) { |
| - // Couldn't find a tabbed browser: create one. |
| - browser = new Browser( |
| - Browser::CreateParams(Browser::TYPE_TABBED, |
| - profile_, |
| - chrome::HOST_DESKTOP_TYPE_ASH)); |
| - } |
| + accepted_ = true; |
| + return true; |
| +} |
| + |
| +void EnrollmentDialogView::OnClose() { |
| + if (!accepted_) |
| + return; |
| + Browser* browser = chrome::FindOrCreateTabbedBrowser( |
| + profile_, |
| + chrome::HOST_DESKTOP_TYPE_ASH); |
| DCHECK(browser); |
| - chrome::AddSelectedTabWithURL(browser, target_uri_, |
| + chrome::NavigateParams params(browser, |
| + GURL(target_uri_), |
| content::PAGE_TRANSITION_LINK); |
| - return true; |
| + params.disposition = NEW_FOREGROUND_TAB; |
| + chrome::Navigate(¶ms); |
| } |
|
sky
2013/03/18 16:10:48
This should set params.window_action to SHOW_WINDO
|
| string16 EnrollmentDialogView::GetDialogButtonLabel( |