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

Unified Diff: chrome/browser/browser_process_impl.cc

Issue 6801008: Websocket to TCP proxy running in a separate thread (only on ChromeOS). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase+minor Created 9 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/browser_process_impl.h ('k') | chrome/browser/chromeos/web_socket_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browser_process_impl.cc
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index f1b30a52450a0effc6250c06f9f0553e8df127a7..f2c276e6253d0b5bfc01b25009db3c459a989d9f 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -88,6 +88,7 @@
#if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/proxy_config_service_impl.h"
+#include "chrome/browser/chromeos/web_socket_proxy_controller.h"
#endif // defined(OS_CHROMEOS)
#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
@@ -113,6 +114,9 @@ BrowserProcessImpl::BrowserProcessImpl(const CommandLine& command_line)
created_cache_thread_(false),
created_gpu_thread_(false),
created_watchdog_thread_(false),
+#if defined(OS_CHROMEOS)
+ created_web_socket_proxy_thread_(false),
+#endif
created_profile_manager_(false),
created_local_state_(false),
created_icon_manager_(false),
@@ -152,6 +156,12 @@ BrowserProcessImpl::~BrowserProcessImpl() {
// Store the profile path for clearing local state data on exit.
clear_local_state_on_exit = ShouldClearLocalState(&profile_path);
+#if defined(OS_CHROMEOS)
+ if (web_socket_proxy_thread_.get())
+ chromeos::WebSocketProxyController::Shutdown();
+ web_socket_proxy_thread_.reset();
+#endif
+
// Delete the AutomationProviderList before NotificationService,
// since it may try to unregister notifications
// Both NotificationService and AutomationProvider are singleton instances in
@@ -435,6 +445,16 @@ WatchDogThread* BrowserProcessImpl::watchdog_thread() {
return watchdog_thread_.get();
}
+#if defined(OS_CHROMEOS)
+base::Thread* BrowserProcessImpl::web_socket_proxy_thread() {
+ DCHECK(CalledOnValidThread());
+ if (!created_web_socket_proxy_thread_)
+ CreateWebSocketProxyThread();
+ DCHECK(web_socket_proxy_thread_.get() != NULL);
+ return web_socket_proxy_thread_.get();
+}
+#endif
+
ProfileManager* BrowserProcessImpl::profile_manager() {
DCHECK(CalledOnValidThread());
if (!created_profile_manager_)
@@ -763,6 +783,22 @@ void BrowserProcessImpl::CreateFileThread() {
file_thread_.swap(thread);
}
+#if defined(OS_CHROMEOS)
+void BrowserProcessImpl::CreateWebSocketProxyThread() {
+ DCHECK(!created_web_socket_proxy_thread_);
+ DCHECK(web_socket_proxy_thread_.get() == NULL);
+ created_web_socket_proxy_thread_ = true;
+
+ scoped_ptr<base::Thread> thread(
+ new BrowserProcessSubThread(BrowserThread::WEB_SOCKET_PROXY));
+ base::Thread::Options options;
+ options.message_loop_type = MessageLoop::TYPE_IO;
+ if (!thread->StartWithOptions(options))
+ return;
+ web_socket_proxy_thread_.swap(thread);
+}
+#endif
+
void BrowserProcessImpl::CreateDBThread() {
DCHECK(!created_db_thread_ && db_thread_.get() == NULL);
created_db_thread_ = true;
« no previous file with comments | « chrome/browser/browser_process_impl.h ('k') | chrome/browser/chromeos/web_socket_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698