| Index: content/shell/shell_url_request_context_getter.cc
 | 
| diff --git a/content/shell/shell_url_request_context_getter.cc b/content/shell/shell_url_request_context_getter.cc
 | 
| index c5ba28a5a4dd506a1ef4a0d1f8249f1d3cf512b0..b4c25c22b9021b3d868344a2120913c63d0c8fed 100644
 | 
| --- a/content/shell/shell_url_request_context_getter.cc
 | 
| +++ b/content/shell/shell_url_request_context_getter.cc
 | 
| @@ -35,34 +35,38 @@
 | 
|  
 | 
|  namespace content {
 | 
|  
 | 
| +namespace {
 | 
| +
 | 
| +void InstallProtocolHandlers(net::URLRequestJobFactoryImpl* job_factory,
 | 
| +                             ProtocolHandlerMap* protocol_handlers) {
 | 
| +  for (ProtocolHandlerMap::iterator it =
 | 
| +           protocol_handlers->begin();
 | 
| +       it != protocol_handlers->end();
 | 
| +       ++it) {
 | 
| +    bool set_protocol = job_factory->SetProtocolHandler(
 | 
| +        it->first, it->second.release());
 | 
| +    DCHECK(set_protocol);
 | 
| +  }
 | 
| +  protocol_handlers->clear();
 | 
| +}
 | 
| +
 | 
| +}  // namespace
 | 
| +
 | 
|  ShellURLRequestContextGetter::ShellURLRequestContextGetter(
 | 
|      bool ignore_certificate_errors,
 | 
|      const base::FilePath& base_path,
 | 
|      MessageLoop* io_loop,
 | 
|      MessageLoop* file_loop,
 | 
| -    scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
 | 
| -        blob_protocol_handler,
 | 
| -    scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
 | 
| -        file_system_protocol_handler,
 | 
| -    scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
 | 
| -        developer_protocol_handler,
 | 
| -    scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
 | 
| -        chrome_protocol_handler,
 | 
| -    scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
 | 
| -        chrome_devtools_protocol_handler)
 | 
| +    ProtocolHandlerMap* protocol_handlers)
 | 
|      : ignore_certificate_errors_(ignore_certificate_errors),
 | 
|        base_path_(base_path),
 | 
|        io_loop_(io_loop),
 | 
| -      file_loop_(file_loop),
 | 
| -      blob_protocol_handler_(blob_protocol_handler.Pass()),
 | 
| -      file_system_protocol_handler_(file_system_protocol_handler.Pass()),
 | 
| -      developer_protocol_handler_(developer_protocol_handler.Pass()),
 | 
| -      chrome_protocol_handler_(chrome_protocol_handler.Pass()),
 | 
| -      chrome_devtools_protocol_handler_(
 | 
| -          chrome_devtools_protocol_handler.Pass()) {
 | 
| +      file_loop_(file_loop) {
 | 
|    // Must first be created on the UI thread.
 | 
|    DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
 | 
|  
 | 
| +  std::swap(protocol_handlers_, *protocol_handlers);
 | 
| +
 | 
|    // We must create the proxy config service on the UI loop on Linux because it
 | 
|    // must synchronously run on the glib message loop. This will be passed to
 | 
|    // the URLRequestContextStorage on the IO thread in GetURLRequestContext().
 | 
| @@ -173,22 +177,8 @@ net::URLRequestContext* ShellURLRequestContextGetter::GetURLRequestContext() {
 | 
|  
 | 
|      scoped_ptr<net::URLRequestJobFactoryImpl> job_factory(
 | 
|          new net::URLRequestJobFactoryImpl());
 | 
| -    bool set_protocol = job_factory->SetProtocolHandler(
 | 
| -        chrome::kBlobScheme, blob_protocol_handler_.release());
 | 
| -    DCHECK(set_protocol);
 | 
| -    set_protocol = job_factory->SetProtocolHandler(
 | 
| -        chrome::kFileSystemScheme, file_system_protocol_handler_.release());
 | 
| -    DCHECK(set_protocol);
 | 
| -    set_protocol = job_factory->SetProtocolHandler(
 | 
| -            chrome::kChromeUIScheme, chrome_protocol_handler_.release());
 | 
| -    DCHECK(set_protocol);
 | 
| -    set_protocol = job_factory->SetProtocolHandler(
 | 
| -        chrome::kChromeDevToolsScheme,
 | 
| -        chrome_devtools_protocol_handler_.release());
 | 
| -    DCHECK(set_protocol);
 | 
| -    storage_->set_job_factory(new net::ProtocolInterceptJobFactory(
 | 
| -        job_factory.PassAs<net::URLRequestJobFactory>(),
 | 
| -        developer_protocol_handler_.Pass()));
 | 
| +    InstallProtocolHandlers(job_factory.get(), &protocol_handlers_);
 | 
| +    storage_->set_job_factory(job_factory.release());
 | 
|    }
 | 
|  
 | 
|    return url_request_context_.get();
 | 
| 
 |