Index: chrome/browser/net/net_error_tab_helper.cc |
diff --git a/chrome/browser/net/net_error_tab_helper.cc b/chrome/browser/net/net_error_tab_helper.cc |
index a5d124e4fcb00824beb930921b44f64424bd2539..aa0a3294dc5ac7f9b029eaa9c057f17d1df72430 100644 |
--- a/chrome/browser/net/net_error_tab_helper.cc |
+++ b/chrome/browser/net/net_error_tab_helper.cc |
@@ -19,6 +19,7 @@ |
using base::FieldTrialList; |
using chrome_common_net::DnsProbeResult; |
+using chrome_common_net::DnsProbeStatus; |
using content::BrowserContext; |
using content::BrowserThread; |
using content::PageTransition; |
@@ -70,8 +71,6 @@ void OnDnsProbeFinishedOnIOThread( |
DnsProbeResult result) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- DVLOG(1) << "DNS probe finished with result " << result; |
- |
BrowserThread::PostTask( |
BrowserThread::UI, |
FROM_HERE, |
@@ -85,8 +84,6 @@ void StartDnsProbeOnIOThread( |
IOThread* io_thread) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- DVLOG(1) << "Starting DNS probe"; |
- |
DnsProbeService* probe_service = |
io_thread->globals()->dns_probe_service.get(); |
@@ -167,48 +164,82 @@ NetErrorTabHelper::NetErrorTabHelper(WebContents* contents) |
void NetErrorTabHelper::TrackerCallback( |
NetErrorTracker::DnsErrorPageState state) { |
+ DVLOG(1) << "Tracker state " << state; |
+ |
dns_error_page_state_ = state; |
MaybePostStartDnsProbeTask(); |
- MaybeSendInfo(); |
+ MaybeSendStatus(); |
} |
void NetErrorTabHelper::MaybePostStartDnsProbeTask() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- if (dns_error_page_state_ != NetErrorTracker::DNS_ERROR_PAGE_NONE && |
- dns_probe_state_ != DNS_PROBE_STARTED && |
- ProbesAllowed()) { |
- BrowserThread::PostTask( |
- BrowserThread::IO, |
- FROM_HERE, |
- base::Bind(&StartDnsProbeOnIOThread, |
- base::Bind(&NetErrorTabHelper::OnDnsProbeFinished, |
- weak_factory_.GetWeakPtr()), |
- g_browser_process->io_thread())); |
- dns_probe_state_ = DNS_PROBE_STARTED; |
+ if (dns_error_page_state_ == NetErrorTracker::DNS_ERROR_PAGE_NONE || |
+ dns_probe_state_ != DNS_PROBE_NONE || |
+ !ProbesAllowed()) { |
+ return; |
} |
+ |
+ DVLOG(1) << "Starting probe."; |
+ |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind(&StartDnsProbeOnIOThread, |
+ base::Bind(&NetErrorTabHelper::OnDnsProbeFinished, |
+ weak_factory_.GetWeakPtr()), |
+ g_browser_process->io_thread())); |
+ dns_probe_state_ = DNS_PROBE_STARTED; |
} |
void NetErrorTabHelper::OnDnsProbeFinished(DnsProbeResult result) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
DCHECK_EQ(DNS_PROBE_STARTED, dns_probe_state_); |
+ DVLOG(1) << "Finished probe with result " << result << "."; |
+ |
dns_probe_result_ = result; |
dns_probe_state_ = DNS_PROBE_FINISHED; |
- MaybeSendInfo(); |
+ MaybeSendStatus(); |
} |
-void NetErrorTabHelper::MaybeSendInfo() { |
- if (dns_error_page_state_ == NetErrorTracker::DNS_ERROR_PAGE_LOADED && |
- dns_probe_state_ == DNS_PROBE_FINISHED) { |
- DVLOG(1) << "Sending result " << dns_probe_result_ << " to renderer"; |
- Send(new ChromeViewMsg_NetErrorInfo(routing_id(), dns_probe_result_)); |
+void NetErrorTabHelper::MaybeSendStatus() { |
+ if (dns_error_page_state_ != NetErrorTracker::DNS_ERROR_PAGE_LOADED) |
+ return; |
+ |
+ switch (dns_probe_state_) { |
+ case DNS_PROBE_STARTED: |
+ DVLOG(1) << "Error page loaded; sending STARTED."; |
+ SendInfo(chrome_common_net::DNS_PROBE_STARTED, |
+ chrome_common_net::DNS_PROBE_UNKNOWN); |
+ break; |
+ |
+ case DNS_PROBE_FINISHED: |
+ DVLOG(1) << "Error page loaded; sending FINISHED."; |
+ SendInfo(chrome_common_net::DNS_PROBE_FINISHED, dns_probe_result_); |
dns_probe_state_ = DNS_PROBE_NONE; |
+ break; |
+ |
+ case DNS_PROBE_NONE: |
+ DVLOG(1) << "Error page loaded; sending NOT_RUN."; |
+ SendInfo(chrome_common_net::DNS_PROBE_NOT_RUN, |
+ chrome_common_net::DNS_PROBE_UNKNOWN); |
+ break; |
+ |
+ default: |
+ NOTREACHED(); |
} |
} |
+void NetErrorTabHelper::SendInfo( |
+ DnsProbeStatus status, |
+ DnsProbeResult result) |
+{ |
mmenke
2013/04/01 17:44:12
nit: "{" should go on previous line.
Deprecated (see juliatuttle)
2013/04/09 20:35:49
Done.
|
+ Send(new ChromeViewMsg_NetErrorInfo(routing_id(), status, result)); |
+} |
+ |
void NetErrorTabHelper::InitializePref(WebContents* contents) { |
DCHECK(contents); |