| Index: chrome/browser/infobars/infobar_container.h
|
| diff --git a/chrome/browser/infobars/infobar_container.h b/chrome/browser/infobars/infobar_container.h
|
| index 508bf76dd23826c5d8ecda213526b6d07069a2ea..c3f03305839c3964216ec3006f511cf9dcf68048 100644
|
| --- a/chrome/browser/infobars/infobar_container.h
|
| +++ b/chrome/browser/infobars/infobar_container.h
|
| @@ -9,6 +9,7 @@
|
|
|
| #include "base/compiler_specific.h"
|
| #include "base/time.h"
|
| +#include "chrome/browser/instant/instant_model_observer.h"
|
| #include "chrome/browser/ui/search/search_model_observer.h"
|
| #include "chrome/common/search_types.h"
|
| #include "content/public/browser/notification_observer.h"
|
| @@ -33,16 +34,24 @@ class SearchModel;
|
| // Platforms need to subclass this to implement a few platform-specific
|
| // functions, which are pure virtual here.
|
| //
|
| -// This class also observes changes to the SearchModel mode. If the user changes
|
| -// into suggestions mode, it hides all the infobars temporarily. When the user
|
| -// changes back out of suggestions mode, it reshows any infobars, and starts a
|
| -// 50 ms window during which any attempts to re-hide any infobars are handled
|
| -// without animation. This prevents glitchy-looking behavior when the user
|
| -// navigates following a mode change, which otherwise would re-show the infobars
|
| -// only to instantly animate them closed. The window is canceled if a tab
|
| -// change occurs.
|
| +// This class also observes changes to the SearchModel modes. It hides infobars
|
| +// temporarily if the user changes into |SEARCH_SUGGESTIONS| mode (refer to
|
| +// chrome::search::Mode in chrome/common/search_types.h for all search modes)
|
| +// when on a :
|
| +// - |DEFAULT| page: when instant preview is ready;
|
| +// - |NTP| or |SEARCH_RESULTS| page: immediately;
|
| +// TODO(kuan): this scenario requires more complex synchronization with
|
| +// renderer SearchBoxAPI and will be implemented as the next step;
|
| +// for now, hiding is immediate.
|
| +// When the user changes back out of |SEARCH_SUGGESTIONS| mode, it reshows any
|
| +// infobars, and starts a 50 ms window during which any attempts to re-hide any
|
| +// infobars are handled without animation. This prevents glitchy-looking
|
| +// behavior when the user navigates following a mode change, which otherwise
|
| +// would re-show the infobars only to instantly animate them closed. The window
|
| +// to re-hide infobars without animation is canceled if a tab change occurs.
|
| class InfoBarContainer : public content::NotificationObserver,
|
| - public chrome::search::SearchModelObserver {
|
| + public chrome::search::SearchModelObserver,
|
| + public InstantModelObserver {
|
| public:
|
| class Delegate {
|
| public:
|
| @@ -101,6 +110,9 @@ class InfoBarContainer : public content::NotificationObserver,
|
|
|
| const Delegate* delegate() const { return delegate_; }
|
|
|
| + // InstantModelObserver:
|
| + virtual void PreviewStateChanged(const InstantModel& model) OVERRIDE;
|
| +
|
| protected:
|
| // Subclasses must call this during destruction, so that we can remove
|
| // infobars (which will call the pure virtual functions below) while the
|
|
|