Index: chrome/utility/wifi/wifi_service.h |
diff --git a/chrome/utility/wifi/wifi_service.h b/chrome/utility/wifi/wifi_service.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..325fb982c7cdbdbbb3ab6ec7f2f7da87809e7419 |
--- /dev/null |
+++ b/chrome/utility/wifi/wifi_service.h |
@@ -0,0 +1,134 @@ |
+// Copyright 2013 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. |
+ |
+// This file defiles the WiFiService interface used by chrome.networkingPrivate |
+// JavaScript extension API. |
+ |
+#ifndef CHROME_UTILITY_WIFI_WIFI_SERVICE_H_ |
+#define CHROME_UTILITY_WIFI_WIFI_SERVICE_H_ |
+ |
+#include <list> |
+#include <string> |
+ |
+#include "base/callback.h" |
+#include "base/memory/ref_counted.h" |
+#include "base/values.h" |
+ |
+class WiFiService { |
+ public: |
+ enum ConnectionState { |
+ kConnectionStateConnected, |
+ kConnectionStateNotConnected |
+ }; |
+ |
+ enum NetworkType { |
+ kNetworkTypeAll, |
+ kNetworkTypeNone, |
+ kNetworkTypeEthernet, |
+ kNetworkTypeWiFi, |
+ kNetworkTypeVPN, |
+ kNetworkTypeCellular |
+ }; |
+ |
+ typedef int32 Frequency; |
+ enum FrequencyEnum { |
+ kFrequencyUnknown = 0, |
+ kFrequency2400 = 2400, |
+ kFrequency5000 = 5000 |
+ }; |
+ |
+ typedef std::list<Frequency> FrequencyList; |
+ |
+ enum Security { |
+ kSecurityNone, |
+ kSecurityUnknown, |
+ kSecurityWPA, |
+ kSecurityWPA_PSK, |
+ kSecurityWEP_PSK |
+ }; |
stevenjb
2013/08/13 23:39:04
FWIW, the original ChromeOS networking code used a
mef
2013/08/21 17:25:34
Thanks a lot for valuable insight! My initial inte
mef
2013/10/08 21:46:25
Done.
|
+ |
+ struct NetworkProperties { |
+ ConnectionState connection_state; |
+ std::string guid; |
+ std::string name; |
+ std::string ssid; |
+ std::string bssid; |
+ NetworkType type; |
+ Frequency frequency; |
+ Security security; |
+ // WiFi Signal Strength. 0..100 |
+ int32 signal_strength; |
+ bool auto_connect; |
+ FrequencyList frequency_list; |
+ |
+ std::string json_extra; // Extra JSON properties for unit tests |
+ |
+ NetworkProperties(); |
+ ~NetworkProperties(); |
stevenjb
2013/08/13 23:39:04
Move to top
mef
2013/08/21 17:25:34
Will do.
mef
2013/09/11 20:55:08
Done.
|
+ scoped_ptr<base::DictionaryValue> ToValue(bool network_list) const; |
+ bool UpdateFromValue(const base::DictionaryValue& value); |
stevenjb
2013/08/13 23:39:04
WS
mef
2013/09/11 20:55:08
Done.
|
+ static std::string MacAddressAsString(const uint8 mac_as_int[6]); |
+ static bool OrderByType(const NetworkProperties& l, |
+ const NetworkProperties& r); |
+ }; |
+ |
+ typedef std::list<NetworkProperties> NetworkList; |
+ |
+ // An error callback used by both the configuration handler and the state |
+ // handler to receive error results from the API. |
+ typedef base::Callback<void(const std::string& error_name, |
+ scoped_ptr<base::DictionaryValue> error_data)> |
+ ErrorCallback; |
+ |
+ typedef base::Callback<void(const std::string& network_guid, |
+ const base::DictionaryValue& dictionary)> |
+ DictionaryResultCallback; |
+ |
+ typedef base::Callback<void(const std::string& network_guid, |
+ const NetworkProperties& properties)> |
+ NetworkPropertiesCallback; |
+ |
+ typedef base::Callback<void(const NetworkList& network_list)> |
+ NetworkListCallback; |
+ |
+ typedef base::Callback<void(const std::string& service_path)> |
+ StringResultCallback; |
+ |
+ virtual ~WiFiService() {} |
+ |
+ virtual void GetProperties(const std::string& network_guid, |
+ const NetworkPropertiesCallback& callback, |
+ const ErrorCallback& error_callback) = 0; |
+ |
+ virtual void GetState(const std::string& network_guid, |
+ const NetworkPropertiesCallback& callback, |
+ const ErrorCallback& error_callback) = 0; |
+ |
+ virtual void GetManagedProperties(const std::string& network_guid, |
+ const DictionaryResultCallback& callback, |
+ const ErrorCallback& error_callback) = 0; |
+ |
+ virtual void SetProperties(const std::string& network_guid, |
+ const base::DictionaryValue& properties, |
+ const StringResultCallback& callback, |
+ const ErrorCallback& error_callback) = 0; |
+ |
+ virtual void GetVisibleNetworks(const NetworkListCallback& callback, |
+ const ErrorCallback& error_callback) = 0; |
+ |
+ virtual void RequestNetworkScan() = 0; |
+ |
+ virtual void StartConnect(const std::string& network_guid, |
+ const StringResultCallback& callback, |
+ const ErrorCallback& error_callback) = 0; |
+ |
+ virtual void StartDisconnect(const std::string& network_guid, |
+ const StringResultCallback& callback, |
+ const ErrorCallback& error_callback) = 0; |
+ |
+ static WiFiService* CreateService(); |
+ static WiFiService* CreateServiceMock(); |
stevenjb
2013/08/13 23:39:04
private:
DISALLOW_COPY...
mef
2013/08/21 17:25:34
Will do.
mef
2013/09/11 20:55:08
Done.
|
+}; |
+ |
+#endif // CHROME_UTILITY_WIFI_WIFI_SERVICE_H_ |