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..4b1266dba8153e58393129c87ad181e31692340b 100644 |
--- a/chrome/browser/chromeos/enrollment_dialog_view.cc |
+++ b/chrome/browser/chromeos/enrollment_dialog_view.cc |
@@ -8,10 +8,8 @@ |
#include "base/utf_string_conversions.h" |
#include "chrome/browser/chromeos/cros/network_library.h" |
#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/host_desktop.h" |
+#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/ui/browser_navigator.h" |
#include "content/public/common/page_transition_types.h" |
#include "extensions/common/constants.h" |
#include "grit/generated_resources.h" |
@@ -21,6 +19,7 @@ |
#include "ui/views/layout/grid_layout.h" |
#include "ui/views/layout/layout_constants.h" |
#include "ui/views/widget/widget.h" |
+#include "ui/views/window/dialog_delegate.h" |
namespace chromeos { |
@@ -46,6 +45,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 +62,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 +77,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,23 +108,21 @@ 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)); |
- } |
- DCHECK(browser); |
- chrome::AddSelectedTabWithURL(browser, target_uri_, |
- content::PAGE_TRANSITION_LINK); |
+ accepted_ = true; |
return true; |
} |
+void EnrollmentDialogView::OnClose() { |
+ if (!accepted_) |
+ return; |
+ chrome::NavigateParams params(profile_, |
+ GURL(target_uri_), |
+ content::PAGE_TRANSITION_LINK); |
+ params.disposition = NEW_FOREGROUND_TAB; |
+ params.window_action = chrome::NavigateParams::SHOW_WINDOW; |
+ chrome::Navigate(¶ms); |
+} |
+ |
string16 EnrollmentDialogView::GetDialogButtonLabel( |
ui::DialogButton button) const { |
if (button == ui::DIALOG_BUTTON_OK) |