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

Unified Diff: chrome/browser/ui/views/sync/one_click_signin_bubble_view.h

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: rebase 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/views/sync/one_click_signin_bubble_view.h
diff --git a/chrome/browser/ui/views/sync/one_click_signin_bubble_view.h b/chrome/browser/ui/views/sync/one_click_signin_bubble_view.h
index 53abb0f595f161520079331ebbc1a4ffcf69c7ec..b4d2ab0a63c4cb58f424fcb07e022528468aff81 100644
--- a/chrome/browser/ui/views/sync/one_click_signin_bubble_view.h
+++ b/chrome/browser/ui/views/sync/one_click_signin_bubble_view.h
@@ -9,7 +9,9 @@
#include "base/basictypes.h"
#include "base/callback.h"
#include "base/compiler_specific.h"
+#include "base/gtest_prod_util.h"
#include "base/string16.h"
+#include "chrome/browser/ui/browser_window.h"
#include "ui/views/bubble/bubble_delegate.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/controls/link_listener.h"
@@ -28,11 +30,10 @@ class OneClickSigninBubbleView : public views::BubbleDelegateView,
public views::ButtonListener {
public:
// Show the one-click signin bubble if not already showing. The bubble
- // will be placed visually beneath |anchor_view|. The |browser| is used
- // to open links.
+ // will be placed visually beneath |anchor_view|. |start_sync| is called
+ // to start sync.
static void ShowBubble(views::View* anchor_view,
- const base::Closure& learn_more_callback,
- const base::Closure& advanced_callback);
+ const BrowserWindow::StartSyncCallback& start_sync);
static bool IsShowing();
@@ -42,19 +43,17 @@ class OneClickSigninBubbleView : public views::BubbleDelegateView,
// method is meant to be called only from tests.
static OneClickSigninBubbleView* view_for_testing() { return bubble_view_; }
- // The following accessor message should only be used for testing.
- views::Link* learn_more_link_for_testing() const { return learn_more_link_; }
- views::Link* advanced_link_for_testing() const { return advanced_link_; }
- views::TextButton* close_button_for_testing() const { return close_button_; }
- void set_message_loop_for_testing(MessageLoop* loop) {
- message_loop_for_testing_ = loop;
- }
-
private:
- // Creates a BookmarkBubbleView.
- OneClickSigninBubbleView(views::View* anchor_view,
- const base::Closure& learn_more_callback,
- const base::Closure& advanced_callback);
+ friend class OneClickSigninBubbleViewBrowserTest;
+
+ FRIEND_TEST_ALL_PREFIXES(OneClickSigninBubbleViewBrowserTest, OkButton);
+ FRIEND_TEST_ALL_PREFIXES(OneClickSigninBubbleViewBrowserTest, UndoButton);
+ FRIEND_TEST_ALL_PREFIXES(OneClickSigninBubbleViewBrowserTest, AdvancedLink);
+
+ // Creates a OneClickSigninBubbleView.
+ OneClickSigninBubbleView(
+ views::View* anchor_view,
+ const BrowserWindow::StartSyncCallback& start_sync_callback);
virtual ~OneClickSigninBubbleView();
@@ -78,18 +77,17 @@ class OneClickSigninBubbleView : public views::BubbleDelegateView,
// The bubble, if we're showing one.
static OneClickSigninBubbleView* bubble_view_;
- // Link to web page to learn more about sync.
- views::Link* learn_more_link_;
-
// Link to sync setup advanced page.
views::Link* advanced_link_;
- // Button to close the window.
- views::TextButton* close_button_;
+ // Controls at bottom of bubble.
+ views::TextButton* ok_button_;
+ views::TextButton* undo_button_;
- // The callbacks for the links.
- base::Closure learn_more_callback_;
- base::Closure advanced_callback_;
+ // This callback is nulled once its called, so that it is called only once.
+ // It will be called when the bubble is closed if it has not been called
+ // and nulled earlier.
+ BrowserWindow::StartSyncCallback start_sync_callback_;
// A message loop used only with unit tests.
MessageLoop* message_loop_for_testing_;
« no previous file with comments | « chrome/browser/ui/views/frame/browser_view.cc ('k') | chrome/browser/ui/views/sync/one_click_signin_bubble_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698