Chromium Code Reviews| Index: chrome/browser/ui/views/sync/one_click_signin_bubble_view.cc |
| diff --git a/chrome/browser/ui/views/sync/one_click_signin_bubble_view.cc b/chrome/browser/ui/views/sync/one_click_signin_bubble_view.cc |
| index 9d358078b6a6b82e1eb7da9072ffce48e1de915e..695b9cebf1c678e5323db165ea6dfd994641ba43 100644 |
| --- a/chrome/browser/ui/views/sync/one_click_signin_bubble_view.cc |
| +++ b/chrome/browser/ui/views/sync/one_click_signin_bubble_view.cc |
| @@ -4,12 +4,12 @@ |
| #include "chrome/browser/ui/views/sync/one_click_signin_bubble_view.h" |
| +#include "base/logging.h" |
| #include "base/message_loop.h" |
| #include "chrome/browser/google/google_util.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/views/window.h" |
| #include "chrome/common/url_constants.h" |
| -#include "content/public/common/page_transition_types.h" |
| #include "grit/chromium_strings.h" |
| #include "grit/generated_resources.h" |
| #include "ui/base/keycodes/keyboard_codes.h" |
| @@ -34,12 +34,16 @@ const int kMinimumFieldSize = 240; |
| OneClickSigninBubbleView* OneClickSigninBubbleView::bubble_view_ = NULL; |
| // static |
| -void OneClickSigninBubbleView::ShowBubble(views::View* anchor_view, |
| - Browser* browser) { |
| +void OneClickSigninBubbleView::ShowBubble( |
| + views::View* anchor_view, |
| + const base::Closure& learn_more_callback, |
| + const base::Closure& advanced_callback) { |
| if (IsShowing()) |
| return; |
| - bubble_view_ = new OneClickSigninBubbleView(anchor_view, browser); |
| + bubble_view_ = |
| + new OneClickSigninBubbleView(anchor_view, learn_more_callback, |
| + advanced_callback); |
| browser::CreateViewsBubble(bubble_view_); |
| bubble_view_->Show(); |
| } |
| @@ -55,15 +59,19 @@ void OneClickSigninBubbleView::Hide() { |
| bubble_view_->GetWidget()->Close(); |
| } |
| -OneClickSigninBubbleView::OneClickSigninBubbleView(views::View* anchor_view, |
| - Browser* browser) |
| +OneClickSigninBubbleView::OneClickSigninBubbleView( |
| + views::View* anchor_view, |
| + const base::Closure& learn_more_callback, |
| + const base::Closure& advanced_callback) |
| : BubbleDelegateView(anchor_view, views::BubbleBorder::TOP_RIGHT), |
| learn_more_link_(NULL), |
| advanced_link_(NULL), |
| close_button_(NULL), |
| - browser_(browser), |
| + learn_more_callback_(learn_more_callback), |
| + advanced_callback_(advanced_callback), |
| message_loop_for_testing_(NULL) { |
| - DCHECK(browser_); |
| + DCHECK(!learn_more_callback_.is_null()); |
| + DCHECK(!advanced_callback_.is_null()); |
| } |
| OneClickSigninBubbleView::~OneClickSigninBubbleView() { |
| @@ -160,14 +168,11 @@ void OneClickSigninBubbleView::LinkClicked(views::Link* source, |
| int event_flags) { |
| StartFade(false); |
| - GURL url; |
| if (source == learn_more_link_) { |
|
sky
2012/03/28 14:49:17
nit: no {}
akalin
2012/03/28 15:19:21
Done.
|
| - url = GURL(chrome::kSyncLearnMoreURL); |
| + learn_more_callback_.Run(); |
| } else { |
| - url = GURL(std::string(chrome::kChromeUISettingsURL) + |
| - chrome::kSyncSetupSubPage); |
| + advanced_callback_.Run(); |
| } |
| - browser_->AddSelectedTabWithURL(url, content::PAGE_TRANSITION_AUTO_BOOKMARK); |
| } |
| void OneClickSigninBubbleView::ButtonPressed( |