diff options
author | ttuttle@chromium.org <ttuttle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-14 22:21:42 +0000 |
---|---|---|
committer | ttuttle@chromium.org <ttuttle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-14 22:21:42 +0000 |
commit | b5c2b7417067d58590ea7677d73570566d9c520b (patch) | |
tree | d9f4e04d8d9ddc2c7d6361defc30a09125bce595 /components | |
parent | 97b8e59952b5392c744d63cba45c30a81726cfd5 (diff) | |
download | chromium_src-b5c2b7417067d58590ea7677d73570566d9c520b.zip chromium_src-b5c2b7417067d58590ea7677d73570566d9c520b.tar.gz chromium_src-b5c2b7417067d58590ea7677d73570566d9c520b.tar.bz2 |
Domain Reliability: Prepare to switch to BrowserContextKeyedService
Add a BrowserContextKeyedService{,Factory} and rearrange a few things
in preparation for starting to use it.
Note: The factory calls NOTREACHED() if it is actually asked to produce
a service, since it's not supposed to be in use yet.
BUG=356791
Review URL: https://codereview.chromium.org/304733002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277275 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components')
19 files changed, 231 insertions, 69 deletions
diff --git a/components/domain_reliability.gypi b/components/domain_reliability.gypi index b1ade2c..50412d5 100644 --- a/components/domain_reliability.gypi +++ b/components/domain_reliability.gypi @@ -9,6 +9,7 @@ 'type': '<(component)', 'dependencies': [ '../base/base.gyp:base', + '../components/components.gyp:keyed_service_core', '../content/content.gyp:content_browser', '../net/net.gyp:net', '../url/url.gyp:url_lib', @@ -35,6 +36,8 @@ 'domain_reliability/monitor.h', 'domain_reliability/scheduler.cc', 'domain_reliability/scheduler.h', + 'domain_reliability/service.cc', + 'domain_reliability/service.h', 'domain_reliability/uploader.cc', 'domain_reliability/uploader.h', 'domain_reliability/util.cc', diff --git a/components/domain_reliability/DEPS b/components/domain_reliability/DEPS index faf5b87..bf04311 100644 --- a/components/domain_reliability/DEPS +++ b/components/domain_reliability/DEPS @@ -3,8 +3,7 @@ # found in the LICENSE file. include_rules = [ - "+content/public/browser", - "+content/public/test", "+net", + "+components/keyed_service/core", ] diff --git a/components/domain_reliability/config.h b/components/domain_reliability/config.h index 1ba3c7a..c17bf5a 100644 --- a/components/domain_reliability/config.h +++ b/components/domain_reliability/config.h @@ -8,8 +8,8 @@ #include <string> #include <vector> -#include "base/compiler_specific.h" #include "base/json/json_value_converter.h" +#include "base/macros.h" #include "base/memory/scoped_ptr.h" #include "base/strings/string_piece.h" #include "base/time/time.h" diff --git a/components/domain_reliability/context.cc b/components/domain_reliability/context.cc index aae45fc..57c71a3 100644 --- a/components/domain_reliability/context.cc +++ b/components/domain_reliability/context.cc @@ -14,6 +14,8 @@ #include "base/values.h" #include "components/domain_reliability/beacon.h" #include "components/domain_reliability/dispatcher.h" +#include "components/domain_reliability/uploader.h" +#include "components/domain_reliability/util.h" #include "net/base/net_errors.h" #include "net/url_request/url_request_context_getter.h" diff --git a/components/domain_reliability/context.h b/components/domain_reliability/context.h index c58a222..098e4fc 100644 --- a/components/domain_reliability/context.h +++ b/components/domain_reliability/context.h @@ -14,8 +14,6 @@ #include "components/domain_reliability/config.h" #include "components/domain_reliability/domain_reliability_export.h" #include "components/domain_reliability/scheduler.h" -#include "components/domain_reliability/uploader.h" -#include "components/domain_reliability/util.h" class GURL; @@ -23,6 +21,7 @@ namespace domain_reliability { struct DomainReliabilityBeacon; class DomainReliabilityDispatcher; +class DomainReliabilityUploader; class MockableTime; // The per-domain context for the Domain Reliability client; includes the diff --git a/components/domain_reliability/context_unittest.cc b/components/domain_reliability/context_unittest.cc index d51035d..0f0bb20 100644 --- a/components/domain_reliability/context_unittest.cc +++ b/components/domain_reliability/context_unittest.cc @@ -10,6 +10,7 @@ #include "base/bind.h" #include "base/memory/scoped_ptr.h" #include "base/message_loop/message_loop_proxy.h" +#include "components/domain_reliability/beacon.h" #include "components/domain_reliability/dispatcher.h" #include "components/domain_reliability/scheduler.h" #include "components/domain_reliability/test_util.h" diff --git a/components/domain_reliability/dispatcher.cc b/components/domain_reliability/dispatcher.cc index e5e11cc..c02fe27 100644 --- a/components/domain_reliability/dispatcher.cc +++ b/components/domain_reliability/dispatcher.cc @@ -5,6 +5,7 @@ #include "components/domain_reliability/dispatcher.h" #include "base/bind.h" +#include "base/callback.h" #include "base/message_loop/message_loop.h" #include "base/stl_util.h" #include "base/timer/timer.h" diff --git a/components/domain_reliability/dispatcher.h b/components/domain_reliability/dispatcher.h index 58c2b27..2c5d2d7 100644 --- a/components/domain_reliability/dispatcher.h +++ b/components/domain_reliability/dispatcher.h @@ -7,10 +7,9 @@ #include <set> -#include "base/callback.h" +#include "base/callback_forward.h" #include "base/time/time.h" #include "components/domain_reliability/domain_reliability_export.h" -#include "components/domain_reliability/util.h" namespace tracked_objects { class Location; @@ -18,6 +17,8 @@ class Location; namespace domain_reliability { +class MockableTime; + // Runs tasks during a specified interval. Calling |RunEligibleTasks| gives any // task a chance to run early (if the minimum delay has already passed); tasks // that aren't run early will be run once their maximum delay has passed. diff --git a/components/domain_reliability/monitor.cc b/components/domain_reliability/monitor.cc index 957a146..fc25dd7 100644 --- a/components/domain_reliability/monitor.cc +++ b/components/domain_reliability/monitor.cc @@ -8,72 +8,69 @@ #include "base/logging.h" #include "base/message_loop/message_loop.h" #include "base/single_thread_task_runner.h" +#include "base/task_runner.h" +#include "base/threading/thread_checker.h" #include "base/time/time.h" #include "components/domain_reliability/baked_in_configs.h" -#include "content/public/browser/browser_thread.h" #include "net/base/load_flags.h" #include "net/http/http_response_headers.h" #include "net/url_request/url_request.h" #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_getter.h" -namespace { - -bool OnIOThread() { - return content::BrowserThread::CurrentlyOn(content::BrowserThread::IO); -} - -} // namespace - namespace domain_reliability { DomainReliabilityMonitor::DomainReliabilityMonitor( - net::URLRequestContext* url_request_context, const std::string& upload_reporter_string) : time_(new ActualTime()), - url_request_context_getter_(scoped_refptr<net::URLRequestContextGetter>( - new net::TrivialURLRequestContextGetter( - url_request_context, - content::BrowserThread::GetMessageLoopProxyForThread( - content::BrowserThread::IO)))), upload_reporter_string_(upload_reporter_string), scheduler_params_( DomainReliabilityScheduler::Params::GetFromFieldTrialsOrDefaults()), dispatcher_(time_.get()), - uploader_( - DomainReliabilityUploader::Create(url_request_context_getter_)), was_cleared_(false), - cleared_mode_(MAX_CLEAR_MODE) { - DCHECK(OnIOThread()); -} + cleared_mode_(MAX_CLEAR_MODE), + weak_factory_(this) {} DomainReliabilityMonitor::DomainReliabilityMonitor( - net::URLRequestContext* url_request_context, const std::string& upload_reporter_string, scoped_ptr<MockableTime> time) : time_(time.Pass()), - url_request_context_getter_(scoped_refptr<net::URLRequestContextGetter>( - new net::TrivialURLRequestContextGetter( - url_request_context, - content::BrowserThread::GetMessageLoopProxyForThread( - content::BrowserThread::IO)))), upload_reporter_string_(upload_reporter_string), scheduler_params_( DomainReliabilityScheduler::Params::GetFromFieldTrialsOrDefaults()), dispatcher_(time_.get()), - uploader_( - DomainReliabilityUploader::Create(url_request_context_getter_)), was_cleared_(false), - cleared_mode_(MAX_CLEAR_MODE) { - DCHECK(OnIOThread()); -} + cleared_mode_(MAX_CLEAR_MODE), + weak_factory_(this) {} DomainReliabilityMonitor::~DomainReliabilityMonitor() { - DCHECK(OnIOThread()); ClearContexts(); } +void DomainReliabilityMonitor::Init( + net::URLRequestContext* url_request_context, + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) { + DCHECK(!thread_checker_); + + scoped_refptr<net::URLRequestContextGetter> url_request_context_getter = + new net::TrivialURLRequestContextGetter(url_request_context, + task_runner); + Init(url_request_context_getter); +} + +void DomainReliabilityMonitor::Init( + scoped_refptr<net::URLRequestContextGetter> url_request_context_getter) { + DCHECK(!thread_checker_); + + DCHECK(url_request_context_getter->GetNetworkTaskRunner()-> + RunsTasksOnCurrentThread()); + + uploader_ = DomainReliabilityUploader::Create(url_request_context_getter); + thread_checker_.reset(new base::ThreadChecker()); +} + void DomainReliabilityMonitor::AddBakedInConfigs() { + DCHECK(thread_checker_ && thread_checker_->CalledOnValidThread()); base::Time now = base::Time::Now(); for (size_t i = 0; kBakedInJsonConfigs[i]; ++i) { std::string json(kBakedInJsonConfigs[i]); @@ -89,14 +86,14 @@ void DomainReliabilityMonitor::AddBakedInConfigs() { } void DomainReliabilityMonitor::OnBeforeRedirect(net::URLRequest* request) { - DCHECK(OnIOThread()); + DCHECK(thread_checker_ && thread_checker_->CalledOnValidThread()); // Record the redirect itself in addition to the final request. OnRequestLegComplete(RequestInfo(*request)); } void DomainReliabilityMonitor::OnCompleted(net::URLRequest* request, bool started) { - DCHECK(OnIOThread()); + DCHECK(thread_checker_ && thread_checker_->CalledOnValidThread()); if (!started) return; RequestInfo request_info(*request); @@ -110,7 +107,7 @@ void DomainReliabilityMonitor::OnCompleted(net::URLRequest* request, void DomainReliabilityMonitor::ClearBrowsingData( DomainReliabilityClearMode mode) { - DCHECK(OnIOThread()); + DCHECK(thread_checker_ && thread_checker_->CalledOnValidThread()); was_cleared_ = true; cleared_mode_ = mode; @@ -132,6 +129,7 @@ void DomainReliabilityMonitor::ClearBrowsingData( DomainReliabilityContext* DomainReliabilityMonitor::AddContextForTesting( scoped_ptr<const DomainReliabilityConfig> config) { + DCHECK(thread_checker_ && thread_checker_->CalledOnValidThread()); return AddContext(config.Pass()); } @@ -228,4 +226,9 @@ void DomainReliabilityMonitor::OnRequestLegComplete( context_it->second->OnBeacon(request.url, beacon); } +base::WeakPtr<DomainReliabilityMonitor> +DomainReliabilityMonitor::MakeWeakPtr() { + return weak_factory_.GetWeakPtr(); +} + } // namespace domain_reliability diff --git a/components/domain_reliability/monitor.h b/components/domain_reliability/monitor.h index 92e00ab..48b0329b 100644 --- a/components/domain_reliability/monitor.h +++ b/components/domain_reliability/monitor.h @@ -8,6 +8,7 @@ #include <map> #include "base/memory/ref_counted.h" +#include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "components/domain_reliability/beacon.h" #include "components/domain_reliability/clear_mode.h" @@ -22,27 +23,37 @@ #include "net/http/http_response_info.h" #include "net/url_request/url_request_status.h" +namespace base { +class SingleThreadTaskRunner; +class ThreadChecker; +} // namespace base + namespace net { class URLRequest; class URLRequestContext; class URLRequestContextGetter; -} +} // namespace net namespace domain_reliability { // The top-level object that measures requests and hands off the measurements -// to the proper |DomainReliabilityContext|. Lives on the I/O thread, so the -// constructor accepts a URLRequestContext directly instead of a -// URLRequestContextGetter. +// to the proper |DomainReliabilityContext|. class DOMAIN_RELIABILITY_EXPORT DomainReliabilityMonitor { public: - DomainReliabilityMonitor(net::URLRequestContext* url_request_context, - const std::string& upload_reporter_string); - DomainReliabilityMonitor(net::URLRequestContext* url_request_context, - const std::string& upload_reporter_string, + explicit DomainReliabilityMonitor(const std::string& upload_reporter_string); + DomainReliabilityMonitor(const std::string& upload_reporter_string, scoped_ptr<MockableTime> time); ~DomainReliabilityMonitor(); + // Initializes the Monitor. + void Init( + net::URLRequestContext* url_request_context, + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner); + + // Same, but for unittests where the Getter is readily available. + void Init( + scoped_refptr<net::URLRequestContextGetter> url_request_context_getter); + // Populates the monitor with contexts that were configured at compile time. void AddBakedInConfigs(); @@ -71,6 +82,8 @@ class DOMAIN_RELIABILITY_EXPORT DomainReliabilityMonitor { private: friend class DomainReliabilityMonitorTest; + // Allow the Service to call |MakeWeakPtr|. + friend class DomainReliabilityServiceImpl; typedef std::map<std::string, DomainReliabilityContext*> ContextMap; @@ -97,8 +110,10 @@ class DOMAIN_RELIABILITY_EXPORT DomainReliabilityMonitor { void ClearContexts(); void OnRequestLegComplete(const RequestInfo& info); + base::WeakPtr<DomainReliabilityMonitor> MakeWeakPtr(); + + scoped_ptr<base::ThreadChecker> thread_checker_; scoped_ptr<MockableTime> time_; - scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; const std::string upload_reporter_string_; DomainReliabilityScheduler::Params scheduler_params_; DomainReliabilityDispatcher dispatcher_; @@ -108,6 +123,8 @@ class DOMAIN_RELIABILITY_EXPORT DomainReliabilityMonitor { bool was_cleared_; DomainReliabilityClearMode cleared_mode_; + base::WeakPtrFactory<DomainReliabilityMonitor> weak_factory_; + DISALLOW_COPY_AND_ASSIGN(DomainReliabilityMonitor); }; diff --git a/components/domain_reliability/monitor_unittest.cc b/components/domain_reliability/monitor_unittest.cc index 58950a4..6859590 100644 --- a/components/domain_reliability/monitor_unittest.cc +++ b/components/domain_reliability/monitor_unittest.cc @@ -11,11 +11,11 @@ #include "base/bind.h" #include "base/memory/scoped_ptr.h" #include "base/message_loop/message_loop_proxy.h" +#include "base/test/test_simple_task_runner.h" #include "components/domain_reliability/baked_in_configs.h" #include "components/domain_reliability/beacon.h" #include "components/domain_reliability/config.h" #include "components/domain_reliability/test_util.h" -#include "content/public/test/test_browser_thread_bundle.h" #include "net/base/host_port_pair.h" #include "net/base/load_flags.h" #include "net/http/http_response_headers.h" @@ -48,14 +48,15 @@ class DomainReliabilityMonitorTest : public testing::Test { typedef DomainReliabilityMonitor::RequestInfo RequestInfo; DomainReliabilityMonitorTest() - : bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), - url_request_context_getter_(new net::TestURLRequestContextGetter( - base::MessageLoopProxy::current())), + : network_task_runner_(new base::TestSimpleTaskRunner()), + url_request_context_getter_( + new net::TestURLRequestContextGetter(network_task_runner_)), time_(new MockTime()), - monitor_(url_request_context_getter_->GetURLRequestContext(), - "test-reporter", - scoped_ptr<MockableTime>(time_)), - context_(monitor_.AddContextForTesting(MakeTestConfig())) {} + monitor_("test-reporter", scoped_ptr<MockableTime>(time_)), + context_(NULL) { + monitor_.Init(url_request_context_getter_); + context_ = monitor_.AddContextForTesting(MakeTestConfig()); + } static RequestInfo MakeRequestInfo() { RequestInfo request; @@ -93,7 +94,7 @@ class DomainReliabilityMonitorTest : public testing::Test { return expected_successful == successful && expected_failed == failed; } - content::TestBrowserThreadBundle bundle_; + scoped_refptr<base::TestSimpleTaskRunner> network_task_runner_; scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; MockTime* time_; DomainReliabilityMonitor monitor_; diff --git a/components/domain_reliability/service.cc b/components/domain_reliability/service.cc new file mode 100644 index 0000000..e10660f --- /dev/null +++ b/components/domain_reliability/service.cc @@ -0,0 +1,68 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/domain_reliability/service.h" + +#include "base/bind.h" +#include "base/callback.h" +#include "base/single_thread_task_runner.h" +#include "components/domain_reliability/monitor.h" +#include "net/url_request/url_request_context_getter.h" + +namespace domain_reliability { + +class DomainReliabilityServiceImpl : public DomainReliabilityService { + public: + explicit DomainReliabilityServiceImpl( + const std::string& upload_reporter_string) + : upload_reporter_string_(upload_reporter_string) {} + + virtual ~DomainReliabilityServiceImpl() {} + + // DomainReliabilityService implementation: + + virtual scoped_ptr<DomainReliabilityMonitor> Init( + scoped_refptr<base::SequencedTaskRunner> network_task_runner) OVERRIDE { + DCHECK(!network_task_runner_); + + scoped_ptr<DomainReliabilityMonitor> monitor( + new DomainReliabilityMonitor(upload_reporter_string_)); + + monitor_ = monitor->MakeWeakPtr(); + network_task_runner_ = network_task_runner; + + return monitor.Pass(); + } + + virtual void ClearBrowsingData(DomainReliabilityClearMode clear_mode, + const base::Closure& callback) OVERRIDE { + DCHECK(network_task_runner_); + + network_task_runner_->PostTaskAndReply( + FROM_HERE, + base::Bind(&DomainReliabilityMonitor::ClearBrowsingData, + monitor_, + clear_mode), + callback); + } + + virtual void Shutdown() OVERRIDE {} + + private: + std::string upload_reporter_string_; + base::WeakPtr<DomainReliabilityMonitor> monitor_; + scoped_refptr<base::SequencedTaskRunner> network_task_runner_; +}; + +// static +DomainReliabilityService* DomainReliabilityService::Create( + const std::string& upload_reporter_string) { + return new DomainReliabilityServiceImpl(upload_reporter_string); +} + +DomainReliabilityService::~DomainReliabilityService() {} + +DomainReliabilityService::DomainReliabilityService() {} + +} // namespace domain_reliability diff --git a/components/domain_reliability/service.h b/components/domain_reliability/service.h new file mode 100644 index 0000000..ec7e3b3 --- /dev/null +++ b/components/domain_reliability/service.h @@ -0,0 +1,66 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_DOMAIN_RELIABILITY_SERVICE_H_ +#define COMPONENTS_DOMAIN_RELIABILITY_SERVICE_H_ + +#include <string> + +#include "base/callback_forward.h" +#include "base/macros.h" +#include "base/memory/ref_counted.h" +#include "base/memory/scoped_ptr.h" +#include "base/sequenced_task_runner.h" +#include "components/domain_reliability/clear_mode.h" +#include "components/domain_reliability/domain_reliability_export.h" +#include "components/keyed_service/core/keyed_service.h" + +namespace net { +class URLRequestContextGetter; +}; + +namespace domain_reliability { + +class DomainReliabilityMonitor; + +// DomainReliabilityService is a KeyedService that manages a Monitor that lives +// on another thread (as provided by the URLRequestContextGetter's task runner) +// and proxies (selected) method calls to it. Destruction of the Monitor (on +// that thread) is the responsibility of the caller. +class DOMAIN_RELIABILITY_EXPORT DomainReliabilityService + : public KeyedService { + public: + // Creates a DomainReliabilityService that will contain a Monitor with the + // given upload reporter string. + static DomainReliabilityService* Create( + const std::string& upload_reporter_string); + + virtual ~DomainReliabilityService(); + + // Initializes the Service: given the task runner on which Monitor methods + // should be called, creates the Monitor and returns it. Can be called at + // most once, and must be called before any of the below methods can be + // called. The caller is responsible for destroying the Monitor on the given + // task runner when it is no longer needed. + virtual scoped_ptr<DomainReliabilityMonitor> Init( + scoped_refptr<base::SequencedTaskRunner> network_task_runner) = 0; + + // Clears browsing data on the associated Monitor. |Init()| must have been + // called first. + virtual void ClearBrowsingData(DomainReliabilityClearMode clear_mode, + const base::Closure& callback) = 0; + + // KeyedService implementation: + virtual void Shutdown() OVERRIDE = 0; + + protected: + DomainReliabilityService(); + + private: + DISALLOW_COPY_AND_ASSIGN(DomainReliabilityService); +}; + +} // namespace domain_reliability + +#endif // COMPONENTS_DOMAIN_RELIABILITY_SERVICE_H_ diff --git a/components/domain_reliability/test_util.cc b/components/domain_reliability/test_util.cc index d6cf8f0..e1fb5d7 100644 --- a/components/domain_reliability/test_util.cc +++ b/components/domain_reliability/test_util.cc @@ -5,6 +5,7 @@ #include "components/domain_reliability/test_util.h" #include "base/bind.h" +#include "base/callback.h" #include "components/domain_reliability/scheduler.h" #include "net/url_request/url_request_status.h" #include "testing/gtest/include/gtest/gtest.h" diff --git a/components/domain_reliability/test_util.h b/components/domain_reliability/test_util.h index a0fa27d..a4529dd 100644 --- a/components/domain_reliability/test_util.h +++ b/components/domain_reliability/test_util.h @@ -5,10 +5,9 @@ #ifndef COMPONENTS_DOMAIN_RELIABILITY_TEST_UTIL_H_ #define COMPONENTS_DOMAIN_RELIABILITY_TEST_UTIL_H_ -#include "base/callback.h" +#include "base/callback_forward.h" #include "base/memory/scoped_ptr.h" #include "components/domain_reliability/config.h" -#include "components/domain_reliability/monitor.h" #include "components/domain_reliability/scheduler.h" #include "components/domain_reliability/uploader.h" #include "components/domain_reliability/util.h" diff --git a/components/domain_reliability/uploader.cc b/components/domain_reliability/uploader.cc index 7a67a77..5fd35a3 100644 --- a/components/domain_reliability/uploader.cc +++ b/components/domain_reliability/uploader.cc @@ -5,6 +5,7 @@ #include "components/domain_reliability/uploader.h" #include "base/bind.h" +#include "base/callback.h" #include "base/memory/scoped_vector.h" #include "base/metrics/sparse_histogram.h" #include "base/stl_util.h" diff --git a/components/domain_reliability/uploader.h b/components/domain_reliability/uploader.h index a9c5211..95d0e55 100644 --- a/components/domain_reliability/uploader.h +++ b/components/domain_reliability/uploader.h @@ -7,7 +7,7 @@ #include <map> -#include "base/callback.h" +#include "base/callback_forward.h" #include "base/memory/ref_counted.h" #include "components/domain_reliability/domain_reliability_export.h" #include "url/gurl.h" diff --git a/components/domain_reliability/uploader_unittest.cc b/components/domain_reliability/uploader_unittest.cc index 7c8d0a9..362b202 100644 --- a/components/domain_reliability/uploader_unittest.cc +++ b/components/domain_reliability/uploader_unittest.cc @@ -9,8 +9,8 @@ #include "base/bind.h" #include "base/memory/scoped_ptr.h" #include "base/message_loop/message_loop_proxy.h" +#include "base/test/test_simple_task_runner.h" #include "components/domain_reliability/test_util.h" -#include "content/public/test/test_browser_thread_bundle.h" #include "net/base/load_flags.h" #include "net/url_request/test_url_fetcher_factory.h" #include "net/url_request/url_fetcher_delegate.h" @@ -24,10 +24,9 @@ namespace { class DomainReliabilityUploaderTest : public testing::Test { protected: DomainReliabilityUploaderTest() - : test_browser_thread_bundle_( - content::TestBrowserThreadBundle::IO_MAINLOOP), + : network_task_runner_(new base::TestSimpleTaskRunner()), url_request_context_getter_(new net::TestURLRequestContextGetter( - base::MessageLoopProxy::current())), + network_task_runner_)), uploader_(DomainReliabilityUploader::Create( url_request_context_getter_)) {} @@ -43,7 +42,7 @@ class DomainReliabilityUploaderTest : public testing::Test { upload_successful_[index] = success; } - content::TestBrowserThreadBundle test_browser_thread_bundle_; + scoped_refptr<base::TestSimpleTaskRunner> network_task_runner_; net::TestURLFetcherFactory url_fetcher_factory_; scoped_refptr<net::TestURLRequestContextGetter> url_request_context_getter_; scoped_ptr<DomainReliabilityUploader> uploader_; diff --git a/components/domain_reliability/util.h b/components/domain_reliability/util.h index 9f49618..aa7cb00 100644 --- a/components/domain_reliability/util.h +++ b/components/domain_reliability/util.h @@ -7,8 +7,9 @@ #include <map> -#include "base/callback.h" +#include "base/callback_forward.h" #include "base/compiler_specific.h" +#include "base/memory/scoped_ptr.h" #include "base/time/time.h" #include "base/tracked_objects.h" #include "components/domain_reliability/domain_reliability_export.h" |