Chromium Code Reviews| 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..2f89ec7985a1da055dc7604bc89a6204919bea8b 100644 |
| --- a/chrome/browser/net/dns_probe_service.h |
| +++ b/chrome/browser/net/dns_probe_service.h |
| @@ -8,11 +8,11 @@ |
| #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/common/net/net_error_info.h" |
| -#include "net/base/network_change_notifier.h" |
| namespace net { |
| struct DnsConfig; |
| @@ -20,66 +20,33 @@ struct DnsConfig; |
| namespace chrome_browser_net { |
| -class DnsProbeService : public net::NetworkChangeNotifier::IPAddressObserver { |
| +class DnsProbeService { |
| public: |
| - typedef base::Callback<void(chrome_common_net::DnsProbeResult result)> |
| - CallbackType; |
| - |
| - DnsProbeService(); |
| - virtual ~DnsProbeService(); |
| - |
| - void ProbeDns(const CallbackType& callback); |
| - |
| - // NetworkChangeNotifier::IPAddressObserver implementation: |
| - virtual void OnIPAddressChanged() OVERRIDE; |
| - |
| - protected: |
| - // This can be called by tests to pretend the cached reuslt has expired. |
| - void ExpireResults(); |
| - |
| - private: |
| - enum State { |
| - STATE_NO_RESULTS, |
| - STATE_PROBE_RUNNING, |
| - STATE_RESULTS_CACHED, |
| + class JobFactory { |
| + public: |
| + JobFactory() { } |
| + virtual ~JobFactory() { } |
|
mmenke
2013/05/28 18:20:13
nit: Google C++ style guide says not to use a spa
Deprecated (see juliatuttle)
2013/06/05 21:01:47
Done.
|
| + virtual scoped_ptr<DnsProbeJob> CreateSystemJob( |
| + const DnsProbeJob::CallbackType& job_callback) = 0; |
| + virtual scoped_ptr<DnsProbeJob> CreatePublicJob( |
| + const DnsProbeJob::CallbackType& job_callback) = 0; |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(JobFactory); |
| }; |
| - void StartProbes(); |
| - void OnProbesComplete(); |
| - void CallCallbacks(); |
| - |
| - void OnProbeJobComplete(DnsProbeJob* job, DnsProbeJob::Result result); |
| - chrome_common_net::DnsProbeResult EvaluateResults() const; |
| - void HistogramProbes() const; |
| + typedef base::Callback<void(chrome_common_net::DnsProbeStatus result)> |
| + CallbackType; |
| - // 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); |
| + DnsProbeService() { } |
| + virtual ~DnsProbeService() { } |
|
mmenke
2013/05/28 18:20:13
nit: Google C++ style guide says not to use a spa
Deprecated (see juliatuttle)
2013/06/05 21:01:47
Done.
|
| - 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(); |
| + static DnsProbeService* CreateDefault(); |
| + static DnsProbeService* CreateDefaultWithJobFactory( |
| + scoped_ptr<JobFactory> job_factory); |
| - scoped_ptr<DnsProbeJob> system_job_; |
| - scoped_ptr<DnsProbeJob> public_job_; |
| - DnsProbeJob::Result system_result_; |
| - DnsProbeJob::Result public_result_; |
| - std::vector<CallbackType> callbacks_; |
| - State state_; |
| - chrome_common_net::DnsProbeResult 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_; |
| + virtual void ProbeDns(const CallbackType& callback) = 0; |
| + virtual void ExpireResultForTesting() { } |
|
mmenke
2013/05/28 18:20:13
nit: Google C++ style guide says not to use a spa
Deprecated (see juliatuttle)
2013/06/05 21:01:47
Done.
|
| DISALLOW_COPY_AND_ASSIGN(DnsProbeService); |
| }; |