Chromium Code Reviews| Index: chrome/browser/io_thread.cc |
| diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc |
| index 52e7ad89ba6fb93d36299b013d72524b2f9986f2..c3882dc63d6520f46d09df70db4208aa038ed5a0 100644 |
| --- a/chrome/browser/io_thread.cc |
| +++ b/chrome/browser/io_thread.cc |
| @@ -290,7 +290,7 @@ class SystemURLRequestContextGetter : public net::URLRequestContextGetter { |
| public: |
| explicit SystemURLRequestContextGetter(IOThread* io_thread); |
| - // Implementation for net::UrlRequestContextGetter. |
| + // net::URLRequestContextGetter implementation. |
|
eroman
2017/02/21 22:14:23
Was this a manual change or something the linter d
wangyix1
2017/02/22 01:28:18
I manually changed this. I don't really know why.
|
| net::URLRequestContext* GetURLRequestContext() override; |
| scoped_refptr<base::SingleThreadTaskRunner> GetNetworkTaskRunner() |
| const override; |
| @@ -325,6 +325,46 @@ SystemURLRequestContextGetter::GetNetworkTaskRunner() const { |
| return network_task_runner_; |
| } |
| +class ProxyScriptFetcherContextGetter : public net::URLRequestContextGetter { |
| + public: |
| + explicit ProxyScriptFetcherContextGetter(IOThread* io_thread); |
| + |
| + // net::URLRequestContextGetter implementation. |
| + net::URLRequestContext* GetURLRequestContext() override; |
| + scoped_refptr<base::SingleThreadTaskRunner> GetNetworkTaskRunner() |
| + const override; |
| + |
| + protected: |
| + ~ProxyScriptFetcherContextGetter() override; |
| + |
| + private: |
| + IOThread* const io_thread_; // Weak pointer, owned by BrowserProcess. |
|
eroman
2017/02/21 22:14:23
Can remove "weak pointer" (which has specific mean
wangyix1
2017/02/22 01:28:18
Done.
|
| + scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; |
|
eroman
2017/02/21 22:14:23
Instead of this member variable how about just ret
wangyix1
2017/02/22 01:28:18
Done.
|
| + |
| + base::debug::LeakTracker<ProxyScriptFetcherContextGetter> leak_tracker_; |
| +}; |
| + |
| +ProxyScriptFetcherContextGetter::ProxyScriptFetcherContextGetter( |
| + IOThread* io_thread) |
| + : io_thread_(io_thread), |
| + network_task_runner_( |
| + BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)) {} |
| + |
| +ProxyScriptFetcherContextGetter::~ProxyScriptFetcherContextGetter() {} |
| + |
| +net::URLRequestContext* |
| +ProxyScriptFetcherContextGetter::GetURLRequestContext() { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + DCHECK(io_thread_->globals()->proxy_script_fetcher_context.get()); |
| + |
| + return io_thread_->globals()->proxy_script_fetcher_context.get(); |
| +} |
| + |
| +scoped_refptr<base::SingleThreadTaskRunner> |
| +ProxyScriptFetcherContextGetter::GetNetworkTaskRunner() const { |
| + return network_task_runner_; |
| +} |
| + |
| IOThread::Globals:: |
| SystemRequestContextLeakChecker::SystemRequestContextLeakChecker( |
| Globals* globals) |
| @@ -489,6 +529,11 @@ net::URLRequestContextGetter* IOThread::system_url_request_context_getter() { |
| return system_url_request_context_getter_.get(); |
| } |
| +net::URLRequestContextGetter* IOThread::proxy_script_fetcher_context_getter() { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| + return proxy_script_fetcher_context_getter_.get(); |
| +} |
| + |
| void IOThread::Init() { |
| TRACE_EVENT0("startup", "IOThread::InitAsync"); |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| @@ -656,6 +701,8 @@ void IOThread::Init() { |
| ConstructProxyScriptFetcherContext(globals_, params_, net_log_)); |
| TRACE_EVENT_END0("startup", |
| "IOThread::Init:ProxyScriptFetcherRequestContext"); |
| + proxy_script_fetcher_context_getter_ = |
| + new ProxyScriptFetcherContextGetter(this); |
| #if defined(OS_MACOSX) |
| // Start observing Keychain events. This needs to be done on the UI thread, |
| @@ -723,6 +770,7 @@ void IOThread::CleanUp() { |
| globals_ = NULL; |
| base::debug::LeakTracker<SystemURLRequestContextGetter>::CheckForLeaks(); |
| + base::debug::LeakTracker<ProxyScriptFetcherContextGetter>::CheckForLeaks(); |
| } |
| // static |