Fix assertions in Debug builds about using NetworkDelegate on the wrong thread
We have to create it on the IO thread.
This commit is contained in:
parent
37679214d1
commit
dcaaeacfe3
3 changed files with 8 additions and 4 deletions
|
@ -106,7 +106,7 @@ net::URLRequestContextGetter* BrowserContext::CreateRequestContext(
|
||||||
GetPath(),
|
GetPath(),
|
||||||
io_loop,
|
io_loop,
|
||||||
file_loop,
|
file_loop,
|
||||||
CreateNetworkDelegate().Pass(),
|
base::Bind(&BrowserContext::CreateNetworkDelegate, base::Unretained(this)),
|
||||||
protocol_handlers);
|
protocol_handlers);
|
||||||
resource_context_->set_url_request_context_getter(url_request_getter_.get());
|
resource_context_->set_url_request_context_getter(url_request_getter_.get());
|
||||||
return url_request_getter_.get();
|
return url_request_getter_.get();
|
||||||
|
|
|
@ -40,12 +40,12 @@ URLRequestContextGetter::URLRequestContextGetter(
|
||||||
const base::FilePath& base_path,
|
const base::FilePath& base_path,
|
||||||
base::MessageLoop* io_loop,
|
base::MessageLoop* io_loop,
|
||||||
base::MessageLoop* file_loop,
|
base::MessageLoop* file_loop,
|
||||||
scoped_ptr<NetworkDelegate> network_delegate,
|
base::Callback<scoped_ptr<NetworkDelegate>(void)> network_delegate_factory,
|
||||||
content::ProtocolHandlerMap* protocol_handlers)
|
content::ProtocolHandlerMap* protocol_handlers)
|
||||||
: base_path_(base_path),
|
: base_path_(base_path),
|
||||||
io_loop_(io_loop),
|
io_loop_(io_loop),
|
||||||
file_loop_(file_loop),
|
file_loop_(file_loop),
|
||||||
network_delegate_(network_delegate.Pass()) {
|
network_delegate_factory_(network_delegate_factory) {
|
||||||
// Must first be created on the UI thread.
|
// Must first be created on the UI thread.
|
||||||
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
||||||
|
|
||||||
|
@ -67,6 +67,7 @@ net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() {
|
||||||
|
|
||||||
if (!url_request_context_.get()) {
|
if (!url_request_context_.get()) {
|
||||||
url_request_context_.reset(new net::URLRequestContext());
|
url_request_context_.reset(new net::URLRequestContext());
|
||||||
|
network_delegate_ = network_delegate_factory_.Run().Pass();
|
||||||
url_request_context_->set_network_delegate(network_delegate_.get());
|
url_request_context_->set_network_delegate(network_delegate_.get());
|
||||||
storage_.reset(
|
storage_.reset(
|
||||||
new net::URLRequestContextStorage(url_request_context_.get()));
|
new net::URLRequestContextStorage(url_request_context_.get()));
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#ifndef BRIGHTRAY_BROWSER_URL_REQUEST_CONTEXT_GETTER_H_
|
#ifndef BRIGHTRAY_BROWSER_URL_REQUEST_CONTEXT_GETTER_H_
|
||||||
#define BRIGHTRAY_BROWSER_URL_REQUEST_CONTEXT_GETTER_H_
|
#define BRIGHTRAY_BROWSER_URL_REQUEST_CONTEXT_GETTER_H_
|
||||||
|
|
||||||
|
#include "base/callback.h"
|
||||||
#include "base/files/file_path.h"
|
#include "base/files/file_path.h"
|
||||||
#include "base/memory/scoped_ptr.h"
|
#include "base/memory/scoped_ptr.h"
|
||||||
#include "content/public/browser/content_browser_client.h"
|
#include "content/public/browser/content_browser_client.h"
|
||||||
|
@ -30,7 +31,7 @@ class URLRequestContextGetter : public net::URLRequestContextGetter {
|
||||||
const base::FilePath& base_path,
|
const base::FilePath& base_path,
|
||||||
base::MessageLoop* io_loop,
|
base::MessageLoop* io_loop,
|
||||||
base::MessageLoop* file_loop,
|
base::MessageLoop* file_loop,
|
||||||
scoped_ptr<NetworkDelegate>,
|
base::Callback<scoped_ptr<NetworkDelegate>(void)>,
|
||||||
content::ProtocolHandlerMap*);
|
content::ProtocolHandlerMap*);
|
||||||
virtual ~URLRequestContextGetter();
|
virtual ~URLRequestContextGetter();
|
||||||
|
|
||||||
|
@ -45,6 +46,8 @@ class URLRequestContextGetter : public net::URLRequestContextGetter {
|
||||||
base::MessageLoop* io_loop_;
|
base::MessageLoop* io_loop_;
|
||||||
base::MessageLoop* file_loop_;
|
base::MessageLoop* file_loop_;
|
||||||
|
|
||||||
|
base::Callback<scoped_ptr<NetworkDelegate>(void)> network_delegate_factory_;
|
||||||
|
|
||||||
scoped_ptr<net::ProxyConfigService> proxy_config_service_;
|
scoped_ptr<net::ProxyConfigService> proxy_config_service_;
|
||||||
scoped_ptr<NetworkDelegate> network_delegate_;
|
scoped_ptr<NetworkDelegate> network_delegate_;
|
||||||
scoped_ptr<net::URLRequestContextStorage> storage_;
|
scoped_ptr<net::URLRequestContextStorage> storage_;
|
||||||
|
|
Loading…
Reference in a new issue