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

Side by Side Diff: chrome/browser/ui/app_list/app_list_view_delegate.cc

Issue 405353003: Merge 278990 "Put back sign in / sign out / new user handling in..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/2062/src/
Patch Set: Created 6 years, 5 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/app_list/app_list_view_delegate.h" 5 #include "chrome/browser/ui/app_list/app_list_view_delegate.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 12 matching lines...) Expand all
23 #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" 23 #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h"
24 #include "chrome/browser/ui/app_list/search/search_controller.h" 24 #include "chrome/browser/ui/app_list/search/search_controller.h"
25 #include "chrome/browser/ui/app_list/start_page_service.h" 25 #include "chrome/browser/ui/app_list/start_page_service.h"
26 #include "chrome/browser/ui/browser_finder.h" 26 #include "chrome/browser/ui/browser_finder.h"
27 #include "chrome/browser/ui/chrome_pages.h" 27 #include "chrome/browser/ui/chrome_pages.h"
28 #include "chrome/browser/ui/host_desktop.h" 28 #include "chrome/browser/ui/host_desktop.h"
29 #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" 29 #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
30 #include "chrome/browser/web_applications/web_app.h" 30 #include "chrome/browser/web_applications/web_app.h"
31 #include "chrome/common/extensions/extension_constants.h" 31 #include "chrome/common/extensions/extension_constants.h"
32 #include "chrome/common/url_constants.h" 32 #include "chrome/common/url_constants.h"
33 #include "components/signin/core/browser/signin_manager.h"
33 #include "content/public/browser/browser_thread.h" 34 #include "content/public/browser/browser_thread.h"
34 #include "content/public/browser/page_navigator.h" 35 #include "content/public/browser/page_navigator.h"
35 #include "content/public/browser/user_metrics.h" 36 #include "content/public/browser/user_metrics.h"
36 #include "grit/theme_resources.h" 37 #include "grit/theme_resources.h"
37 #include "ui/app_list/app_list_switches.h" 38 #include "ui/app_list/app_list_switches.h"
38 #include "ui/app_list/app_list_view_delegate_observer.h" 39 #include "ui/app_list/app_list_view_delegate_observer.h"
39 #include "ui/app_list/search_box_model.h" 40 #include "ui/app_list/search_box_model.h"
40 #include "ui/app_list/speech_ui_model.h" 41 #include "ui/app_list/speech_ui_model.h"
41 #include "ui/base/resource/resource_bundle.h" 42 #include "ui/base/resource/resource_bundle.h"
42 43
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 user.profile_path = profile_info.GetPathOfProfileAtIndex(i); 97 user.profile_path = profile_info.GetPathOfProfileAtIndex(i);
97 user.active = active_profile_path == user.profile_path; 98 user.active = active_profile_path == user.profile_path;
98 users->push_back(user); 99 users->push_back(user);
99 } 100 }
100 } 101 }
101 102
102 } // namespace 103 } // namespace
103 104
104 AppListViewDelegate::AppListViewDelegate(Profile* profile, 105 AppListViewDelegate::AppListViewDelegate(Profile* profile,
105 AppListControllerDelegate* controller) 106 AppListControllerDelegate* controller)
106 : controller_(controller), profile_(profile), model_(NULL) { 107 : controller_(controller),
108 profile_(profile),
109 model_(NULL),
110 scoped_observer_(this) {
107 CHECK(controller_); 111 CHECK(controller_);
112 // The SigninManagerFactor and the SigninManagers are observed to keep the
113 // profile switcher menu up to date, with the correct list of profiles and the
114 // correct email address (or none for signed out users) for each.
115 SigninManagerFactory::GetInstance()->AddObserver(this);
108 116
117 // Start observing all already-created SigninManagers.
109 ProfileManager* profile_manager = g_browser_process->profile_manager(); 118 ProfileManager* profile_manager = g_browser_process->profile_manager();
119 std::vector<Profile*> profiles = profile_manager->GetLoadedProfiles();
120 for (std::vector<Profile*>::iterator i = profiles.begin();
121 i != profiles.end();
122 ++i) {
123 SigninManagerBase* manager =
124 SigninManagerFactory::GetForProfileIfExists(*i);
125 if (manager) {
126 DCHECK(!scoped_observer_.IsObserving(manager));
127 scoped_observer_.Add(manager);
128 }
129 }
130
110 profile_manager->GetProfileInfoCache().AddObserver(this); 131 profile_manager->GetProfileInfoCache().AddObserver(this);
111 132
112 app_list::StartPageService* service = 133 app_list::StartPageService* service =
113 app_list::StartPageService::Get(profile_); 134 app_list::StartPageService::Get(profile_);
114 speech_ui_.reset(new app_list::SpeechUIModel( 135 speech_ui_.reset(new app_list::SpeechUIModel(
115 service ? service->state() : app_list::SPEECH_RECOGNITION_OFF)); 136 service ? service->state() : app_list::SPEECH_RECOGNITION_OFF));
116 137
117 #if defined(GOOGLE_CHROME_BUILD) 138 #if defined(GOOGLE_CHROME_BUILD)
118 speech_ui_->set_logo( 139 speech_ui_->set_logo(
119 *ui::ResourceBundle::GetSharedInstance(). 140 *ui::ResourceBundle::GetSharedInstance().
120 GetImageSkiaNamed(IDR_APP_LIST_GOOGLE_LOGO_VOICE_SEARCH)); 141 GetImageSkiaNamed(IDR_APP_LIST_GOOGLE_LOGO_VOICE_SEARCH));
121 #endif 142 #endif
122 143
123 OnProfileChanged(); // sets model_ 144 OnProfileChanged(); // sets model_
124 if (service) 145 if (service)
125 service->AddObserver(this); 146 service->AddObserver(this);
126 } 147 }
127 148
128 AppListViewDelegate::~AppListViewDelegate() { 149 AppListViewDelegate::~AppListViewDelegate() {
129 app_list::StartPageService* service = 150 app_list::StartPageService* service =
130 app_list::StartPageService::Get(profile_); 151 app_list::StartPageService::Get(profile_);
131 if (service) 152 if (service)
132 service->RemoveObserver(this); 153 service->RemoveObserver(this);
133 g_browser_process-> 154 g_browser_process->
134 profile_manager()->GetProfileInfoCache().RemoveObserver(this); 155 profile_manager()->GetProfileInfoCache().RemoveObserver(this);
135 156
157 SigninManagerFactory* factory = SigninManagerFactory::GetInstance();
158 if (factory)
159 factory->RemoveObserver(this);
160
136 // Ensure search controller is released prior to speech_ui_. 161 // Ensure search controller is released prior to speech_ui_.
137 search_controller_.reset(); 162 search_controller_.reset();
138 } 163 }
139 164
140 void AppListViewDelegate::OnHotwordStateChanged(bool started) { 165 void AppListViewDelegate::OnHotwordStateChanged(bool started) {
141 if (started) { 166 if (started) {
142 if (speech_ui_->state() == app_list::SPEECH_RECOGNITION_READY) { 167 if (speech_ui_->state() == app_list::SPEECH_RECOGNITION_READY) {
143 OnSpeechRecognitionStateChanged( 168 OnSpeechRecognitionStateChanged(
144 app_list::SPEECH_RECOGNITION_HOTWORD_LISTENING); 169 app_list::SPEECH_RECOGNITION_HOTWORD_LISTENING);
145 } 170 }
146 } else { 171 } else {
147 if (speech_ui_->state() == app_list::SPEECH_RECOGNITION_HOTWORD_LISTENING) 172 if (speech_ui_->state() == app_list::SPEECH_RECOGNITION_HOTWORD_LISTENING)
148 OnSpeechRecognitionStateChanged(app_list::SPEECH_RECOGNITION_READY); 173 OnSpeechRecognitionStateChanged(app_list::SPEECH_RECOGNITION_READY);
149 } 174 }
150 } 175 }
151 176
152 void AppListViewDelegate::OnHotwordRecognized() { 177 void AppListViewDelegate::OnHotwordRecognized() {
153 DCHECK_EQ(app_list::SPEECH_RECOGNITION_HOTWORD_LISTENING, 178 DCHECK_EQ(app_list::SPEECH_RECOGNITION_HOTWORD_LISTENING,
154 speech_ui_->state()); 179 speech_ui_->state());
155 ToggleSpeechRecognition(); 180 ToggleSpeechRecognition();
156 } 181 }
157 182
183 void AppListViewDelegate::SigninManagerCreated(SigninManagerBase* manager) {
184 scoped_observer_.Add(manager);
185 }
186
187 void AppListViewDelegate::SigninManagerShutdown(SigninManagerBase* manager) {
188 if (scoped_observer_.IsObserving(manager))
189 scoped_observer_.Remove(manager);
190 }
191
192 void AppListViewDelegate::GoogleSigninFailed(
193 const GoogleServiceAuthError& error) {
194 OnProfileChanged();
195 }
196
197 void AppListViewDelegate::GoogleSigninSucceeded(const std::string& username,
198 const std::string& password) {
199 OnProfileChanged();
200 }
201
202 void AppListViewDelegate::GoogleSignedOut(const std::string& username) {
203 OnProfileChanged();
204 }
205
158 void AppListViewDelegate::OnProfileChanged() { 206 void AppListViewDelegate::OnProfileChanged() {
159 model_ = app_list::AppListSyncableServiceFactory::GetForProfile( 207 model_ = app_list::AppListSyncableServiceFactory::GetForProfile(
160 profile_)->model(); 208 profile_)->model();
161 209
162 search_controller_.reset(new app_list::SearchController( 210 search_controller_.reset(new app_list::SearchController(
163 profile_, model_->search_box(), model_->results(), 211 profile_, model_->search_box(), model_->results(),
164 speech_ui_.get(), controller_)); 212 speech_ui_.get(), controller_));
165 213
166 #if defined(USE_ASH) 214 #if defined(USE_ASH)
167 app_sync_ui_state_watcher_.reset(new AppSyncUIStateWatcher(profile_, model_)); 215 app_sync_ui_state_watcher_.reset(new AppSyncUIStateWatcher(profile_, model_));
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 495
448 void AppListViewDelegate::AddObserver( 496 void AppListViewDelegate::AddObserver(
449 app_list::AppListViewDelegateObserver* observer) { 497 app_list::AppListViewDelegateObserver* observer) {
450 observers_.AddObserver(observer); 498 observers_.AddObserver(observer);
451 } 499 }
452 500
453 void AppListViewDelegate::RemoveObserver( 501 void AppListViewDelegate::RemoveObserver(
454 app_list::AppListViewDelegateObserver* observer) { 502 app_list::AppListViewDelegateObserver* observer) {
455 observers_.RemoveObserver(observer); 503 observers_.RemoveObserver(observer);
456 } 504 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/app_list/app_list_view_delegate.h ('k') | chrome/browser/ui/app_list/test/chrome_app_list_test_support.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698