Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: chrome/browser/net/dns_probe_service.cc

Issue 11620007: Switch from OnIPAddressChanged and OnConnectionTypeChange to OnNetworkChanged Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/net/dns_probe_service.h" 5 #include "chrome/browser/net/dns_probe_service.h"
6 6
7 #include "base/metrics/field_trial.h" 7 #include "base/metrics/field_trial.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "chrome/browser/net/dns_probe_job.h" 10 #include "chrome/browser/net/dns_probe_job.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 const int kNameserverCountMax = 10; 71 const int kNameserverCountMax = 10;
72 72
73 } // namespace 73 } // namespace
74 74
75 DnsProbeService::DnsProbeService() 75 DnsProbeService::DnsProbeService()
76 : system_result_(DnsProbeJob::SERVERS_UNKNOWN), 76 : system_result_(DnsProbeJob::SERVERS_UNKNOWN),
77 public_result_(DnsProbeJob::SERVERS_UNKNOWN), 77 public_result_(DnsProbeJob::SERVERS_UNKNOWN),
78 state_(STATE_NO_RESULTS), 78 state_(STATE_NO_RESULTS),
79 result_(chrome_common_net::DNS_PROBE_UNKNOWN), 79 result_(chrome_common_net::DNS_PROBE_UNKNOWN),
80 dns_attempts_(GetAttemptsFromFieldTrial()) { 80 dns_attempts_(GetAttemptsFromFieldTrial()) {
81 NetworkChangeNotifier::AddIPAddressObserver(this); 81 NetworkChangeNotifier::AddNetworkChangeObserver(this);
82 } 82 }
83 83
84 DnsProbeService::~DnsProbeService() { 84 DnsProbeService::~DnsProbeService() {
85 NetworkChangeNotifier::RemoveIPAddressObserver(this); 85 NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
86 } 86 }
87 87
88 void DnsProbeService::ProbeDns(const DnsProbeService::CallbackType& callback) { 88 void DnsProbeService::ProbeDns(const DnsProbeService::CallbackType& callback) {
89 callbacks_.push_back(callback); 89 callbacks_.push_back(callback);
90 90
91 if (state_ == STATE_RESULTS_CACHED && ResultsExpired()) 91 if (state_ == STATE_RESULTS_CACHED && ResultsExpired())
92 ExpireResults(); 92 ExpireResults();
93 93
94 switch (state_) { 94 switch (state_) {
95 case STATE_NO_RESULTS: 95 case STATE_NO_RESULTS:
(...skipping 15 matching lines...) Expand all
111 return CreateProbeJob(system_config, job_callback); 111 return CreateProbeJob(system_config, job_callback);
112 } 112 }
113 113
114 scoped_ptr<DnsProbeJob> DnsProbeService::CreatePublicProbeJob( 114 scoped_ptr<DnsProbeJob> DnsProbeService::CreatePublicProbeJob(
115 const DnsProbeJob::CallbackType& job_callback) { 115 const DnsProbeJob::CallbackType& job_callback) {
116 DnsConfig public_config; 116 DnsConfig public_config;
117 GetPublicDnsConfig(&public_config); 117 GetPublicDnsConfig(&public_config);
118 return CreateProbeJob(public_config, job_callback); 118 return CreateProbeJob(public_config, job_callback);
119 } 119 }
120 120
121 void DnsProbeService::OnIPAddressChanged() { 121 void DnsProbeService::OnNetworkChanged(
122 if (state_ == STATE_RESULTS_CACHED) 122 net::NetworkChangeNotifier::ConnectionType type) {
123 if (type == net::NetworkChangeNotifier::CONNECTION_NONE &&
124 state_ == STATE_RESULTS_CACHED)
123 ExpireResults(); 125 ExpireResults();
124 } 126 }
125 127
126 void DnsProbeService::ExpireResults() { 128 void DnsProbeService::ExpireResults() {
127 DCHECK_EQ(STATE_RESULTS_CACHED, state_); 129 DCHECK_EQ(STATE_RESULTS_CACHED, state_);
128 130
129 state_ = STATE_NO_RESULTS; 131 state_ = STATE_NO_RESULTS;
130 result_ = chrome_common_net::DNS_PROBE_UNKNOWN; 132 result_ = chrome_common_net::DNS_PROBE_UNKNOWN;
131 } 133 }
132 134
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 config->attempts = dns_attempts_; 331 config->attempts = dns_attempts_;
330 } 332 }
331 333
332 bool DnsProbeService::ResultsExpired() { 334 bool DnsProbeService::ResultsExpired() {
333 const base::TimeDelta kMaxResultAge = 335 const base::TimeDelta kMaxResultAge =
334 base::TimeDelta::FromMilliseconds(kMaxResultAgeMs); 336 base::TimeDelta::FromMilliseconds(kMaxResultAgeMs);
335 return base::Time::Now() - probe_start_time_ > kMaxResultAge; 337 return base::Time::Now() - probe_start_time_ > kMaxResultAge;
336 } 338 }
337 339
338 } // namespace chrome_browser_net 340 } // namespace chrome_browser_net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698