diff options
author | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-05 16:11:35 +0000 |
---|---|---|
committer | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-05 16:11:35 +0000 |
commit | b98b0decec407b51de69cd60bf4c0c903d65f8e1 (patch) | |
tree | 167ab65b3bee9af92d792ba1fa37973741983263 /chrome/browser/web_resource/web_resource_service.cc | |
parent | 766a6923903d8aa4f2d15f603b0f628e97980426 (diff) | |
download | chromium_src-b98b0decec407b51de69cd60bf4c0c903d65f8e1.zip chromium_src-b98b0decec407b51de69cd60bf4c0c903d65f8e1.tar.gz chromium_src-b98b0decec407b51de69cd60bf4c0c903d65f8e1.tar.bz2 |
Do not use the utility process on linux.
We don't currently use the zygote to spawn the utility process, so after browser updates bad bugs can occur with mismatched subprocesses. See crbug.com/23327 and crbug.com/22703.
BUG=23327
TEST=Extensions installation/autoupdate and New Tab Page tip download should still work.
Review URL: http://codereview.chromium.org/256036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27997 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/web_resource/web_resource_service.cc')
-rw-r--r-- | chrome/browser/web_resource/web_resource_service.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/chrome/browser/web_resource/web_resource_service.cc b/chrome/browser/web_resource/web_resource_service.cc index dcfeade..f401807 100644 --- a/chrome/browser/web_resource/web_resource_service.cc +++ b/chrome/browser/web_resource/web_resource_service.cc @@ -103,14 +103,23 @@ class WebResourceService::UnpackerClient void Start() { AddRef(); // balanced in Cleanup. - if (web_resource_service_->resource_dispatcher_host_) { + // If we don't have a resource_dispatcher_host_, assume we're in + // a test and run the unpacker directly in-process. + bool use_utility_process = + web_resource_service_->resource_dispatcher_host_ != NULL; + +#if defined(OS_POSIX) + // TODO(port): Don't use a utility process on linux (crbug.com/22703) or + // MacOS (crbug.com/8102) until problems related to autoupdate are fixed. + use_utility_process = false; +#endif + + if (use_utility_process) { ChromeThread::GetMessageLoop(ChromeThread::IO)->PostTask(FROM_HERE, NewRunnableMethod(this, &UnpackerClient::StartProcessOnIOThread, web_resource_service_->resource_dispatcher_host_, MessageLoop::current())); } else { - // If we don't have a resource_dispatcher_host_, assume we're in - // a test and run the unpacker directly in-process. WebResourceUnpacker unpacker(json_data_); if (unpacker.Run()) { OnUnpackWebResourceSucceeded(*unpacker.parsed_json()); @@ -287,4 +296,3 @@ void WebResourceService::UpdateResourceCache(const std::string& json_data) { DoubleToWString(base::Time::Now().ToDoubleT())); prefs_->SetString(prefs::kNTPTipsServer, web_resource_server_); } - |