Home | History | Annotate | Download | only in google
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_INFOBAR_DELEGATE_H_
      6 #define CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_INFOBAR_DELEGATE_H_
      7 
      8 #include "chrome/browser/infobars/confirm_infobar_delegate.h"
      9 #include "url/gurl.h"
     10 
     11 class GoogleURLTracker;
     12 
     13 // This infobar is shown by the GoogleURLTracker when the Google base URL has
     14 // changed.
     15 class GoogleURLTrackerInfoBarDelegate : public ConfirmInfoBarDelegate {
     16  public:
     17   // Creates a Google URL tracker infobar delegate and adds it to
     18   // |infobar_service|.  Returns the delegate if it was successfully added.
     19   static GoogleURLTrackerInfoBarDelegate* Create(
     20       InfoBarService* infobar_service,
     21       GoogleURLTracker* google_url_tracker,
     22       const GURL& search_url);
     23 
     24   // ConfirmInfoBarDelegate:
     25   virtual bool Accept() OVERRIDE;
     26   virtual bool Cancel() OVERRIDE;
     27 
     28   // Other than set_pending_id(), these accessors are only used by test code.
     29   const GURL& search_url() const { return search_url_; }
     30   void set_search_url(const GURL& search_url) { search_url_ = search_url; }
     31   int pending_id() const { return pending_id_; }
     32   void set_pending_id(int pending_id) { pending_id_ = pending_id; }
     33 
     34   // These are virtual so test code can override them in a subclass.
     35   virtual void Update(const GURL& search_url);
     36   virtual void Close(bool redo_search);
     37 
     38  protected:
     39   GoogleURLTrackerInfoBarDelegate(InfoBarService* infobar_service,
     40                                   GoogleURLTracker* google_url_tracker,
     41                                   const GURL& search_url);
     42   virtual ~GoogleURLTrackerInfoBarDelegate();
     43 
     44  private:
     45   // ConfirmInfoBarDelegate:
     46   virtual string16 GetMessageText() const OVERRIDE;
     47   virtual string16 GetButtonLabel(InfoBarButton button) const OVERRIDE;
     48   virtual string16 GetLinkText() const OVERRIDE;
     49   virtual bool LinkClicked(WindowOpenDisposition disposition) OVERRIDE;
     50   virtual bool ShouldExpireInternal(
     51       const content::LoadCommittedDetails& details) const OVERRIDE;
     52 
     53   GoogleURLTracker* google_url_tracker_;
     54   GURL search_url_;
     55   int pending_id_;
     56 
     57   DISALLOW_COPY_AND_ASSIGN(GoogleURLTrackerInfoBarDelegate);
     58 };
     59 
     60 #endif  // CHROME_BROWSER_GOOGLE_GOOGLE_URL_TRACKER_INFOBAR_DELEGATE_H_
     61