Index: content/browser/device_orientation/provider_impl.cc |
diff --git a/content/browser/device_orientation/provider_impl.cc b/content/browser/device_orientation/provider_impl.cc |
index 6d3e0e620b1eca053296b1dc0bc5cb993060a7a0..3118093585a95d95477bf0cf4a14c52865b0de1d 100644 |
--- a/content/browser/device_orientation/provider_impl.cc |
+++ b/content/browser/device_orientation/provider_impl.cc |
@@ -47,7 +47,7 @@ class ProviderImpl::PollingThread : public base::Thread { |
virtual ~PollingThread(); |
// Method for finding a suitable DataFetcher and starting the polling. |
- void Initialize(const std::vector<DataFetcherFactory>& factories); |
+ void Initialize(DataFetcherFactory factory); |
private: |
// Method for polling a DataFetcher. |
@@ -86,13 +86,11 @@ ProviderImpl::PollingThread::PollingThread( |
ProviderImpl::PollingThread::~PollingThread() { |
} |
-void ProviderImpl::PollingThread::Initialize( |
- const std::vector<DataFetcherFactory>& factories) { |
+void ProviderImpl::PollingThread::Initialize(DataFetcherFactory factory) { |
DCHECK(MessageLoop::current() == message_loop()); |
- typedef std::vector<DataFetcherFactory>::const_iterator Iterator; |
- for (Iterator i = factories.begin(); i != factories.end(); ++i) { |
- DataFetcherFactory factory = *i; |
+ if (factory != NULL) { |
+ // Try to use factory to create a fetcher that can provide orientation data. |
scoped_ptr<DataFetcher> fetcher(factory()); |
Orientation orientation; |
@@ -183,12 +181,11 @@ base::TimeDelta ProviderImpl::PollingThread::SamplingInterval() const { |
return base::TimeDelta::FromMilliseconds(kDesiredSamplingIntervalMs); |
} |
-ProviderImpl::ProviderImpl(const DataFetcherFactory factories[]) |
+ProviderImpl::ProviderImpl(DataFetcherFactory factory) |
: creator_loop_(MessageLoop::current()), |
+ factory_(factory), |
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)), |
polling_thread_(NULL) { |
- for (const DataFetcherFactory* fp = factories; *fp; ++fp) |
- factories_.push_back(*fp); |
} |
ProviderImpl::~ProviderImpl() { |
@@ -251,7 +248,7 @@ void ProviderImpl::ScheduleInitializePollingThread() { |
polling_loop->PostTask(FROM_HERE, |
base::Bind(&PollingThread::Initialize, |
base::Unretained(polling_thread_), |
- factories_)); |
+ factory_)); |
} |
void ProviderImpl::DoNotify(const Orientation& orientation) { |