summaryrefslogtreecommitdiffstats
path: root/chrome/browser/net/dns_host_info.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/net/dns_host_info.cc')
-rw-r--r--chrome/browser/net/dns_host_info.cc23
1 files changed, 21 insertions, 2 deletions
diff --git a/chrome/browser/net/dns_host_info.cc b/chrome/browser/net/dns_host_info.cc
index d40acd7..dbfde3b 100644
--- a/chrome/browser/net/dns_host_info.cc
+++ b/chrome/browser/net/dns_host_info.cc
@@ -77,6 +77,7 @@ void DnsHostInfo::set_cache_expiration(TimeDelta time) {
void DnsHostInfo::SetQueuedState(ResolutionMotivation motivation) {
DCHECK(PENDING == state_ || FOUND == state_ || NO_SUCH_NAME == state_);
+ old_prequeue_state_ = state_;
state_ = QUEUED;
queue_duration_ = resolve_duration_ = kNullDuration;
SetMotivation(motivation);
@@ -92,6 +93,24 @@ void DnsHostInfo::SetAssignedState() {
UMA_HISTOGRAM_TIMES("DNS.PrefetchQueue", queue_duration_);
}
+void DnsHostInfo::RemoveFromQueue() {
+ DCHECK(ASSIGNED == state_);
+ state_ = old_prequeue_state_;
+ DLogResultsStats("DNS Prefetch reset to prequeue");
+ static const TimeDelta kBoundary = TimeDelta::FromSeconds(2);
+ if (queue_duration_ > kBoundary) {
+ UMA_HISTOGRAM_MEDIUM_TIMES("DNS.QueueRecycledDeltaOver2",
+ queue_duration_ - kBoundary);
+ return;
+ }
+ // Make a custom linear histogram for the region from 0 to boundary.
+ const size_t kBucketCount = 52;
+ static LinearHistogram histogram("DNS.QueueRecycledUnder2", TimeDelta(),
+ kBoundary, kBucketCount);
+ histogram.SetFlags(kUmaTargetedHistogramFlag);
+ histogram.AddTime(queue_duration_);
+}
+
void DnsHostInfo::SetPendingDeleteState() {
DCHECK(ASSIGNED == state_ || ASSIGNED_BUT_MARKED == state_);
state_ = ASSIGNED_BUT_MARKED;
@@ -143,7 +162,7 @@ void DnsHostInfo::SetFinishedState(bool was_resolved) {
void DnsHostInfo::SetHostname(const std::string& hostname) {
if (hostname != hostname_) {
- DCHECK(hostname_.size() == 0); // Not yet initialized.
+ DCHECK_EQ(hostname_.size(), 0u); // Not yet initialized.
hostname_ = hostname;
}
}
@@ -171,7 +190,7 @@ bool DnsHostInfo::IsStillCached() const {
DnsBenefit DnsHostInfo::AccruePrefetchBenefits(DnsHostInfo* navigation_info) {
DCHECK(FINISHED == navigation_info->state_ ||
FINISHED_UNRESOLVED == navigation_info->state_);
- DCHECK(0 == navigation_info->hostname_.compare(hostname_.data()));
+ DCHECK_EQ(navigation_info->hostname_, hostname_.data());
if ((0 == benefits_remaining_.InMilliseconds()) ||
(FOUND != state_ && NO_SUCH_NAME != state_)) {