Index: content/browser/geolocation/wifi_data_provider_chromeos.h |
diff --git a/content/browser/geolocation/wifi_data_provider_chromeos.h b/content/browser/geolocation/wifi_data_provider_chromeos.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..df74768fa49891bff63cd8f8c012d59b1adacfd6 |
--- /dev/null |
+++ b/content/browser/geolocation/wifi_data_provider_chromeos.h |
@@ -0,0 +1,67 @@ |
+// Copyright (c) 2011 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 CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_CHROMEOS_H_ |
+#define CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_CHROMEOS_H_ |
+ |
+#include <memory> |
+ |
+#include "base/compiler_specific.h" |
+#include "base/macros.h" |
+#include "content/browser/geolocation/wifi_data_provider.h" |
+#include "content/browser/geolocation/wifi_polling_policy.h" |
+ |
+namespace content { |
+ |
+class CONTENT_EXPORT WifiDataProviderChromeOs : public WifiDataProvider { |
+ public: |
+ WifiDataProviderChromeOs(); |
+ |
+ // WifiDataProvider |
+ void StartDataProvider() override; |
+ void StopDataProvider() override; |
+ bool GetData(WifiData* data) override; |
+ |
+ private: |
+ friend class GeolocationChromeOsWifiDataProviderTest; |
+ ~WifiDataProviderChromeOs() override; |
+ |
+ // UI thread |
+ void DoWifiScanTaskOnUIThread(); // The polling task |
+ void DoStartTaskOnUIThread(); |
+ |
+ // Client thread |
+ void DidWifiScanTaskNoResults(); |
+ void DidWifiScanTask(const WifiData& new_data); |
+ |
+ // Will schedule a scan; i.e. enqueue DoWifiScanTask deferred task. |
+ void ScheduleNextScan(int interval); |
+ |
+ // Will schedule starting of the scanning process. |
+ void ScheduleStart(); |
+ |
+ // Will schedule stopping of the scanning process. |
+ void ScheduleStop(); |
+ |
+ // Get access point data from chromeos. |
+ bool GetAccessPointData(WifiData::AccessPointDataSet* data); |
+ |
+ // Controls the polling update interval. (client thread) |
+ std::unique_ptr<WifiPollingPolicy> polling_policy_; |
+ |
+ // The latest wifi data. (client thread) |
+ WifiData wifi_data_; |
+ |
+ // Whether we have strated the data provider. (client thread) |
+ bool started_; |
+ |
+ // Whether we've successfully completed a scan for WiFi data. (client thread) |
+ bool is_first_scan_complete_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(WifiDataProviderChromeOs); |
+}; |
+ |
+} // namespace content |
+ |
+#endif // CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_CHROMEOS_H_ |