Index: chrome/browser/web_resource/web_resource_service.cc |
=================================================================== |
--- chrome/browser/web_resource/web_resource_service.cc (revision 116798) |
+++ chrome/browser/web_resource/web_resource_service.cc (working copy) |
@@ -30,21 +30,18 @@ |
// the WebResourceService. |
class WebResourceService::UnpackerClient : public UtilityProcessHost::Client { |
public: |
- explicit UnpackerClient(WebResourceService* web_resource_service) |
+ UnpackerClient(WebResourceService* web_resource_service, |
+ bool use_utility_process) |
: web_resource_service_(web_resource_service), |
- resource_dispatcher_host_(g_browser_process->resource_dispatcher_host()), |
+ use_utility_process_(use_utility_process), |
got_response_(false) { |
} |
void Start(const std::string& json_data) { |
AddRef(); // balanced in Cleanup. |
- // TODO(willchan): Look for a better signal of whether we're in a unit test |
- // or not. Using |resource_dispatcher_host_| for this is pretty lame. |
- // 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 = |
- resource_dispatcher_host_ != NULL && |
+ use_utility_process_ && |
!CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess); |
if (use_utility_process) { |
BrowserThread::ID thread_id; |
@@ -118,8 +115,7 @@ |
scoped_refptr<WebResourceService> web_resource_service_; |
- // Owned by the global browser process. |
- ResourceDispatcherHost* resource_dispatcher_host_; |
+ bool use_utility_process_; |
// True if we got a response from the utility process and have cleaned up |
// already. |
@@ -140,7 +136,8 @@ |
apply_locale_to_url_(apply_locale_to_url), |
last_update_time_pref_name_(last_update_time_pref_name), |
start_fetch_delay_ms_(start_fetch_delay_ms), |
- cache_update_delay_ms_(cache_update_delay_ms) { |
+ cache_update_delay_ms_(cache_update_delay_ms), |
+ use_utility_process_(true) { |
DCHECK(prefs); |
} |
@@ -231,7 +228,7 @@ |
source->GetResponseAsString(&data); |
// UnpackerClient releases itself. |
- UnpackerClient* client = new UnpackerClient(this); |
+ UnpackerClient* client = new UnpackerClient(this, use_utility_process_); |
client->Start(data); |
Release(); |