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

Unified Diff: chrome/browser/net/dns_probe_service.h

Issue 13270005: Display DNS probe results. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: ...actually add the unittests Created 7 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/net/dns_probe_service.h
diff --git a/chrome/browser/net/dns_probe_service.h b/chrome/browser/net/dns_probe_service.h
index c40967acc10c64e35dc34b5739b580b9dcd4a150..da30b945e392650a8f7380b91ca775e00f763437 100644
--- a/chrome/browser/net/dns_probe_service.h
+++ b/chrome/browser/net/dns_probe_service.h
@@ -8,9 +8,10 @@
#include <vector>
#include "base/basictypes.h"
+#include "base/bind.h"
#include "base/memory/scoped_ptr.h"
#include "base/time.h"
-#include "chrome/browser/net/dns_probe_job.h"
+#include "chrome/browser/net/dns_probe_runner.h"
#include "chrome/common/net/net_error_info.h"
#include "net/base/network_change_notifier.h"
@@ -18,24 +19,23 @@ namespace net {
struct DnsConfig;
}
-namespace chrome_browser_net {
cbentzel 2013/06/10 17:10:00 Why did you remove the namespace?
Deprecated (see juliatuttle) 2013/06/11 01:07:34 Obsolete.
-
-class DnsProbeService : public net::NetworkChangeNotifier::IPAddressObserver {
+class DnsProbeService : public net::NetworkChangeNotifier::DNSObserver {
public:
- typedef base::Callback<void(chrome_common_net::DnsProbeResult result)>
- CallbackType;
+ typedef base::Callback<void(chrome_common_net::DnsProbeStatus result)>
+ ProbeCallback;
DnsProbeService();
virtual ~DnsProbeService();
- void ProbeDns(const CallbackType& callback);
+ void ProbeDns(const ProbeCallback& callback);
+ void ExpireResultForTesting();
+ DnsProbeRunner* GetProbeRunnerForTesting();
- // NetworkChangeNotifier::IPAddressObserver implementation:
- virtual void OnIPAddressChanged() OVERRIDE;
+ // NetworkChangeNotifier::DNSObserver implementation:
+ virtual void OnDNSChanged() OVERRIDE;
szym 2013/06/07 19:31:28 You have it both here and in DnsProbeRunner. In D
Deprecated (see juliatuttle) 2013/06/11 01:07:34 Done.
protected:
- // This can be called by tests to pretend the cached reuslt has expired.
- void ExpireResults();
+ void ExpireResult();
private:
enum State {
@@ -45,45 +45,26 @@ class DnsProbeService : public net::NetworkChangeNotifier::IPAddressObserver {
};
void StartProbes();
+ void OnProbeComplete(DnsProbeRunner::Type type,
+ DnsProbeRunner::Result result);
void OnProbesComplete();
- void CallCallbacks();
-
- void OnProbeJobComplete(DnsProbeJob* job, DnsProbeJob::Result result);
- chrome_common_net::DnsProbeResult EvaluateResults() const;
+ chrome_common_net::DnsProbeStatus EvaluateResults() const;
void HistogramProbes() const;
+ void CallCallbacks();
- // These are expected to be overridden by tests to return mock jobs.
- virtual scoped_ptr<DnsProbeJob> CreateSystemProbeJob(
- const DnsProbeJob::CallbackType& job_callback);
- virtual scoped_ptr<DnsProbeJob> CreatePublicProbeJob(
- const DnsProbeJob::CallbackType& job_callback);
-
- scoped_ptr<DnsProbeJob> CreateProbeJob(
- const net::DnsConfig& dns_config,
- const DnsProbeJob::CallbackType& job_callback);
- void GetSystemDnsConfig(net::DnsConfig* config);
- void GetPublicDnsConfig(net::DnsConfig* config);
bool ResultsExpired();
- scoped_ptr<DnsProbeJob> system_job_;
- scoped_ptr<DnsProbeJob> public_job_;
- DnsProbeJob::Result system_result_;
- DnsProbeJob::Result public_result_;
- std::vector<CallbackType> callbacks_;
+ DnsProbeRunner probe_runner_;
State state_;
- chrome_common_net::DnsProbeResult result_;
+ bool system_done_;
+ bool public_done_;
+ DnsProbeRunner::Result system_result_;
+ DnsProbeRunner::Result public_result_;
+ std::vector<ProbeCallback> pending_callbacks_;
+ chrome_common_net::DnsProbeStatus result_;
base::Time probe_start_time_;
- // How many DNS request attempts the probe jobs will make before giving up
- // (Overrides the attempts field in the system DnsConfig.)
- const int dns_attempts_;
- // How many nameservers the system config has.
- int system_nameserver_count_;
- // Whether the only system nameserver is 127.0.0.1.
- bool system_is_localhost_;
DISALLOW_COPY_AND_ASSIGN(DnsProbeService);
};
-} // namespace chrome_browser_net
-
#endif // CHROME_BROWSER_NET_DNS_PROBE_SERVICE_H_

Powered by Google App Engine
This is Rietveld 408576698