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 |