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; |