| 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..a0835b88126f34eb64f1678a0ca3fc2707efde14 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 (!ondemand_mode_) {
|
| + 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(ondemand_mode_);
|
| + 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),
|
| + ondemand_mode_(false),
|
| + next_request_id_(1) {
|
| rules_ = CreateCatchAllHostResolverProc();
|
|
|
| if (use_caching) {
|
|
|