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

Side by Side Diff: chrome/browser/ui/search/search_model.cc

Issue 12631008: alternate ntp: implement Show/HideBars API to reduce jank when showing/hiding bars (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased, resolved conflicts Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/search/search_model.h" 5 #include "chrome/browser/ui/search/search_model.h"
6 6
7 #include "chrome/browser/instant/search.h" 7 #include "chrome/browser/instant/search.h"
8 #include "chrome/browser/ui/search/search_model_observer.h" 8 #include "chrome/browser/ui/search/search_model_observer.h"
9 9
10 namespace chrome { 10 namespace chrome {
11 namespace search { 11 namespace search {
12 12
13 SearchModel::SearchModel() { 13 SearchModel::SearchModel() : top_bars_visible_(true) {
14 } 14 }
15 15
16 SearchModel::~SearchModel() { 16 SearchModel::~SearchModel() {
17 } 17 }
18 18
19 void SearchModel::SetMode(const Mode& new_mode) { 19 void SearchModel::SetMode(const Mode& new_mode) {
20 DCHECK(IsInstantExtendedAPIEnabled()) 20 DCHECK(IsInstantExtendedAPIEnabled())
21 << "Please do not try to set the SearchModel mode without first " 21 << "Please do not try to set the SearchModel mode without first "
22 << "checking if Search is enabled."; 22 << "checking if Search is enabled.";
23 23
24 if (mode_ == new_mode) 24 if (mode_ == new_mode)
25 return; 25 return;
26 26
27 const Mode old_mode = mode_; 27 const Mode old_mode = mode_;
28 mode_ = new_mode; 28 mode_ = new_mode;
29 29
30 // For |SEARCH_SUGGESTIONS| and |SEARCH_RESULTS| modes, SearchBox API will
31 // determine visibility of top bars via SetTopBarsVisible(); for other modes,
32 // top bars are always visible, if available.
33 if (!mode_.is_search())
34 top_bars_visible_ = true;
35
30 FOR_EACH_OBSERVER(SearchModelObserver, observers_, 36 FOR_EACH_OBSERVER(SearchModelObserver, observers_,
31 ModeChanged(old_mode, mode_)); 37 ModelChanged(old_mode, mode_, top_bars_visible_));
38 }
39
40 void SearchModel::SetTopBarsVisible(bool visible) {
41 DCHECK(IsInstantExtendedAPIEnabled())
42 << "Please do not try to set the SearchModel mode without first "
43 << "checking if Search is enabled.";
44
45 top_bars_visible_ = visible;
dhollowa 2013/03/13 17:21:55 Do an early return if there's no change to the vis
kuan 2013/03/13 22:21:07 Done.
46
dhollowa 2013/03/13 17:21:55 Save off old_state_ here so the receiver can dete
kuan 2013/03/13 22:21:07 Done.
47 FOR_EACH_OBSERVER(SearchModelObserver, observers_,
48 ModelChanged(mode_, mode_, top_bars_visible_));
32 } 49 }
33 50
34 void SearchModel::AddObserver(SearchModelObserver* observer) { 51 void SearchModel::AddObserver(SearchModelObserver* observer) {
35 observers_.AddObserver(observer); 52 observers_.AddObserver(observer);
36 } 53 }
37 54
38 void SearchModel::RemoveObserver(SearchModelObserver* observer) { 55 void SearchModel::RemoveObserver(SearchModelObserver* observer) {
39 observers_.RemoveObserver(observer); 56 observers_.RemoveObserver(observer);
40 } 57 }
41 58
42 } // namespace search 59 } // namespace search
43 } // namespace chrome 60 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698