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

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

Issue 7906008: Create a very simple TabContentsView (and not fully implemented yet) and add more supporting code... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 3 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/file_util.h" 12 #include "base/file_util.h"
13 #include "base/path_service.h" 13 #include "base/path_service.h"
14 #include "base/synchronization/waitable_event.h" 14 #include "base/synchronization/waitable_event.h"
15 #include "base/task.h" 15 #include "base/task.h"
16 #include "base/threading/thread.h" 16 #include "base/threading/thread.h"
17 #include "base/threading/thread_restrictions.h" 17 #include "base/threading/thread_restrictions.h"
18 #include "chrome/browser/automation/automation_provider_list.h" 18 #include "chrome/browser/automation/automation_provider_list.h"
19 #include "chrome/browser/background/background_mode_manager.h" 19 #include "chrome/browser/background/background_mode_manager.h"
20 #include "chrome/browser/chrome_browser_main.h" 20 #include "chrome/browser/chrome_browser_main.h"
21 #include "chrome/browser/browser_process_sub_thread.h"
22 #include "chrome/browser/browser_trial.h" 21 #include "chrome/browser/browser_trial.h"
23 #include "chrome/browser/chrome_plugin_service_filter.h" 22 #include "chrome/browser/chrome_plugin_service_filter.h"
24 #include "chrome/browser/component_updater/component_updater_configurator.h" 23 #include "chrome/browser/component_updater/component_updater_configurator.h"
25 #include "chrome/browser/component_updater/component_updater_service.h" 24 #include "chrome/browser/component_updater/component_updater_service.h"
26 #include "chrome/browser/debugger/devtools_protocol_handler.h" 25 #include "chrome/browser/debugger/devtools_protocol_handler.h"
27 #include "chrome/browser/debugger/remote_debugging_server.h" 26 #include "chrome/browser/debugger/remote_debugging_server.h"
28 #include "chrome/browser/download/download_request_limiter.h" 27 #include "chrome/browser/download/download_request_limiter.h"
29 #include "chrome/browser/extensions/extension_event_router_forwarder.h" 28 #include "chrome/browser/extensions/extension_event_router_forwarder.h"
30 #include "chrome/browser/extensions/extension_tab_id_map.h" 29 #include "chrome/browser/extensions/extension_tab_id_map.h"
31 #include "chrome/browser/extensions/user_script_listener.h" 30 #include "chrome/browser/extensions/user_script_listener.h"
(...skipping 29 matching lines...) Expand all
61 #include "chrome/common/chrome_switches.h" 60 #include "chrome/common/chrome_switches.h"
62 #include "chrome/common/default_plugin.h" 61 #include "chrome/common/default_plugin.h"
63 #include "chrome/common/extensions/extension_l10n_util.h" 62 #include "chrome/common/extensions/extension_l10n_util.h"
64 #include "chrome/common/extensions/extension_resource.h" 63 #include "chrome/common/extensions/extension_resource.h"
65 #include "chrome/common/json_pref_store.h" 64 #include "chrome/common/json_pref_store.h"
66 #include "chrome/common/pref_names.h" 65 #include "chrome/common/pref_names.h"
67 #include "chrome/common/switch_utils.h" 66 #include "chrome/common/switch_utils.h"
68 #include "chrome/common/url_constants.h" 67 #include "chrome/common/url_constants.h"
69 #include "chrome/installer/util/google_update_constants.h" 68 #include "chrome/installer/util/google_update_constants.h"
70 #include "content/browser/browser_child_process_host.h" 69 #include "content/browser/browser_child_process_host.h"
70 #include "content/browser/browser_process_sub_thread.h"
71 #include "content/browser/browser_thread.h" 71 #include "content/browser/browser_thread.h"
72 #include "content/browser/child_process_security_policy.h" 72 #include "content/browser/child_process_security_policy.h"
73 #include "content/browser/debugger/devtools_manager.h" 73 #include "content/browser/debugger/devtools_manager.h"
74 #include "content/browser/download/download_file_manager.h" 74 #include "content/browser/download/download_file_manager.h"
75 #include "content/browser/download/mhtml_generation_manager.h" 75 #include "content/browser/download/mhtml_generation_manager.h"
76 #include "content/browser/download/save_file_manager.h" 76 #include "content/browser/download/save_file_manager.h"
77 #include "content/browser/gpu/gpu_process_host_ui_shim.h" 77 #include "content/browser/gpu/gpu_process_host_ui_shim.h"
78 #include "content/browser/net/browser_online_state_observer.h" 78 #include "content/browser/net/browser_online_state_observer.h"
79 #include "content/browser/plugin_service.h" 79 #include "content/browser/plugin_service.h"
80 #include "content/browser/renderer_host/render_process_host.h" 80 #include "content/browser/renderer_host/render_process_host.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 created_sidebar_manager_(false), 133 created_sidebar_manager_(false),
134 created_browser_policy_connector_(false), 134 created_browser_policy_connector_(false),
135 created_notification_ui_manager_(false), 135 created_notification_ui_manager_(false),
136 created_safe_browsing_service_(false), 136 created_safe_browsing_service_(false),
137 module_ref_count_(0), 137 module_ref_count_(0),
138 did_start_(false), 138 did_start_(false),
139 checked_for_new_frames_(false), 139 checked_for_new_frames_(false),
140 using_new_frames_(false) { 140 using_new_frames_(false) {
141 g_browser_process = this; 141 g_browser_process = this;
142 clipboard_.reset(new ui::Clipboard); 142 clipboard_.reset(new ui::Clipboard);
143 main_notification_service_.reset(new NotificationService);
144 143
145 // Must be created after the NotificationService. 144 // Must be created after the NotificationService.
146 print_job_manager_.reset(new printing::PrintJobManager); 145 print_job_manager_.reset(new printing::PrintJobManager);
147 146
148 net_log_.reset(new ChromeNetLog); 147 net_log_.reset(new ChromeNetLog);
149 148
150 extension_event_router_forwarder_ = new ExtensionEventRouterForwarder; 149 extension_event_router_forwarder_ = new ExtensionEventRouterForwarder;
151 150
152 ExtensionTabIdMap::GetInstance()->Init(); 151 ExtensionTabIdMap::GetInstance()->Init();
153 152
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 resource_dispatcher_host_.reset(); 266 resource_dispatcher_host_.reset();
268 267
269 // Wait for the pending print jobs to finish. 268 // Wait for the pending print jobs to finish.
270 print_job_manager_->OnQuit(); 269 print_job_manager_->OnQuit();
271 print_job_manager_.reset(); 270 print_job_manager_.reset();
272 271
273 // Destroy TabCloseableStateWatcher before NotificationService since the 272 // Destroy TabCloseableStateWatcher before NotificationService since the
274 // former registers for notifications. 273 // former registers for notifications.
275 tab_closeable_state_watcher_.reset(); 274 tab_closeable_state_watcher_.reset();
276 275
277 // Now OK to destroy NotificationService.
278 main_notification_service_.reset();
279
280 g_browser_process = NULL; 276 g_browser_process = NULL;
281 } 277 }
282 278
283 #if defined(OS_WIN) 279 #if defined(OS_WIN)
284 // Send a QuitTask to the given MessageLoop. 280 // Send a QuitTask to the given MessageLoop.
285 static void PostQuit(MessageLoop* message_loop) { 281 static void PostQuit(MessageLoop* message_loop) {
286 message_loop->PostTask(FROM_HERE, new MessageLoop::QuitTask()); 282 message_loop->PostTask(FROM_HERE, new MessageLoop::QuitTask());
287 } 283 }
288 #elif defined(USE_X11) 284 #elif defined(USE_X11)
289 static void Signal(base::WaitableEvent* event) { 285 static void Signal(base::WaitableEvent* event) {
(...skipping 12 matching lines...) Expand all
302 DCHECK(CalledOnValidThread()); 298 DCHECK(CalledOnValidThread());
303 DCHECK_NE(0u, module_ref_count_); 299 DCHECK_NE(0u, module_ref_count_);
304 module_ref_count_--; 300 module_ref_count_--;
305 if (0 == module_ref_count_) { 301 if (0 == module_ref_count_) {
306 // Allow UI and IO threads to do blocking IO on shutdown, since we do a lot 302 // Allow UI and IO threads to do blocking IO on shutdown, since we do a lot
307 // of it on shutdown for valid reasons. 303 // of it on shutdown for valid reasons.
308 base::ThreadRestrictions::SetIOAllowed(true); 304 base::ThreadRestrictions::SetIOAllowed(true);
309 io_thread()->message_loop()->PostTask( 305 io_thread()->message_loop()->PostTask(
310 FROM_HERE, 306 FROM_HERE,
311 NewRunnableFunction(&base::ThreadRestrictions::SetIOAllowed, true)); 307 NewRunnableFunction(&base::ThreadRestrictions::SetIOAllowed, true));
312 MessageLoop::current()->PostTask(
313 FROM_HERE, NewRunnableFunction(content::DidEndMainMessageLoop));
314 MessageLoop::current()->Quit(); 308 MessageLoop::current()->Quit();
315 } 309 }
316 return module_ref_count_; 310 return module_ref_count_;
317 } 311 }
318 312
319 void BrowserProcessImpl::EndSession() { 313 void BrowserProcessImpl::EndSession() {
320 // Mark all the profiles as clean. 314 // Mark all the profiles as clean.
321 ProfileManager* pm = profile_manager(); 315 ProfileManager* pm = profile_manager();
322 std::vector<Profile*> profiles(pm->GetLoadedProfiles()); 316 std::vector<Profile*> profiles(pm->GetLoadedProfiles());
323 for (size_t i = 0; i < profiles.size(); ++i) 317 for (size_t i = 0; i < profiles.size(); ++i)
(...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after
1098 } 1092 }
1099 1093
1100 void BrowserProcessImpl::OnAutoupdateTimer() { 1094 void BrowserProcessImpl::OnAutoupdateTimer() {
1101 if (CanAutorestartForUpdate()) { 1095 if (CanAutorestartForUpdate()) {
1102 DLOG(WARNING) << "Detected update. Restarting browser."; 1096 DLOG(WARNING) << "Detected update. Restarting browser.";
1103 RestartPersistentInstance(); 1097 RestartPersistentInstance();
1104 } 1098 }
1105 } 1099 }
1106 1100
1107 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) 1101 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698