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 95c78f8af819315f2ccf20103b466e6510086930..d04f934685472f33bcab53c96b2201879d1dc104 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 |
| @@ -12,7 +12,6 @@ |
| #include "chrome/browser/ui/sync/one_click_signin_helper.h" |
| #include "chrome/browser/ui/sync/one_click_signin_histogram.h" |
| #include "chrome/common/url_constants.h" |
| -#include "content/public/browser/web_contents.h" |
| #include "grit/chromium_strings.h" |
| #include "grit/generated_resources.h" |
| #include "grit/theme_resources.h" |
| @@ -53,26 +52,36 @@ void OneClickSigninBubbleView::ShowBubble( |
| BrowserWindow::OneClickSigninBubbleType type, |
| const string16& email, |
| const string16& error_message, |
| - ToolbarView* toolbar_view, |
| + scoped_ptr<OneClickSigninBubbleDelegate> delegate, |
| + views::View* anchor_view, |
| const BrowserWindow::StartSyncCallback& start_sync) { |
| if (IsShowing()) |
| return; |
| switch (type) { |
| case BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE: |
| - bubble_view_ = new OneClickSigninBubbleView( |
| - toolbar_view->GetWebContents(), toolbar_view->app_menu(), |
| - error_message, string16(), start_sync, false); |
| + bubble_view_ = new OneClickSigninBubbleView(error_message, |
|
bcwhite
2013/07/25 20:16:14
I think you should stick with multiple parameters
|
| + string16(), |
| + delegate.Pass(), |
| + anchor_view, |
| + start_sync, |
| + false); |
| break; |
| case BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_MODAL_DIALOG: |
| - bubble_view_ = new OneClickSigninBubbleView( |
| - toolbar_view->GetWebContents(), toolbar_view->location_bar(), |
| - string16(), string16(), start_sync, true); |
| + bubble_view_ = new OneClickSigninBubbleView(string16(), |
| + string16(), |
| + delegate.Pass(), |
| + anchor_view, |
| + start_sync, |
| + true); |
| break; |
| case BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_SAML_MODAL_DIALOG: |
| - bubble_view_ = new OneClickSigninBubbleView( |
| - toolbar_view->GetWebContents(), toolbar_view->location_bar(), |
| - string16(), email, start_sync, true); |
| + bubble_view_ = new OneClickSigninBubbleView(string16(), |
| + email, |
| + delegate.Pass(), |
| + anchor_view, |
| + start_sync, |
| + true); |
| break; |
| } |
| @@ -91,14 +100,14 @@ void OneClickSigninBubbleView::Hide() { |
| } |
| OneClickSigninBubbleView::OneClickSigninBubbleView( |
| - content::WebContents* web_contents, |
| - views::View* anchor_view, |
| const string16& error_message, |
| const string16& email, |
| + scoped_ptr<OneClickSigninBubbleDelegate> delegate, |
| + views::View* anchor_view, |
| const BrowserWindow::StartSyncCallback& start_sync_callback, |
| bool is_sync_dialog) |
| : BubbleDelegateView(anchor_view, views::BubbleBorder::TOP_RIGHT), |
| - web_contents_(web_contents), |
| + delegate_(delegate.Pass()), |
| error_message_(error_message), |
| email_(email), |
| start_sync_callback_(start_sync_callback), |
| @@ -342,14 +351,7 @@ void OneClickSigninBubbleView::LinkClicked(views::Link* source, |
| one_click_signin::HISTOGRAM_CONFIRM_LEARN_MORE); |
| clicked_learn_more_ = true; |
| } |
| - |
| - WindowOpenDisposition location = |
| - is_sync_dialog_ ? NEW_WINDOW : NEW_FOREGROUND_TAB; |
| - |
| - content::OpenURLParams params( |
| - GURL(chrome::kChromeSyncLearnMoreURL), content::Referrer(), |
| - location, content::PAGE_TRANSITION_LINK, false); |
| - web_contents_->OpenURL(params); |
| + delegate_->OnLearnMoreLinkClicked(is_sync_dialog_); |
| // don't hide the modal dialog, as this is an informational link |
| if (is_sync_dialog_) |
| @@ -364,10 +366,7 @@ void OneClickSigninBubbleView::LinkClicked(views::Link* source, |
| base::ResetAndReturn(&start_sync_callback_).Run( |
| OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST); |
| } else { |
| - content::OpenURLParams params( |
| - GURL(chrome::kChromeUISettingsURL), content::Referrer(), |
| - CURRENT_TAB, content::PAGE_TRANSITION_LINK, false); |
| - web_contents_->OpenURL(params); |
| + delegate_->OnAdvancedLinkClicked(); |
| } |
| } |