Chromium Code Reviews| Index: net/dns/host_cache.cc |
| diff --git a/net/dns/host_cache.cc b/net/dns/host_cache.cc |
| index 7556e7eee478408afd182eef19360fafc3681ffe..ee50f8626131883117e534312428f64d3422d99e 100644 |
| --- a/net/dns/host_cache.cc |
| +++ b/net/dns/host_cache.cc |
| @@ -198,6 +198,27 @@ void HostCache::clear() { |
| entries_.clear(); |
| } |
| +void HostCache::ClearForHosts( |
| + const base::Callback<bool(const std::string&)>& host_filter) { |
| + DCHECK(CalledOnValidThread()); |
| + |
| + if (host_filter.is_null()) { |
| + clear(); |
| + return; |
| + } |
| + |
| + for (EntryMap::iterator it = entries_.begin(); it != entries_.end();) { |
| + EntryMap::iterator next_it = std::next(it); |
| + |
| + if (host_filter.Run(it->first.hostname)) { |
| + RecordErase(ERASE_CLEAR, base::TimeTicks::Now(), it->second); |
|
mmenke
2016/08/31 15:24:37
Maybe just call base::TimeTicks::Now() once, outsi
msramek
2016/08/31 16:02:55
Done. Good point - it's even better for consistenc
|
| + entries_.erase(it); |
| + } |
| + |
| + it = next_it; |
| + } |
| +} |
| + |
| size_t HostCache::size() const { |
| DCHECK(CalledOnValidThread()); |
| return entries_.size(); |