| 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..23ce53e15018824844b1dc902a5933ce1f30efdc 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,10 @@ void OneClickSigninBubbleView::LinkClicked(views::Link* source,
|
| int event_flags) {
|
| StartFade(false);
|
|
|
| - GURL url;
|
| - if (source == learn_more_link_) {
|
| - url = GURL(chrome::kSyncLearnMoreURL);
|
| - } else {
|
| - url = GURL(std::string(chrome::kChromeUISettingsURL) +
|
| - chrome::kSyncSetupSubPage);
|
| - }
|
| - browser_->AddSelectedTabWithURL(url, content::PAGE_TRANSITION_AUTO_BOOKMARK);
|
| + if (source == learn_more_link_)
|
| + learn_more_callback_.Run();
|
| + else
|
| + advanced_callback_.Run();
|
| }
|
|
|
| void OneClickSigninBubbleView::ButtonPressed(
|
|
|