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

Side by Side Diff: chrome/browser/browser_process_impl.cc

Issue 12375004: Re-home the global MessageCenter to support Ash+Win environments. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Merge master. 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
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/browser_process_impl.h" 5 #include "chrome/browser/browser_process_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 #include "net/socket/client_socket_pool_manager.h" 86 #include "net/socket/client_socket_pool_manager.h"
87 #include "net/url_request/url_request_context_getter.h" 87 #include "net/url_request/url_request_context_getter.h"
88 #include "ui/base/l10n/l10n_util.h" 88 #include "ui/base/l10n/l10n_util.h"
89 89
90 #if defined(ENABLE_CONFIGURATION_POLICY) 90 #if defined(ENABLE_CONFIGURATION_POLICY)
91 #include "chrome/browser/policy/browser_policy_connector.h" 91 #include "chrome/browser/policy/browser_policy_connector.h"
92 #else 92 #else
93 #include "chrome/browser/policy/policy_service_stub.h" 93 #include "chrome/browser/policy/policy_service_stub.h"
94 #endif // defined(ENABLE_CONFIGURATION_POLICY) 94 #endif // defined(ENABLE_CONFIGURATION_POLICY)
95 95
96 #if defined(ENABLE_MESSAGE_CENTER) && defined(USE_ASH)
97 #include "ash/shell.h"
98 #endif
99
100 #if defined(ENABLE_MESSAGE_CENTER) 96 #if defined(ENABLE_MESSAGE_CENTER)
101 #include "ui/message_center/message_center.h" 97 #include "ui/message_center/message_center.h"
102 #endif 98 #endif
103 99
104 #if defined(OS_WIN) 100 #if defined(OS_WIN)
105 #include "base/win/windows_version.h" 101 #include "base/win/windows_version.h"
106 #include "ui/views/focus/view_storage.h" 102 #include "ui/views/focus/view_storage.h"
107 #if defined(USE_AURA) 103 #if defined(USE_AURA)
108 #include "chrome/browser/metro_viewer/metro_viewer_process_host_win.h" 104 #include "chrome/browser/metro_viewer/metro_viewer_process_host_win.h"
109 #endif 105 #endif
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 BrowserProcessImpl::BrowserProcessImpl( 148 BrowserProcessImpl::BrowserProcessImpl(
153 base::SequencedTaskRunner* local_state_task_runner, 149 base::SequencedTaskRunner* local_state_task_runner,
154 const CommandLine& command_line) 150 const CommandLine& command_line)
155 : created_metrics_service_(false), 151 : created_metrics_service_(false),
156 created_watchdog_thread_(false), 152 created_watchdog_thread_(false),
157 created_browser_policy_connector_(false), 153 created_browser_policy_connector_(false),
158 created_profile_manager_(false), 154 created_profile_manager_(false),
159 created_local_state_(false), 155 created_local_state_(false),
160 created_icon_manager_(false), 156 created_icon_manager_(false),
161 created_notification_ui_manager_(false), 157 created_notification_ui_manager_(false),
162 #if defined(ENABLE_MESSAGE_CENTER) && !defined(USE_ASH)
163 created_message_center_(false),
164 #endif
165 created_safe_browsing_service_(false), 158 created_safe_browsing_service_(false),
166 module_ref_count_(0), 159 module_ref_count_(0),
167 did_start_(false), 160 did_start_(false),
168 checked_for_new_frames_(false), 161 checked_for_new_frames_(false),
169 using_new_frames_(false), 162 using_new_frames_(false),
170 render_widget_snapshot_taker_(new RenderWidgetSnapshotTaker), 163 render_widget_snapshot_taker_(new RenderWidgetSnapshotTaker),
171 download_status_updater_(new DownloadStatusUpdater), 164 download_status_updater_(new DownloadStatusUpdater),
172 local_state_task_runner_(local_state_task_runner) { 165 local_state_task_runner_(local_state_task_runner) {
173 g_browser_process = this; 166 g_browser_process = this;
174 167
175 #if defined(ENABLE_PRINTING) 168 #if defined(ENABLE_PRINTING)
176 // Must be created after the NotificationService. 169 // Must be created after the NotificationService.
177 print_job_manager_.reset(new printing::PrintJobManager); 170 print_job_manager_.reset(new printing::PrintJobManager);
178 #endif 171 #endif
179 172
180 net_log_.reset(new ChromeNetLog); 173 net_log_.reset(new ChromeNetLog);
181 174
182 ChildProcessSecurityPolicy::GetInstance()->RegisterWebSafeScheme( 175 ChildProcessSecurityPolicy::GetInstance()->RegisterWebSafeScheme(
183 extensions::kExtensionScheme); 176 extensions::kExtensionScheme);
184 ChildProcessSecurityPolicy::GetInstance()->RegisterWebSafeScheme( 177 ChildProcessSecurityPolicy::GetInstance()->RegisterWebSafeScheme(
185 chrome::kExtensionResourceScheme); 178 chrome::kExtensionResourceScheme);
186 179
187 #if defined(OS_MACOSX) 180 #if defined(OS_MACOSX)
188 InitIdleMonitor(); 181 InitIdleMonitor();
189 #endif 182 #endif
190 183
191 extension_event_router_forwarder_ = new extensions::EventRouterForwarder; 184 extension_event_router_forwarder_ = new extensions::EventRouterForwarder;
192 185
193 ExtensionRendererState::GetInstance()->Init(); 186 ExtensionRendererState::GetInstance()->Init();
187
188 #if defined(ENABLE_MESSAGE_CENTER)
189 message_center::MessageCenter::Initialize();
190 #endif
194 } 191 }
195 192
196 BrowserProcessImpl::~BrowserProcessImpl() { 193 BrowserProcessImpl::~BrowserProcessImpl() {
197 tracked_objects::ThreadData::EnsureCleanupWasCalled(4); 194 tracked_objects::ThreadData::EnsureCleanupWasCalled(4);
198 195
199 g_browser_process = NULL; 196 g_browser_process = NULL;
200 } 197 }
201 198
202 void BrowserProcessImpl::StartTearDown() { 199 void BrowserProcessImpl::StartTearDown() {
203 #if defined(ENABLE_AUTOMATION) 200 #if defined(ENABLE_AUTOMATION)
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 // Need to clear profiles (download managers) before the io_thread_. 237 // Need to clear profiles (download managers) before the io_thread_.
241 profile_manager_.reset(); 238 profile_manager_.reset();
242 239
243 #if !defined(OS_ANDROID) 240 #if !defined(OS_ANDROID)
244 // Debugger must be cleaned up before IO thread and NotificationService. 241 // Debugger must be cleaned up before IO thread and NotificationService.
245 remote_debugging_server_.reset(); 242 remote_debugging_server_.reset();
246 #endif 243 #endif
247 244
248 ExtensionRendererState::GetInstance()->Shutdown(); 245 ExtensionRendererState::GetInstance()->Shutdown();
249 246
247 #if defined(ENABLE_MESSAGE_CENTER)
248 message_center::MessageCenter::Shutdown();
249 #endif
250
250 #if defined(ENABLE_CONFIGURATION_POLICY) 251 #if defined(ENABLE_CONFIGURATION_POLICY)
251 // The policy providers managed by |browser_policy_connector_| need to shut 252 // The policy providers managed by |browser_policy_connector_| need to shut
252 // down while the IO and FILE threads are still alive. 253 // down while the IO and FILE threads are still alive.
253 if (browser_policy_connector_) 254 if (browser_policy_connector_)
254 browser_policy_connector_->Shutdown(); 255 browser_policy_connector_->Shutdown();
255 #endif 256 #endif
256 257
257 // Stop the watchdog thread before stopping other threads. 258 // Stop the watchdog thread before stopping other threads.
258 watchdog_thread_.reset(); 259 watchdog_thread_.reset();
259 260
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 NotificationUIManager* BrowserProcessImpl::notification_ui_manager() { 455 NotificationUIManager* BrowserProcessImpl::notification_ui_manager() {
455 DCHECK(CalledOnValidThread()); 456 DCHECK(CalledOnValidThread());
456 if (!created_notification_ui_manager_) 457 if (!created_notification_ui_manager_)
457 CreateNotificationUIManager(); 458 CreateNotificationUIManager();
458 return notification_ui_manager_.get(); 459 return notification_ui_manager_.get();
459 } 460 }
460 461
461 #if defined(ENABLE_MESSAGE_CENTER) 462 #if defined(ENABLE_MESSAGE_CENTER)
462 message_center::MessageCenter* BrowserProcessImpl::message_center() { 463 message_center::MessageCenter* BrowserProcessImpl::message_center() {
463 DCHECK(CalledOnValidThread()); 464 DCHECK(CalledOnValidThread());
464 #if defined(USE_ASH) 465 return message_center::MessageCenter::Get();
465 return ash::Shell::GetInstance()->message_center();
466 #else
467 if (!created_message_center_)
468 CreateMessageCenter();
469 return message_center_.get();
470 #endif
471 } 466 }
472 #endif 467 #endif
473 468
474 policy::BrowserPolicyConnector* BrowserProcessImpl::browser_policy_connector() { 469 policy::BrowserPolicyConnector* BrowserProcessImpl::browser_policy_connector() {
475 DCHECK(CalledOnValidThread()); 470 DCHECK(CalledOnValidThread());
476 #if defined(ENABLE_CONFIGURATION_POLICY) 471 #if defined(ENABLE_CONFIGURATION_POLICY)
477 if (!created_browser_policy_connector_) { 472 if (!created_browser_policy_connector_) {
478 DCHECK(!browser_policy_connector_); 473 DCHECK(!browser_policy_connector_);
479 browser_policy_connector_.reset(new policy::BrowserPolicyConnector()); 474 browser_policy_connector_.reset(new policy::BrowserPolicyConnector());
480 created_browser_policy_connector_ = true; 475 created_browser_policy_connector_ = true;
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 } 902 }
908 903
909 void BrowserProcessImpl::CreateNotificationUIManager() { 904 void BrowserProcessImpl::CreateNotificationUIManager() {
910 #if defined(ENABLE_NOTIFICATIONS) 905 #if defined(ENABLE_NOTIFICATIONS)
911 DCHECK(notification_ui_manager_.get() == NULL); 906 DCHECK(notification_ui_manager_.get() == NULL);
912 notification_ui_manager_.reset(NotificationUIManager::Create(local_state())); 907 notification_ui_manager_.reset(NotificationUIManager::Create(local_state()));
913 created_notification_ui_manager_ = true; 908 created_notification_ui_manager_ = true;
914 #endif 909 #endif
915 } 910 }
916 911
917 #if defined(ENABLE_MESSAGE_CENTER) && !defined(USE_ASH)
918 void BrowserProcessImpl::CreateMessageCenter() {
919 DCHECK(message_center_.get() == NULL);
920 message_center_.reset(new message_center::MessageCenter());
921 created_message_center_ = true;
922 }
923 #endif
924
925 void BrowserProcessImpl::CreateBackgroundModeManager() { 912 void BrowserProcessImpl::CreateBackgroundModeManager() {
926 DCHECK(background_mode_manager_.get() == NULL); 913 DCHECK(background_mode_manager_.get() == NULL);
927 background_mode_manager_.reset( 914 background_mode_manager_.reset(
928 new BackgroundModeManager(CommandLine::ForCurrentProcess(), 915 new BackgroundModeManager(CommandLine::ForCurrentProcess(),
929 &profile_manager()->GetProfileInfoCache())); 916 &profile_manager()->GetProfileInfoCache()));
930 } 917 }
931 918
932 void BrowserProcessImpl::CreateStatusTray() { 919 void BrowserProcessImpl::CreateStatusTray() {
933 DCHECK(status_tray_.get() == NULL); 920 DCHECK(status_tray_.get() == NULL);
934 status_tray_.reset(StatusTray::Create()); 921 status_tray_.reset(StatusTray::Create());
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 } 1027 }
1041 1028
1042 void BrowserProcessImpl::OnAutoupdateTimer() { 1029 void BrowserProcessImpl::OnAutoupdateTimer() {
1043 if (CanAutorestartForUpdate()) { 1030 if (CanAutorestartForUpdate()) {
1044 DLOG(WARNING) << "Detected update. Restarting browser."; 1031 DLOG(WARNING) << "Detected update. Restarting browser.";
1045 RestartBackgroundInstance(); 1032 RestartBackgroundInstance();
1046 } 1033 }
1047 } 1034 }
1048 1035
1049 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) 1036 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
OLDNEW
« no previous file with comments | « chrome/browser/browser_process_impl.h ('k') | chrome/browser/notifications/desktop_notifications_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698