Chromium Code Reviews| Index: components/cronet/ios/cronet_environment.cc |
| diff --git a/components/cronet/ios/cronet_environment.cc b/components/cronet/ios/cronet_environment.cc |
| index 0fef4af2e2266ab840e1b76a457f213ba763f5a6..5e2a6eea90a154b7f1b619e8c2e460de9ce1ed46 100644 |
| --- a/components/cronet/ios/cronet_environment.cc |
| +++ b/components/cronet/ios/cronet_environment.cc |
| @@ -96,10 +96,6 @@ class CronetURLRequestContextGetter : public net::URLRequestContextGetter { |
| namespace cronet { |
| -bool CronetEnvironment::IsOnNetworkThread() { |
| - return network_io_thread_->task_runner()->BelongsToCurrentThread(); |
| -} |
| - |
| void CronetEnvironment::PostToNetworkThread( |
| const tracked_objects::Location& from_here, |
| const base::Closure& task) { |
| @@ -225,6 +221,8 @@ CronetEnvironment::CronetEnvironment(const std::string& user_agent, |
| bool user_agent_partial) |
| : http2_enabled_(false), |
| quic_enabled_(false), |
| + event_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
| + base::WaitableEvent::InitialState::NOT_SIGNALED), |
| user_agent_(user_agent), |
| user_agent_partial_(user_agent_partial), |
| net_log_(new net::NetLog) {} |
| @@ -297,7 +295,6 @@ void CronetEnvironment::InitializeOnNetworkThread() { |
| new net::MappedHostResolver( |
| net::HostResolver::CreateDefaultResolver(nullptr))); |
| - mapped_host_resolver->SetRulesFromString(host_resolver_rules_); |
| main_context_->set_host_resolver(mapped_host_resolver.release()); |
| if (!cert_verifier_) |
| @@ -400,4 +397,17 @@ std::vector<uint8_t> CronetEnvironment::GetHistogramDeltas() { |
| return data; |
| } |
| +void CronetEnvironment::SetHostResolverRules(const std::string& rules) { |
| + PostToNetworkThread( |
| + FROM_HERE, base::Bind(&CronetEnvironment::SetHostResolverRulesInternal, |
| + base::Unretained(this), rules)); |
| + event_.Wait(); |
|
mef
2016/11/07 18:15:20
Can event be allocated on the stack and passed as
Garrett Casto
2016/11/07 18:37:26
Done.
|
| +} |
| + |
| +void CronetEnvironment::SetHostResolverRulesInternal(const std::string& rules) { |
| + static_cast<net::MappedHostResolver*>(main_context_->host_resolver()) |
| + ->SetRulesFromString(rules); |
| + event_.Signal(); |
| +} |
| + |
| } // namespace cronet |