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

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: g Created 9 years, 8 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
Index: chrome/browser/browser_process_impl.cc
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index 01e703886440e785bae1bc02333826a27624215e..fd95bfe80358123ec5e41c6e477cef06167f165c 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -108,6 +108,9 @@ BrowserProcessImpl::BrowserProcessImpl(const CommandLine& command_line)
created_cache_thread_(false),
created_gpu_thread_(false),
created_watchdog_thread_(false),
+#if defined(OS_CHROMEOS)
+ created_webproxy_thread_(false),
+#endif
created_profile_manager_(false),
created_local_state_(false),
created_icon_manager_(false),
@@ -207,6 +210,10 @@ BrowserProcessImpl::~BrowserProcessImpl() {
// down while the IO and FILE threads are still alive.
browser_policy_connector_.reset();
+#if defined(OS_CHROMEOS)
+ webproxy_thread_.reset();
+#endif
+
#if defined(USE_X11)
// The IO thread must outlive the BACKGROUND_X11 thread.
background_x11_thread_.reset();
@@ -429,6 +436,16 @@ WatchDogThread* BrowserProcessImpl::watchdog_thread() {
return watchdog_thread_.get();
}
+#if defined(OS_CHROMEOS)
+base::Thread* BrowserProcessImpl::webproxy_thread() {
+ DCHECK(CalledOnValidThread());
+ if (!created_webproxy_thread_)
+ CreateWebproxyThread();
+ DCHECK(webproxy_thread_.get() != NULL);
+ return webproxy_thread_.get();
+}
+#endif
+
ProfileManager* BrowserProcessImpl::profile_manager() {
DCHECK(CalledOnValidThread());
if (!created_profile_manager_)
@@ -747,6 +764,21 @@ void BrowserProcessImpl::CreateFileThread() {
file_thread_.swap(thread);
}
+#if defined(OS_CHROMEOS)
+void BrowserProcessImpl::CreateWebproxyThread() {
+ DCHECK(!created_webproxy_thread_ && webproxy_thread_.get() == NULL);
+ created_webproxy_thread_ = true;
+
+ scoped_ptr<base::Thread> thread(
+ new BrowserProcessSubThread(BrowserThread::WEBPROXY));
+ base::Thread::Options options;
+ options.message_loop_type = MessageLoop::TYPE_IO;
+ if (!thread->StartWithOptions(options))
+ return;
+ webproxy_thread_.swap(thread);
+}
+#endif
+
void BrowserProcessImpl::CreateDBThread() {
DCHECK(!created_db_thread_ && db_thread_.get() == NULL);
created_db_thread_ = true;

Powered by Google App Engine
This is Rietveld 408576698