Index: net/base/mock_host_resolver.cc |
diff --git a/net/base/mock_host_resolver.cc b/net/base/mock_host_resolver.cc |
index d86e20924c538c1bb1ce40c16840b07e9c4dcef4..17704aa059f7d90fb32262074eb2fa102ebc79a6 100644 |
--- a/net/base/mock_host_resolver.cc |
+++ b/net/base/mock_host_resolver.cc |
@@ -84,10 +84,13 @@ int MockHostResolverBase::Resolve(const RequestInfo& info, |
requests_[id] = req; |
if (handle) |
*handle = reinterpret_cast<RequestHandle>(id); |
- MessageLoop::current()->PostTask(FROM_HERE, |
- base::Bind(&MockHostResolverBase::ResolveNow, |
- AsWeakPtr(), |
- id)); |
+ |
+ if (resolve_automatically_) { |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&MockHostResolverBase::ResolveNow, AsWeakPtr(), id)); |
+ } |
+ |
return ERR_IO_PENDING; |
} |
@@ -117,9 +120,21 @@ HostCache* MockHostResolverBase::GetHostCache() { |
return cache_.get(); |
} |
+void MockHostResolverBase::ResolveAllPending() { |
+ DCHECK(CalledOnValidThread()); |
+ DCHECK(!resolve_automatically_); |
+ for (RequestMap::iterator i = requests_.begin(); i != requests_.end(); ++i) { |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&MockHostResolverBase::ResolveNow, AsWeakPtr(), i->first)); |
+ } |
+} |
+ |
// start id from 1 to distinguish from NULL RequestHandle |
MockHostResolverBase::MockHostResolverBase(bool use_caching) |
- : synchronous_mode_(false), next_request_id_(1) { |
+ : synchronous_mode_(false), |
+ resolve_automatically_(true), |
+ next_request_id_(1) { |
rules_ = CreateCatchAllHostResolverProc(); |
if (use_caching) { |