Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Unified Diff: chrome/browser/ui/sync/one_click_signin_helper.cc

Issue 10332185: Update behavior of one-click infobar to remove modal dialog, add "undo". (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add enum Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/sync/one_click_signin_helper.cc
diff --git a/chrome/browser/ui/sync/one_click_signin_helper.cc b/chrome/browser/ui/sync/one_click_signin_helper.cc
index 736af5e55c663be4638903dec557127f6e7f4707..7164f8d5117f33533c06e3d3e9f961d16c75a319 100644
--- a/chrome/browser/ui/sync/one_click_signin_helper.cc
+++ b/chrome/browser/ui/sync/one_click_signin_helper.cc
@@ -22,7 +22,6 @@
#include "chrome/browser/tab_contents/tab_util.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/sync/one_click_signin_dialog.h"
#include "chrome/browser/ui/sync/one_click_signin_histogram.h"
#include "chrome/browser/ui/sync/one_click_signin_sync_starter.h"
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
@@ -63,6 +62,8 @@ class OneClickLoginInfoBarDelegate : public ConfirmInfoBarDelegate {
virtual string16 GetButtonLabel(InfoBarButton button) const OVERRIDE;
virtual bool Accept() OVERRIDE;
virtual bool Cancel() OVERRIDE;
+ virtual string16 GetLinkText() const OVERRIDE;
+ virtual bool LinkClicked(WindowOpenDisposition disposition) OVERRIDE;
virtual InfoBarAutomationType GetInfoBarAutomationType() const OVERRIDE;
@@ -129,46 +130,29 @@ string16 OneClickLoginInfoBarDelegate::GetButtonLabel(
namespace {
-void OnLearnMore(Browser* browser) {
- browser->AddSelectedTabWithURL(
- GURL(chrome::kSyncLearnMoreURL),
- content::PAGE_TRANSITION_AUTO_BOOKMARK);
-}
-
-void OnAdvanced(Browser* browser) {
- browser->AddSelectedTabWithURL(
- GURL(std::string(chrome::kChromeUISettingsURL) +
- chrome::kSyncSetupSubPage),
- content::PAGE_TRANSITION_AUTO_BOOKMARK);
-}
-
// Start syncing with the given user information.
void StartSync(content::WebContents* web_contents,
const std::string& session_index,
const std::string& email,
const std::string& password,
- bool use_default_settings) {
+ OneClickSigninSyncStarter::StartSyncMode start_mode) {
// The starter deletes itself once its done.
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
ignore_result(
new OneClickSigninSyncStarter(
- profile, session_index, email, password, use_default_settings));
-
- Browser* browser = browser::FindBrowserWithWebContents(web_contents);
- browser->window()->ShowOneClickSigninBubble(
- base::Bind(&OnLearnMore, base::Unretained(browser)),
- base::Bind(&OnAdvanced, base::Unretained(browser)));
+ profile, session_index, email, password, start_mode));
}
} // namespace
bool OneClickLoginInfoBarDelegate::Accept() {
DisableOneClickSignIn();
+ content::WebContents* web_contents = owner()->web_contents();
RecordHistogramAction(one_click_signin::HISTOGRAM_ACCEPTED);
- ShowOneClickSigninDialog(
- owner()->web_contents()->GetView()->GetTopLevelNativeWindow(),
- base::Bind(&StartSync, owner()->web_contents(), session_index_, email_,
+ Browser* browser = browser::FindBrowserWithWebContents(web_contents);
+ browser->window()->ShowOneClickSigninBubble(
+ base::Bind(&StartSync, web_contents, session_index_, email_,
password_));
button_pressed_ = true;
return true;
@@ -181,6 +165,28 @@ bool OneClickLoginInfoBarDelegate::Cancel() {
return true;
}
+string16 OneClickLoginInfoBarDelegate::GetLinkText() const {
+ return l10n_util::GetStringUTF16(IDS_LEARN_MORE);
+}
+
+bool OneClickLoginInfoBarDelegate::LinkClicked(
+ WindowOpenDisposition disposition) {
+ RecordHistogramAction(one_click_signin::HISTOGRAM_LEARN_MORE);
+ content::OpenURLParams params(
+ GURL(chrome::kChromeSyncLearnMoreURL), content::Referrer(), disposition,
+ // Pretend the user typed this URL, so that navigating to
+ // it will be the default action when it's typed again in
+ // the future.
+ content::PAGE_TRANSITION_TYPED,
+ false);
+ owner()->web_contents()->OpenURL(params);
+
+ // We should always close, even if the navigation did not occur within this
+ // WebContents.
+ return true;
+}
+
+
InfoBarDelegate::InfoBarAutomationType
OneClickLoginInfoBarDelegate::GetInfoBarAutomationType() const {
return ONE_CLICK_LOGIN_INFOBAR;

Powered by Google App Engine
This is Rietveld 408576698