Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1111)

Unified Diff: chrome/browser/chromeos/cros/network_library.h

Issue 23618026: NOT FOR SUBMIT: Remove NetworkLibrary (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/cros/network_constants.h ('k') | chrome/browser/chromeos/cros/network_library.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/cros/network_library.h
diff --git a/chrome/browser/chromeos/cros/network_library.h b/chrome/browser/chromeos/cros/network_library.h
deleted file mode 100644
index e4ebbb01a0d481f9ec3565a8b787eca3b0daabff..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/cros/network_library.h
+++ /dev/null
@@ -1,1590 +0,0 @@
-// Copyright (c) 2012 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 CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_
-#define CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_
-
-#include <map>
-#include <string>
-#include <vector>
-
-#include "base/callback.h"
-#include "base/compiler_specific.h"
-#include "base/gtest_prod_util.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/singleton.h"
-#include "base/memory/weak_ptr.h"
-#include "base/observer_list.h"
-#include "base/timer/timer.h"
-#include "base/values.h"
-#include "chrome/browser/chromeos/cros/network_constants.h"
-#include "chromeos/network/network_ip_config.h"
-#include "chromeos/network/network_ui_data.h"
-#include "chromeos/network/network_util.h"
-#include "chromeos/network/onc/onc_constants.h"
-
-namespace chromeos {
-
-class CertificatePattern;
-class EnrollmentDelegate;
-class NetworkDeviceParser;
-class NetworkParser;
-
-// This is the list of all implementation classes that are allowed
-// access to the internals of the network library classes.
-#define NETWORK_LIBRARY_IMPL_FRIENDS \
- friend class NetworkLibraryImplBase; \
- friend class NetworkLibraryImplCros; \
- friend class NetworkLibraryImplStub;
-
-
-// Simple wrapper for property Cellular.FoundNetworks.
-struct FoundCellularNetwork {
- FoundCellularNetwork();
- ~FoundCellularNetwork();
-
- std::string status;
- std::string network_id;
- std::string short_name;
- std::string long_name;
- std::string technology;
-};
-typedef std::vector<FoundCellularNetwork> CellularNetworkList;
-
-struct CellularApn {
- std::string apn;
- std::string network_id;
- std::string username;
- std::string password;
- std::string name;
- std::string localized_name;
- std::string language;
-
- CellularApn();
- CellularApn(const std::string& apn, const std::string& network_id,
- const std::string& username, const std::string& password);
- ~CellularApn();
- void Set(const base::DictionaryValue& dict);
-};
-typedef std::vector<CellularApn> CellularApnList;
-
-// The value of priority if it is not set.
-const int kPriorityNotSet = 0;
-// The value of priority if network is preferred.
-const int kPriorityPreferred = 1;
-
-// Contains data related to the shill.Device interface,
-// e.g. ethernet, wifi, cellular.
-// TODO(dpolukhin): refactor to make base class and device specific derivatives.
-class NetworkDevice {
- public:
- explicit NetworkDevice(const std::string& device_path);
- ~NetworkDevice();
-
- NetworkDeviceParser* device_parser() { return device_parser_.get(); }
- void SetNetworkDeviceParser(NetworkDeviceParser* parser);
-
- // Device info.
- const std::string& device_path() const { return device_path_; }
- const std::string& name() const { return name_; }
- const std::string& unique_id() const { return unique_id_; }
- ConnectionType type() const { return type_; }
- bool scanning() const { return scanning_; }
- const std::string& meid() const { return meid_; }
- const std::string& iccid() const { return iccid_; }
- const std::string& imei() const { return imei_; }
- const std::string& imsi() const { return imsi_; }
- const std::string& esn() const { return esn_; }
- const std::string& mdn() const { return mdn_; }
- const std::string& min() const { return min_; }
- const std::string& model_id() const { return model_id_; }
- const std::string& manufacturer() const { return manufacturer_; }
- SimLockState sim_lock_state() const { return sim_lock_state_; }
- bool is_sim_locked() const {
- return sim_lock_state_ == SIM_LOCKED_PIN ||
- sim_lock_state_ == SIM_LOCKED_PUK;
- }
- // Returns true if GSM modem and SIM as absent, otherwise
- // returns false: GSM modem and SIM card is present or CDMA modem.
- bool is_sim_absent() const {
- return technology_family() == TECHNOLOGY_FAMILY_GSM &&
- !is_sim_locked() && !sim_present_;
- }
- int sim_retries_left() const { return sim_retries_left_; }
- SimPinRequire sim_pin_required() const { return sim_pin_required_; }
- bool powered() const { return powered_; }
- const std::string& firmware_revision() const { return firmware_revision_; }
- const std::string& hardware_revision() const { return hardware_revision_; }
- const unsigned int prl_version() const { return prl_version_; }
- const std::string& home_provider_code() const { return home_provider_code_; }
- const std::string& home_provider_country() const {
- return home_provider_country_;
- }
- const std::string& home_provider_id() const { return home_provider_id_; }
- const std::string& home_provider_name() const { return home_provider_name_; }
- const bool provider_requires_roaming() const {
- return provider_requires_roaming_;
- }
- const std::string& selected_cellular_network() const {
- return selected_cellular_network_;
- }
- const CellularNetworkList& found_cellular_networks() const {
- return found_cellular_networks_;
- }
- bool data_roaming_allowed() const { return data_roaming_allowed_; }
- bool support_network_scan() const { return support_network_scan_; }
- std::string carrier() const { return carrier_; }
- base::ListValue* supported_carriers() const {
- return supported_carriers_.get();
- }
- enum TechnologyFamily technology_family() const { return technology_family_; }
- const CellularApnList& provider_apn_list() const {
- return provider_apn_list_;
- }
-
- // Updates the property specified by |key| with the contents of
- // |value|. Returns false on failure. Upon success, returns the
- // PropertyIndex that was updated in |index|. |index| may be NULL
- // if not needed.
- bool UpdateStatus(const std::string& key,
- const base::Value& value,
- PropertyIndex* index);
-
- protected:
- void set_unique_id(const std::string& unique_id) { unique_id_ = unique_id; }
-
- private:
- // This allows NetworkDeviceParser and its subclasses access to
- // device privates so that they can be reconstituted during parsing.
- // The parsers only access things through the private set_ functions
- // so that this class can evolve without having to change all the
- // parsers.
- friend class NativeNetworkDeviceParser;
-
- // This allows the implementation classes access to privates.
- NETWORK_LIBRARY_IMPL_FRIENDS;
-
- // Use these functions at your peril. They are used by the various
- // parsers to set state, and really shouldn't be used by anyone
- // else.
- void set_device_path(const std::string& device_path) {
- device_path_ = device_path;
- }
- void set_name(const std::string& name) { name_ = name; }
- void set_type(ConnectionType type) { type_ = type; }
- void set_scanning(bool scanning) { scanning_ = scanning; }
- void set_meid(const std::string& meid) { meid_ = meid; }
- void set_iccid(const std::string& iccid) { iccid_ = iccid; }
- void set_imei(const std::string& imei) { imei_ = imei; }
- void set_imsi(const std::string& imsi) { imsi_ = imsi; }
- void set_esn(const std::string& esn) { esn_ = esn; }
- void set_mdn(const std::string& mdn) { mdn_ = mdn; }
- void set_min(const std::string& min) { min_ = min; }
- void set_technology_family(TechnologyFamily technology_family) {
- technology_family_ = technology_family;
- }
- void set_carrier(const std::string& carrier) { carrier_ = carrier; }
- void set_supported_carriers(const base::ListValue& supported_carriers) {
- supported_carriers_.reset(supported_carriers.DeepCopy());
- }
- void set_home_provider_code(const std::string& home_provider_code) {
- home_provider_code_ = home_provider_code;
- }
- void set_home_provider_country(const std::string& home_provider_country) {
- home_provider_country_ = home_provider_country;
- }
- void set_home_provider_id(const std::string& home_provider_id) {
- home_provider_id_ = home_provider_id;
- }
- void set_home_provider_name(const std::string& home_provider_name) {
- home_provider_name_ = home_provider_name;
- }
- void set_provider_requires_roaming(bool provider_requires_roaming) {
- provider_requires_roaming_ = provider_requires_roaming;
- }
- void set_model_id(const std::string& model_id) { model_id_ = model_id; }
- void set_manufacturer(const std::string& manufacturer) {
- manufacturer_ = manufacturer;
- }
- void set_prl_version(int prl_version) {
- prl_version_ = prl_version;
- }
- void set_sim_lock_state(SimLockState sim_lock_state) {
- sim_lock_state_ = sim_lock_state;
- }
- void set_sim_retries_left(int sim_retries_left) {
- sim_retries_left_ = sim_retries_left;
- }
- void set_sim_pin_required(SimPinRequire sim_pin_required) {
- sim_pin_required_ = sim_pin_required;
- }
- void set_sim_present(bool sim_present) {
- sim_present_ = sim_present;
- }
- void set_powered(bool powered) {
- powered_ = powered;
- }
- void set_firmware_revision(const std::string& firmware_revision) {
- firmware_revision_ = firmware_revision;
- }
- void set_hardware_revision(const std::string& hardware_revision) {
- hardware_revision_ = hardware_revision;
- }
- void set_selected_cellular_network(
- const std::string& selected_cellular_network) {
- selected_cellular_network_ = selected_cellular_network;
- }
- void set_found_cellular_networks(
- const CellularNetworkList& found_cellular_networks) {
- found_cellular_networks_ = found_cellular_networks;
- }
- void set_data_roaming_allowed(bool data_roaming_allowed) {
- data_roaming_allowed_ = data_roaming_allowed;
- }
- void set_support_network_scan(bool support_network_scan) {
- support_network_scan_ = support_network_scan;
- }
- void set_provider_apn_list(const CellularApnList& provider_apn_list) {
- provider_apn_list_ = provider_apn_list;
- }
-
- void ParseInfo(const base::DictionaryValue& info);
-
- // General device info.
- std::string device_path_;
- std::string name_;
- std::string unique_id_;
- ConnectionType type_;
- bool scanning_;
- // Cellular specific device info.
- TechnologyFamily technology_family_;
- std::string carrier_;
- scoped_ptr<base::ListValue> supported_carriers_;
- std::string home_provider_code_;
- std::string home_provider_country_;
- std::string home_provider_id_;
- std::string home_provider_name_;
- bool provider_requires_roaming_;
- std::string meid_;
- std::string imei_;
- std::string iccid_;
- std::string imsi_;
- std::string esn_;
- std::string mdn_;
- std::string min_;
- std::string model_id_;
- std::string manufacturer_;
- SimLockState sim_lock_state_;
- int sim_retries_left_;
- SimPinRequire sim_pin_required_;
- bool sim_present_;
- bool powered_;
- std::string firmware_revision_;
- std::string hardware_revision_;
- int prl_version_;
- std::string selected_cellular_network_;
- CellularNetworkList found_cellular_networks_;
- bool data_roaming_allowed_;
- bool support_network_scan_;
- CellularApnList provider_apn_list_;
-
- // This is the parser we use to parse messages from the native
- // network layer.
- scoped_ptr<NetworkDeviceParser> device_parser_;
-
- DISALLOW_COPY_AND_ASSIGN(NetworkDevice);
-};
-
-// Contains data common to all network service types.
-class Network {
- public:
- virtual ~Network();
-
- // Test API for accessing setters in tests.
- class TestApi {
- public:
- explicit TestApi(Network* network) : network_(network) {}
- void SetConnected() {
- network_->set_connected();
- }
- void SetConnecting() {
- network_->set_connecting();
- }
- void SetDisconnected() {
- network_->set_disconnected();
- }
- void SetUserConnectState(UserConnectState user_connect_state) {
- network_->set_user_connect_state(user_connect_state);
- }
-
- private:
- Network* network_;
- };
- friend class TestApi;
-
- const std::string& service_path() const { return service_path_; }
- const std::string& name() const { return name_; }
- const std::string& device_path() const { return device_path_; }
- const std::string& ip_address() const { return ip_address_; }
- ConnectionType type() const { return type_; }
- ConnectionState connection_state() const { return state_; }
- bool connecting() const { return IsConnectingState(state_); }
- bool configuring() const { return state_ == STATE_CONFIGURATION; }
- bool connected() const { return IsConnectedState(state_); }
- bool connecting_or_connected() const { return connecting() || connected(); }
- // True when a user-initiated connection attempt is in progress
- bool connection_started() const {
- return user_connect_state_ == USER_CONNECT_STARTED;
- }
- UserConnectState user_connect_state() const { return user_connect_state_; }
- bool failed() const { return state_ == STATE_FAILURE; }
- bool disconnected() const { return IsDisconnectedState(state_); }
- bool online() const { return state_ == STATE_ONLINE; }
- bool restricted_pool() const { return state_ == STATE_PORTAL; }
- ConnectionError error() const { return error_; }
- ConnectionState state() const { return state_; }
- // Is this network connectable. Currently, this is mainly used by 802.1x
- // networks to specify that the network is not configured yet.
- bool connectable() const { return connectable_; }
- // Is this the active network, i.e, the one through which
- // network traffic is being routed? A network can be connected,
- // but not be carrying traffic.
- bool is_active() const { return is_active_; }
- bool preferred() const { return priority_ != kPriorityNotSet; }
- bool auto_connect() const { return auto_connect_; }
- bool save_credentials() const { return save_credentials_; }
-
- bool added() const { return added_; }
- bool notify_failure() const { return notify_failure_; }
- const std::string& profile_path() const { return profile_path_; }
- NetworkProfileType profile_type() const { return profile_type_; }
-
- const std::string& unique_id() const { return unique_id_; }
- int priority_order() const { return priority_order_; }
-
- const NetworkUIData& ui_data() const { return ui_data_; }
-
- void set_notify_failure(bool state) { notify_failure_ = state; }
-
- void SetPreferred(bool preferred);
-
- void SetAutoConnect(bool auto_connect);
-
- void SetName(const std::string& name);
-
- void SetSaveCredentials(bool save_credentials);
-
- void ClearUIData();
-
- // This will resolve any automatic configuration that has to occur
- // (provisioning certificates, etc.) before attempting to connect to the
- // network. When configuration is complete, calls the closure to finish the
- // connection or show the config dialog to collect user-supplied info.
- virtual void AttemptConnection(const base::Closure& connect);
-
- // Return a string representation of the state code.
- std::string GetStateString() const;
-
- // Return a string representation of the error code.
- std::string GetErrorString() const;
-
- // Return true if the network must be in the user profile (e.g. has certs).
- virtual bool RequiresUserProfile() const;
-
- // Copy any credentials from a remembered network that are unset in |this|.
- virtual void CopyCredentialsFromRemembered(Network* remembered);
-
- // Static helper functions.
- static bool IsConnectedState(ConnectionState state) {
- return (state == STATE_READY ||
- state == STATE_ONLINE ||
- state == STATE_PORTAL);
- }
- static bool IsConnectingState(ConnectionState state) {
- return (state == STATE_CONNECT_REQUESTED ||
- state == STATE_ASSOCIATION ||
- state == STATE_CONFIGURATION ||
- state == STATE_CARRIER);
- }
- static bool IsDisconnectedState(ConnectionState state) {
- return (state == STATE_UNKNOWN ||
- state == STATE_IDLE ||
- state == STATE_DISCONNECT ||
- state == STATE_FAILURE ||
- state == STATE_ACTIVATION_FAILURE);
- }
-
- // Adopts the given enrollment handler to handle any certificate enrollment
- // URIs encountered during network connection.
- void SetEnrollmentDelegate(EnrollmentDelegate* delegate);
-
- virtual bool UpdateStatus(const std::string& key,
- const base::Value& value,
- PropertyIndex* index);
-
- // Creates a Network object for the given type for testing.
- static Network* CreateForTesting(ConnectionType type);
-
- protected:
- Network(const std::string& service_path,
- ConnectionType type);
-
- NetworkParser* network_parser() { return network_parser_.get(); }
- void SetNetworkParser(NetworkParser* parser);
-
- // Set the state and update flags if necessary.
- void SetState(ConnectionState state);
-
- // Set the error state and update notify_failure_
- void SetError(ConnectionError error);
-
- // Parse name/value pairs from libcros.
- virtual void ParseInfo(const base::DictionaryValue& info);
-
- // Erase cached credentials, used when "Save password" is unchecked.
- virtual void EraseCredentials();
-
- // Calculate a unique identifier for the network.
- virtual void CalculateUniqueId();
-
- // Methods to asynchronously set network service properties
- virtual void SetStringProperty(const char* prop, const std::string& str,
- std::string* dest);
- virtual void SetBooleanProperty(const char* prop, bool b, bool* dest);
- virtual void SetIntegerProperty(const char* prop, int i, int* dest);
- virtual void SetValueProperty(const char* prop, const base::Value& val);
- virtual void ClearProperty(const char* prop);
-
- // This will clear the property if string is empty. Otherwise, it will set it.
- virtual void SetOrClearStringProperty(const char* prop,
- const std::string& str,
- std::string* dest);
-
- void set_unique_id(const std::string& unique_id) { unique_id_ = unique_id; }
- const CertificatePattern& client_cert_pattern() const {
- return ui_data_.certificate_pattern();
- }
-
- ClientCertType client_cert_type() const {
- return ui_data_.certificate_type();
- }
-
- EnrollmentDelegate* enrollment_delegate() const {
- return enrollment_delegate_.get();
- }
-
- private:
- // This allows NetworkParser and its subclasses access to device
- // privates so that they can be reconstituted during parsing. The
- // parsers only access things through the private set_ functions so
- // that this class can evolve without having to change all the
- // parsers.
- friend class NetworkParser;
- friend class NativeNetworkParser;
- friend class NativeVirtualNetworkParser;
- // We reach directly into the network for testing purposes.
- friend class MobileActivatorTest;
- // This allows the implementation classes access to privates.
- NETWORK_LIBRARY_IMPL_FRIENDS;
-
- // Use these functions at your peril. They are used by the various
- // parsers to set state, and really shouldn't be used by anything else
- // because they don't do the error checking and sending to the
- // network layer that the other setters do.
- void set_device_path(const std::string& device_path) {
- device_path_ = device_path;
- }
- void set_name(const std::string& name) { name_ = name; }
- void set_connecting();
- void set_behind_portal() {
- state_ = STATE_PORTAL;
- }
- void set_connected() {
- state_ = STATE_ONLINE;
- }
- void set_disconnected() {
- state_ = STATE_IDLE;
- }
- void set_connectable(bool connectable) { connectable_ = connectable; }
- void set_user_connect_state(UserConnectState user_connect_state) {
- user_connect_state_ = user_connect_state;
- }
- void set_is_active(bool is_active) { is_active_ = is_active; }
- void set_added(bool added) { added_ = added; }
- void set_auto_connect(bool auto_connect) { auto_connect_ = auto_connect; }
- void set_save_credentials(bool save_credentials) {
- save_credentials_ = save_credentials;
- }
- void set_profile_path(const std::string& path) { profile_path_ = path; }
- void set_profile_type(NetworkProfileType type) { profile_type_ = type; }
- void set_ui_data(const NetworkUIData& ui_data) {
- ui_data_ = ui_data;
- }
- void set_client_cert_pattern(const CertificatePattern& pattern) {
- ui_data_.set_certificate_pattern(pattern);
- }
- void set_client_cert_type(ClientCertType type) {
- ui_data_.set_certificate_type(type);
- }
-
- // Set the profile path and update the flimflam property.
- void SetProfilePath(const std::string& profile_path);
-
- // Trigger an asynchronous initialization the IP address field.
- void InitIPAddress();
-
- // Initialize the IP address field.
- static void InitIPAddressCallback(
- const std::string& service_path,
- const NetworkIPConfigVector& ip_configs,
- const std::string& hardware_address);
-
- std::string device_path_;
- std::string name_;
- std::string ip_address_;
- ConnectionState state_;
- ConnectionError error_;
- bool connectable_;
- UserConnectState user_connect_state_;
- bool is_active_;
- int priority_; // determines order in network list.
- bool auto_connect_;
- bool save_credentials_; // save passphrase and EAP credentials to disk.
- scoped_ptr<EnrollmentDelegate> enrollment_delegate_;
-
- // Unique identifier, set the first time the network is parsed.
- std::string unique_id_;
-
- // Priority value, corresponds to index in list from shill (0 = first)
- int priority_order_;
-
- // Set to true if the UI requested this as a new network.
- bool added_;
-
- // Set to true when a new connection failure occurs; cleared when observers
- // are notified.
- bool notify_failure_;
-
- // Profile path for networks.
- std::string profile_path_;
-
- // Set to profile type based on profile_path_.
- NetworkProfileType profile_type_;
-
- // These must not be modified after construction.
- std::string service_path_;
- ConnectionType type_;
-
- // UI-level state that is opaque to the connection manager. The value is
- // stored in JSON-serialized from in the connection manager.
- NetworkUIData ui_data_;
-
- // This is the parser we use to parse messages from the native
- // network layer.
- scoped_ptr<NetworkParser> network_parser_;
-
- DISALLOW_COPY_AND_ASSIGN(Network);
-};
-
-// Class for networks of TYPE_ETHERNET.
-class EthernetNetwork : public Network {
- public:
- explicit EthernetNetwork(const std::string& service_path);
- private:
- // This allows the implementation classes access to privates.
- NETWORK_LIBRARY_IMPL_FRIENDS;
-
- DISALLOW_COPY_AND_ASSIGN(EthernetNetwork);
-};
-
-// Class for networks of TYPE_VPN.
-class VirtualNetwork : public Network {
- public:
- explicit VirtualNetwork(const std::string& service_path);
- virtual ~VirtualNetwork();
-
- const std::string& server_hostname() const { return server_hostname_; }
- ProviderType provider_type() const { return provider_type_; }
- const std::string& ca_cert_pem() const { return ca_cert_pem_; }
- const std::string& psk_passphrase() const { return psk_passphrase_; }
- const std::string& client_cert_id() const { return client_cert_id_; }
- const std::string& username() const { return username_; }
- const std::string& user_passphrase() const { return user_passphrase_; }
- const std::string& group_name() const { return group_name_; }
-
- // Sets the well-known PKCS#11 slot and PIN for accessing certificates.
- void SetCertificateSlotAndPin(
- const std::string& slot, const std::string& pin);
-
- // Network overrides.
- virtual bool RequiresUserProfile() const OVERRIDE;
- virtual void CopyCredentialsFromRemembered(Network* remembered) OVERRIDE;
- virtual void AttemptConnection(const base::Closure& connect) OVERRIDE;
-
- // Public getters.
- bool NeedMoreInfoToConnect() const;
- std::string GetProviderTypeString() const;
- // Returns true if a PSK passphrase is required to connect.
- bool IsPSKPassphraseRequired() const;
- // Returns true if a user passphrase is required to connect.
- bool IsUserPassphraseRequired() const;
-
- // Public setters.
- void SetCACertPEM(const std::string& ca_cert_pem);
- void SetL2TPIPsecPSKCredentials(const std::string& psk_passphrase,
- const std::string& username,
- const std::string& user_passphrase,
- const std::string& group_name);
- void SetL2TPIPsecCertCredentials(const std::string& client_cert_id,
- const std::string& username,
- const std::string& user_passphrase,
- const std::string& group_name);
- void SetOpenVPNCredentials(const std::string& client_cert_id,
- const std::string& username,
- const std::string& user_passphrase,
- const std::string& otp);
- void SetServerHostname(const std::string& server_hostname);
-
- private:
- // This allows NetworkParser and its subclasses access to
- // device privates so that they can be reconstituted during parsing.
- // The parsers only access things through the private set_ functions
- // so that this class can evolve without having to change all the
- // parsers.
- friend class NativeNetworkParser;
- friend class NativeVirtualNetworkParser;
-
- // This allows the implementation classes access to privates.
- NETWORK_LIBRARY_IMPL_FRIENDS;
-
- // Use these functions at your peril. They are used by the various
- // parsers to set state, and really shouldn't be used by anything else
- // because they don't do the error checking and sending to the
- // network layer that the other setters do.
- void set_server_hostname(const std::string& server_hostname) {
- server_hostname_ = server_hostname;
- }
- void set_provider_type(ProviderType provider_type) {
- provider_type_ = provider_type;
- }
- void set_ca_cert_pem(const std::string& ca_cert_pem) {
- ca_cert_pem_ = ca_cert_pem;
- }
- void set_psk_passphrase(const std::string& psk_passphrase) {
- psk_passphrase_ = psk_passphrase;
- }
- void set_psk_passphrase_required(bool psk_passphrase_required) {
- psk_passphrase_required_ = psk_passphrase_required;
- }
- void set_client_cert_id(const std::string& client_cert_id) {
- client_cert_id_ = client_cert_id;
- }
- void set_username(const std::string& username) { username_ = username; }
- void set_user_passphrase(const std::string& user_passphrase) {
- user_passphrase_ = user_passphrase;
- }
- void set_user_passphrase_required(bool user_passphrase_required) {
- user_passphrase_required_ = user_passphrase_required;
- }
- void set_group_name(const std::string& group_name) {
- group_name_ = group_name;
- }
-
- // Matches the client certificate pattern by checking to see if a certificate
- // exists that meets the pattern criteria. If it finds one, it sets the
- // appropriate network property. If not, it passes |connect| to the
- // EnrollmentDelegate to do something with the enrollment URI (e.g. launch a
- // dialog) to install the certificate, and then invoke |connect|. If
- // |allow_enroll| is false, then the enrollment handler will not be invoked in
- // the case of a missing certificate.
- void MatchCertificatePattern(bool allow_enroll, const base::Closure& connect);
-
- // Network overrides.
- virtual void EraseCredentials() OVERRIDE;
- virtual void CalculateUniqueId() OVERRIDE;
-
- std::string server_hostname_;
- ProviderType provider_type_;
- std::string ca_cert_pem_;
- std::string psk_passphrase_;
- bool psk_passphrase_required_;
- // PKCS#11 ID for client certificate.
- std::string client_cert_id_;
- std::string username_;
- std::string user_passphrase_;
- bool user_passphrase_required_;
- std::string group_name_;
-
- // Weak pointer factory for wrapping pointers to this network in callbacks.
- base::WeakPtrFactory<VirtualNetwork> weak_pointer_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(VirtualNetwork);
-};
-typedef std::vector<VirtualNetwork*> VirtualNetworkVector;
-
-// Base class for networks of TYPE_WIFI or TYPE_CELLULAR.
-class WirelessNetwork : public Network {
- public:
- // Test API for accessing setters in tests.
- class TestApi {
- public:
- explicit TestApi(WirelessNetwork* network) : network_(network) {}
- void SetStrength(int strength) { network_->set_strength(strength); }
- private:
- WirelessNetwork* network_;
- };
- friend class TestApi;
-
- int strength() const { return strength_; }
-
- protected:
- WirelessNetwork(const std::string& service_path,
- ConnectionType type)
- : Network(service_path, type), strength_(0) {}
-
- private:
- // This allows NativeWirelessNetworkParser access to device privates
- // so that they can be reconstituted during parsing. The parsers
- // only access things through the private set_ functions so that
- // this class can evolve without having to change all the parsers.
- friend class NativeWirelessNetworkParser;
-
- // This allows the implementation classes access to privates.
- NETWORK_LIBRARY_IMPL_FRIENDS;
-
- // The friend parsers use this.
- void set_strength(int strength) { strength_ = strength; }
-
- int strength_; // 0-100
-
- DISALLOW_COPY_AND_ASSIGN(WirelessNetwork);
-};
-
-// Class for networks of TYPE_CELLULAR.
-class CellularNetwork : public WirelessNetwork {
- public:
- // Test API for accessing setters in tests.
- class TestApi {
- public:
- explicit TestApi(CellularNetwork* network) : network_(network) {}
- void SetRoamingState(NetworkRoamingState roaming_state) {
- network_->set_roaming_state(roaming_state);
- }
- private:
- CellularNetwork* network_;
- };
- friend class TestApi;
-
- explicit CellularNetwork(const std::string& service_path);
- virtual ~CellularNetwork();
-
- // Starts device activation process. Returns false if the device state does
- // not permit activation.
- virtual bool StartActivation();
- virtual void CompleteActivation();
-
- bool activate_over_non_cellular_network() const {
- return activate_over_non_cellular_network_;
- }
- const ActivationState activation_state() const { return activation_state_; }
- bool activated() const {
- return activation_state() == ACTIVATION_STATE_ACTIVATED;
- }
- const NetworkTechnology network_technology() const {
- return network_technology_;
- }
- const NetworkRoamingState roaming_state() const { return roaming_state_; }
- const std::string& operator_name() const { return operator_name_; }
- const std::string& operator_code() const { return operator_code_; }
- const std::string& operator_country() const { return operator_country_; }
- bool out_of_credits() const { return out_of_credits_; }
- const std::string& payment_url() const { return payment_url_; }
- const std::string& usage_url() const { return usage_url_; }
- const std::string& post_data() const { return post_data_; }
- const bool using_post() const { return using_post_; }
- const CellularApn& apn() const { return apn_; }
- const CellularApn& last_good_apn() const { return last_good_apn_; }
-
- // Sets the APN to use in establishing data connections. Only
- // the fields of the APN that are needed for making connections
- // are passed to shill. The name, localized_name, and language
- // fields are ignored.
- void SetApn(const CellularApn& apn);
-
- // Returns true if network supports activation.
- bool SupportsActivation() const;
-
- // Returns whether the network needs to be activated.
- bool NeedsActivation() const;
-
- // Return a string representation of network technology.
- std::string GetNetworkTechnologyString() const;
- // Return a string representation of activation state.
- std::string GetActivationStateString() const;
- // Return a string representation of roaming state.
- std::string GetRoamingStateString() const;
-
- // Return a string representation of |activation_state|.
- static std::string ActivationStateToString(ActivationState activation_state);
-
- private:
- // This allows NativeCellularNetworkParser access to device privates
- // so that they can be reconstituted during parsing. The parsers
- // only access things through the private set_ functions so that
- // this class can evolve without having to change all the parsers.
- friend class NativeCellularNetworkParser;
- // We reach directly into the network for testing purposes.
- friend class MobileActivatorTest;
-
- // This allows the implementation classes access to privates.
- NETWORK_LIBRARY_IMPL_FRIENDS;
-
- // Use these functions at your peril. They are used by the various
- // parsers to set state, and really shouldn't be used by anything else
- // because they don't do the error checking and sending to the
- // network layer that the other setters do.
- void set_activate_over_non_cellular_network(bool value) {
- activate_over_non_cellular_network_ = value;
- }
- void set_activation_state(ActivationState activation_state) {
- activation_state_ = activation_state;
- }
- void set_network_technology(NetworkTechnology network_technology) {
- network_technology_ = network_technology;
- }
- void set_roaming_state(NetworkRoamingState roaming_state) {
- roaming_state_ = roaming_state;
- }
- void set_operator_name(const std::string& operator_name) {
- operator_name_ = operator_name;
- }
- void set_operator_code(const std::string& operator_code) {
- operator_code_ = operator_code;
- }
- void set_operator_country(const std::string& operator_country) {
- operator_country_ = operator_country;
- }
- void set_out_of_credits(bool out_of_credits) {
- out_of_credits_ = out_of_credits;
- }
- void set_payment_url(const std::string& payment_url) {
- payment_url_ = payment_url;
- }
- void set_post_data(const std::string& post_data) {
- post_data_ = post_data;
- }
- void set_using_post(bool using_post) {
- using_post_ = using_post;
- }
- void set_usage_url(const std::string& usage_url) { usage_url_ = usage_url; }
- void set_apn(const base::DictionaryValue& apn) { apn_.Set(apn); }
- void set_last_good_apn(const base::DictionaryValue& last_good_apn) {
- last_good_apn_.Set(last_good_apn);
- }
-
- bool activate_over_non_cellular_network_;
- bool out_of_credits_;
- ActivationState activation_state_;
- NetworkTechnology network_technology_;
- NetworkRoamingState roaming_state_;
- // Carrier Info
- std::string operator_name_;
- std::string operator_code_;
- std::string operator_country_;
- std::string payment_url_;
- std::string usage_url_;
- std::string post_data_;
- bool using_post_;
- // Cached values
- CellularApn apn_;
- CellularApn last_good_apn_;
-
- DISALLOW_COPY_AND_ASSIGN(CellularNetwork);
-};
-typedef std::vector<CellularNetwork*> CellularNetworkVector;
-
-// Class for networks of TYPE_WIFI.
-class WifiNetwork : public WirelessNetwork {
- public:
- // Test API for accessing setters in tests.
- class TestApi {
- public:
- explicit TestApi(WifiNetwork* network) : network_(network) {}
- void SetEncryption(ConnectionSecurity encryption) {
- network_->set_encryption(encryption);
- }
- void SetSsid(const std::string& ssid) {
- network_->SetSsid(ssid);
- }
- void SetHexSsid(const std::string& ssid_hex) {
- network_->SetHexSsid(ssid_hex);
- }
- private:
- WifiNetwork* network_;
- };
- friend class TestApi;
-
- explicit WifiNetwork(const std::string& service_path);
- virtual ~WifiNetwork();
-
- bool encrypted() const { return encryption_ != SECURITY_NONE; }
- ConnectionSecurity encryption() const { return encryption_; }
- const std::string& passphrase() const { return passphrase_; }
- const std::string& identity() const { return identity_; }
- bool passphrase_required() const { return passphrase_required_; }
- bool hidden_ssid() const { return hidden_ssid_; }
- const std::string& bssid() const { return bssid_; }
- int frequency() const { return frequency_; }
-
- EAPMethod eap_method() const { return eap_method_; }
- EAPPhase2Auth eap_phase_2_auth() const { return eap_phase_2_auth_; }
- const std::string& eap_server_ca_cert_pem() const {
- return eap_server_ca_cert_pem_; }
- const std::string& eap_client_cert_pkcs11_id() const {
- return eap_client_cert_pkcs11_id_; }
- const bool eap_use_system_cas() const { return eap_use_system_cas_; }
- const std::string& eap_identity() const { return eap_identity_; }
- const std::string& eap_anonymous_identity() const {
- return eap_anonymous_identity_;
- }
- const std::string& eap_passphrase() const { return eap_passphrase_; }
- const bool eap_save_credentials() const { return eap_save_credentials_; }
-
- const std::string& GetPassphrase() const;
-
- // Set property and call SetNetworkServiceProperty:
-
- void SetPassphrase(const std::string& passphrase);
-
- // 802.1x properties
- void SetEAPMethod(EAPMethod method);
- void SetEAPPhase2Auth(EAPPhase2Auth auth);
- void SetEAPServerCaCertPEM(const std::string& ca_cert_pem);
- void SetEAPClientCertPkcs11Id(const std::string& pkcs11_id);
- void SetEAPUseSystemCAs(bool use_system_cas);
- void SetEAPIdentity(const std::string& identity);
- void SetEAPAnonymousIdentity(const std::string& identity);
- void SetEAPPassphrase(const std::string& passphrase);
-
- // Sets the well-known PKCS#11 PIN for accessing certificates.
- void SetCertificatePin(const std::string& pin);
-
- // Network overrides.
- virtual bool RequiresUserProfile() const OVERRIDE;
- virtual void AttemptConnection(const base::Closure& connect) OVERRIDE;
-
- // Return a string representation of the encryption code.
- // This not translated and should be only used for debugging purposes.
- std::string GetEncryptionString() const;
-
- // Return true if a passphrase or other input is required to connect.
- bool IsPassphraseRequired() const;
-
- protected:
- // This allows NativeWifiNetworkParser access to device privates so
- // that they can be reconstituted during parsing. The parsers only
- // access things through the private set_ functions so that this
- // class can evolve without having to change all the parsers.
- friend class NativeWifiNetworkParser;
-
- // This allows the implementation classes access to privates.
- NETWORK_LIBRARY_IMPL_FRIENDS;
-
- // Use these functions at your peril. They are used by the various
- // parsers to set state, and really shouldn't be used by anything else
- // because they don't do the error checking and sending to the
- // network layer that the other setters do.
-
- bool SetSsid(const std::string& ssid);
- bool SetHexSsid(const std::string& ssid_hex);
-
- void set_encryption(ConnectionSecurity encryption) {
- encryption_ = encryption;
- }
- void set_passphrase(const std::string& passphrase) {
- passphrase_ = passphrase;
- user_passphrase_ = passphrase;
- }
- void set_passphrase_required(bool passphrase_required) {
- passphrase_required_ = passphrase_required;
- }
- void set_identity(const std::string& identity) {
- identity_ = identity;
- }
- void set_hidden_ssid(bool hidden_ssid) {
- hidden_ssid_ = hidden_ssid;
- }
- void set_bssid(const std::string& bssid) { bssid_ = bssid; }
- void set_frequency(int frequency) { frequency_ = frequency; }
- void set_eap_method(EAPMethod eap_method) { eap_method_ = eap_method; }
- void set_eap_phase_2_auth(EAPPhase2Auth eap_phase_2_auth) {
- eap_phase_2_auth_ = eap_phase_2_auth;
- }
- void set_eap_server_ca_cert_pem(const std::string& eap_server_ca_cert_pem) {
- eap_server_ca_cert_pem_ = eap_server_ca_cert_pem;
- }
- void set_eap_client_cert_pkcs11_id(
- const std::string& eap_client_cert_pkcs11_id) {
- eap_client_cert_pkcs11_id_ = eap_client_cert_pkcs11_id;
- }
- void set_eap_use_system_cas(bool eap_use_system_cas) {
- eap_use_system_cas_ = eap_use_system_cas;
- }
- void set_eap_identity(const std::string& eap_identity) {
- eap_identity_ = eap_identity;
- }
- void set_eap_anonymous_identity(const std::string& eap_anonymous_identity) {
- eap_anonymous_identity_ = eap_anonymous_identity;
- }
- void set_eap_passphrase(const std::string& eap_passphrase) {
- eap_passphrase_ = eap_passphrase;
- }
- void set_eap_save_credentials(bool save_credentials) {
- eap_save_credentials_ = save_credentials;
- }
-
- // Matches the client certificate pattern by checking to see if a certificate
- // exists that meets the pattern criteria. If it finds one, it sets the
- // appropriate network property. If not, it passes |connect| to the
- // EnrollmentDelegate to do something with the enrollment URI (e.g. launch a
- // dialog) to install the certificate, and then invoke |connect|. If
- // |allow_enroll| is false, then the enrollment handler will not be invoked in
- // the case of a missing certificate.
- void MatchCertificatePattern(bool allow_enroll, const base::Closure& connect);
-
- // Network overrides.
- virtual void EraseCredentials() OVERRIDE;
- virtual void CalculateUniqueId() OVERRIDE;
-
- ConnectionSecurity encryption_;
- std::string passphrase_;
- bool passphrase_required_;
- std::string identity_;
- bool hidden_ssid_;
- std::string bssid_;
- int frequency_;
-
- EAPMethod eap_method_;
- EAPPhase2Auth eap_phase_2_auth_;
- std::string eap_server_ca_cert_pem_;
- std::string eap_client_cert_pkcs11_id_;
- bool eap_use_system_cas_;
- std::string eap_identity_;
- std::string eap_anonymous_identity_;
- std::string eap_passphrase_;
- bool eap_save_credentials_;
-
- // Internal state (not stored in shill).
- // Passphrase set by user (stored for UI).
- std::string user_passphrase_;
-
- // Weak pointer factory for wrapping pointers to this network in callbacks.
- base::WeakPtrFactory<WifiNetwork> weak_pointer_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(WifiNetwork);
-};
-
-typedef std::vector<WifiNetwork*> WifiNetworkVector;
-
-
-// Class for networks of TYPE_WIMAX.
-class WimaxNetwork : public WirelessNetwork {
- public:
- explicit WimaxNetwork(const std::string& service_path);
- virtual ~WimaxNetwork();
-
- bool passphrase_required() const { return passphrase_required_; }
- const std::string& eap_identity() const { return eap_identity_; }
- const std::string& eap_passphrase() const { return eap_passphrase_; }
-
- void SetEAPIdentity(const std::string& identity);
- void SetEAPPassphrase(const std::string& passphrase);
-
- protected:
- // This allows NativeWimaxNetworkParser access to device privates so
- // that they can be reconstituted during parsing. The parsers only
- // access things through the private set_ functions so that this
- // class can evolve without having to change all the parsers.
- friend class NativeWimaxNetworkParser;
-
- // This allows the implementation classes access to privates.
- NETWORK_LIBRARY_IMPL_FRIENDS;
-
- void set_eap_identity(const std::string& identity) {
- eap_identity_ = identity;
- }
- void set_eap_passphrase(const std::string& passphrase) {
- eap_passphrase_ = passphrase;
- }
- void set_passphrase_required(bool passphrase_required) {
- passphrase_required_ = passphrase_required;
- }
-
- // Network overrides.
- virtual void EraseCredentials() OVERRIDE;
- virtual void CalculateUniqueId() OVERRIDE;
-
- bool passphrase_required_;
- std::string eap_identity_;
- std::string eap_passphrase_;
-
- DISALLOW_COPY_AND_ASSIGN(WimaxNetwork);
-};
-
-typedef std::vector<WimaxNetwork*> WimaxNetworkVector;
-
-// Geolocation data.
-struct CellTower {
- CellTower();
-
- enum RadioType {
- RADIOTYPE_GSM,
- RADIOTYPE_CDMA,
- RADIOTYPE_WCDMA,
- } radio_type; // GSM/WCDMA CDMA
- int mobile_country_code; // MCC MCC
- int mobile_network_code; // MNC SID
- int location_area_code; // LAC NID
- int cell_id; // CID BID
- base::Time timestamp; // Timestamp when this cell was primary
- int signal_strength; // Radio signal strength measured in dBm.
- int timing_advance; // Represents the distance from the cell tower.
- // Each unit is roughly 550 meters.
-};
-
-typedef std::vector<CellTower> CellTowerVector;
-
-// This class handles the interaction with the ChromeOS network library APIs.
-// Classes can add themselves as observers. Users can get an instance of the
-// library like this: chromeos::NetworkLibrary::Get()
-class NetworkLibrary {
- public:
- enum HardwareAddressFormat {
- FORMAT_RAW_HEX,
- FORMAT_COLON_SEPARATED_HEX
- };
-
- // Used to configure which IP parameters will be specified by DHCP and which
- // will be set by the user.
- enum UseDHCP {
- USE_DHCP_ADDRESS = 0x1,
- USE_DHCP_NETMASK = 0x1 << 1,
- USE_DHCP_GATEWAY = 0x1 << 2,
- USE_DHCP_NAME_SERVERS = 0x1 << 3,
- USE_DHCP_ALL_ROUTING_INFO =
- (USE_DHCP_ADDRESS |
- USE_DHCP_NETMASK |
- USE_DHCP_GATEWAY),
- };
-
- class NetworkProfileObserver {
- public:
- // Called when the list of network profiles was changed.
- virtual void OnProfileListChanged() = 0;
- protected:
- virtual ~NetworkProfileObserver() {}
- };
-
- class NetworkManagerObserver {
- public:
- // Called when the state of the network manager has changed,
- // for example, networks have appeared or disappeared.
- virtual void OnNetworkManagerChanged(NetworkLibrary* obj) = 0;
- protected:
- virtual ~NetworkManagerObserver() {}
- };
-
- class NetworkObserver {
- public:
- // Called when the state of a single network has changed,
- // for example signal strength or connection state.
- virtual void OnNetworkChanged(NetworkLibrary* cros,
- const Network* network) = 0;
- protected:
- virtual ~NetworkObserver() {}
- };
-
- class NetworkDeviceObserver {
- public:
- // Called when |device| got notification about new networks available.
- virtual void OnNetworkDeviceFoundNetworks(NetworkLibrary* cros,
- const NetworkDevice* device) {}
-
- // Called when |device| got notification about SIM lock change.
- virtual void OnNetworkDeviceSimLockChanged(NetworkLibrary* cros,
- const NetworkDevice* device) {}
- protected:
- virtual ~NetworkDeviceObserver() {}
- };
-
- class PinOperationObserver {
- public:
- // Called when pin async operation has completed.
- // Network is NULL when we don't have an associated Network object.
- virtual void OnPinOperationCompleted(NetworkLibrary* cros,
- PinOperationError error) = 0;
- protected:
- virtual ~PinOperationObserver() {}
- };
-
- virtual ~NetworkLibrary() {}
-
- virtual void Init() = 0;
-
- // Returns true if libcros was loaded instead of stubbed out.
- virtual bool IsCros() const = 0;
-
- virtual void AddNetworkProfileObserver(NetworkProfileObserver* observer) = 0;
- virtual void RemoveNetworkProfileObserver(
- NetworkProfileObserver* observer) = 0;
-
- virtual void AddNetworkManagerObserver(NetworkManagerObserver* observer) = 0;
- virtual void RemoveNetworkManagerObserver(
- NetworkManagerObserver* observer) = 0;
-
- // An attempt to add an observer that has already been added for a
- // give service path will be ignored.
- virtual void AddNetworkObserver(const std::string& service_path,
- NetworkObserver* observer) = 0;
- // Remove an observer of a single network
- virtual void RemoveNetworkObserver(const std::string& service_path,
- NetworkObserver* observer) = 0;
- // Stop |observer| from observing any networks
- virtual void RemoveObserverForAllNetworks(NetworkObserver* observer) = 0;
-
- // Add an observer for a single network device.
- virtual void AddNetworkDeviceObserver(const std::string& device_path,
- NetworkDeviceObserver* observer) = 0;
- // Remove an observer for a single network device.
- virtual void RemoveNetworkDeviceObserver(const std::string& device_path,
- NetworkDeviceObserver* observer) = 0;
-
- virtual void AddPinOperationObserver(PinOperationObserver* observer) = 0;
- virtual void RemovePinOperationObserver(PinOperationObserver* observer) = 0;
-
- // Return the active or default Ethernet network (or NULL if none).
- virtual const EthernetNetwork* ethernet_network() const = 0;
- virtual bool ethernet_connecting() const = 0;
- virtual bool ethernet_connected() const = 0;
-
- // Return the active Wifi network (or NULL if none active).
- virtual const WifiNetwork* wifi_network() const = 0;
- virtual bool wifi_connecting() const = 0;
- virtual bool wifi_connected() const = 0;
-
- // Return the active Cellular network (or NULL if none active).
- virtual const CellularNetwork* cellular_network() const = 0;
- virtual bool cellular_connecting() const = 0;
- virtual bool cellular_connected() const = 0;
-
- // Return the active Wimax network (or NULL if none active).
- virtual const WimaxNetwork* wimax_network() const = 0;
- virtual bool wimax_connecting() const = 0;
- virtual bool wimax_connected() const = 0;
-
- // Return the active virtual network (or NULL if none active).
- virtual const VirtualNetwork* virtual_network() const = 0;
- virtual bool virtual_network_connecting() const = 0;
- virtual bool virtual_network_connected() const = 0;
-
- // Return true if any network is currently connected.
- virtual bool Connected() const = 0;
-
- // Return true if any network is currently connecting.
- virtual bool Connecting() const = 0;
-
- // Returns the current list of wifi networks.
- virtual const WifiNetworkVector& wifi_networks() const = 0;
-
- // Returns the list of remembered wifi networks.
- virtual const WifiNetworkVector& remembered_wifi_networks() const = 0;
-
- // Returns the current list of cellular networks.
- virtual const CellularNetworkVector& cellular_networks() const = 0;
-
- // Returns the current list of Wimax networks.
- virtual const WimaxNetworkVector& wimax_networks() const = 0;
-
- // Returns the current list of virtual networks.
- virtual const VirtualNetworkVector& virtual_networks() const = 0;
-
- // Returns the current list of virtual networks.
- virtual const VirtualNetworkVector& remembered_virtual_networks() const = 0;
-
- virtual const Network* active_network() const = 0;
- virtual const Network* active_nonvirtual_network() const = 0;
- virtual const Network* connected_network() const = 0;
- virtual const Network* connecting_network() const = 0;
-
- virtual bool ethernet_available() const = 0;
- virtual bool wifi_available() const = 0;
- virtual bool wimax_available() const = 0;
- virtual bool cellular_available() const = 0;
-
- virtual bool ethernet_enabled() const = 0;
- virtual bool wifi_enabled() const = 0;
- virtual bool wimax_enabled() const = 0;
- virtual bool cellular_enabled() const = 0;
-
- virtual bool wifi_scanning() const = 0;
- virtual bool cellular_initializing() const = 0;
-
- // Return a pointer to the device, if it exists, or NULL.
- virtual const NetworkDevice* FindNetworkDeviceByPath(
- const std::string& path) const = 0;
-
- // Returns device with TYPE_CELLULAR or TYPE_WIMAX.
- // Returns NULL if none exists.
- virtual const NetworkDevice* FindMobileDevice() const = 0;
-
- // Returns device with TYPE_CELLULAR. Returns NULL if none exists.
- virtual const NetworkDevice* FindCellularDevice() const = 0;
-
- // Return a pointer to the network, if it exists, or NULL.
- // NOTE: Never store these results, store service paths instead.
- // The pattern for doing an operation on a Network is:
- // Network* network = cros->FindNetworkByPath(service_path);
- // network->SetFoo();
- // network->Connect();
- // As long as this is done in sequence on the UI thread it will be safe;
- // the network list only gets updated on the UI thread.
- virtual Network* FindNetworkByPath(const std::string& path) const = 0;
- virtual Network* FindNetworkByUniqueId(
- const std::string& unique_id) const = 0;
- virtual WifiNetwork* FindWifiNetworkByPath(const std::string& path) const = 0;
- virtual CellularNetwork* FindCellularNetworkByPath(
- const std::string& path) const = 0;
- virtual WimaxNetwork* FindWimaxNetworkByPath(
- const std::string& path) const = 0;
- virtual VirtualNetwork* FindVirtualNetworkByPath(
- const std::string& path) const = 0;
-
- // Return a pointer to the remembered network, if it exists, or NULL.
- virtual Network* FindRememberedNetworkByPath(
- const std::string& path) const = 0;
-
- // Return a pointer to the ONC dictionary for a network identified by unique
- // ID. Returns NULL if there is no ONC dictionary available for that network.
- // The ONC dictionary is usually only present for policy-configure networks
- // which get reconfigured at startup.
- virtual const base::DictionaryValue* FindOncForNetwork(
- const std::string& unique_id) const = 0;
-
- // Records information that cellular plan payment has happened.
- virtual void SignalCellularPlanPayment() = 0;
-
- // Returns true if cellular plan payment has been recorded recently.
- virtual bool HasRecentCellularPlanPayment() = 0;
-
- // Returns home carrier ID if available, otherwise empty string is returned.
- // Carrier ID format: <carrier name> (country). Ex.: "Verizon (us)".
- virtual const std::string& GetCellularHomeCarrierId() const = 0;
-
- // Checks if the current cellular device should be activated by directly
- // calling it's activate function instead of going through the activation
- // process.
- // Note: Currently Sprint is the only carrier using direct activation.
- virtual bool CellularDeviceUsesDirectActivation() const = 0;
-
- // Passes |old_pin|, |new_pin| to change SIM card PIM.
- virtual void ChangePin(const std::string& old_pin,
- const std::string& new_pin) = 0;
-
- // Passes |pin|, |require_pin| value to change SIM card RequirePin setting.
- virtual void ChangeRequirePin(bool require_pin,
- const std::string& pin) = 0;
-
- // Passes |pin| to unlock SIM card.
- virtual void EnterPin(const std::string& pin) = 0;
-
- // Passes |puk|, |new_pin| to unblock SIM card.
- virtual void UnblockPin(const std::string& puk,
- const std::string& new_pin) = 0;
-
- // Request a scan for available cellular networks.
- virtual void RequestCellularScan() = 0;
-
- // Request a register in cellular network with |network_id|.
- virtual void RequestCellularRegister(const std::string& network_id) = 0;
-
- // Change data roaming restriction for current cellular device.
- virtual void SetCellularDataRoamingAllowed(bool new_value) = 0;
-
- // Changes the active cellular carrier to the one provided, calls the closure
- // once the transition is complete.
- virtual void SetCarrier(const std::string& carrier,
- const NetworkOperationCallback& completed) = 0;
-
- // Return true if GSM SIM card can work only with enabled roaming.
- virtual bool IsCellularAlwaysInRoaming() = 0;
-
- // Request a scan for new wifi networks.
- virtual void RequestNetworkScan() = 0;
-
- // TODO(joth): Add GetCellTowers to retrieve a CellTowerVector.
-
- // Returns false if there is no way to connect to this network, even with
- // user input (e.g. it requires a user profile but none is available).
- virtual bool CanConnectToNetwork(const Network* network) const = 0;
-
- // Connect to the specified wireless network.
- virtual void ConnectToWifiNetwork(WifiNetwork* network) = 0;
-
- // Connect to the specified wireless network and set its profile
- // to SHARED if |shared| is true, otherwise to USER.
- virtual void ConnectToWifiNetwork(WifiNetwork* network, bool shared) = 0;
-
- // Connect to the specified cellular network.
- virtual void ConnectToCellularNetwork(CellularNetwork* network) = 0;
-
- // Connect to the specified WiMAX network.
- virtual void ConnectToWimaxNetwork(WimaxNetwork* network) = 0;
-
- // Connect to the specified WiMAX network and set its profile
- // to SHARED if |shared| is true, otherwise to USER.
- virtual void ConnectToWimaxNetwork(WimaxNetwork* network, bool shared) = 0;
-
- // Connect to the specified virtual network.
- virtual void ConnectToVirtualNetwork(VirtualNetwork* network) = 0;
-
- // Connect to an unconfigured network with given SSID, security, passphrase,
- // and optional EAP configuration. If |security| is SECURITY_8021X,
- // |eap_config| must be provided.
- struct EAPConfigData {
- EAPConfigData();
- ~EAPConfigData();
- EAPMethod method;
- EAPPhase2Auth auth;
- std::string server_ca_cert_pem;
- bool use_system_cas;
- std::string client_cert_pkcs11_id;
- std::string identity;
- std::string anonymous_identity;
- };
- virtual void ConnectToUnconfiguredWifiNetwork(
- const std::string& ssid,
- ConnectionSecurity security,
- const std::string& passphrase,
- const EAPConfigData* eap_config,
- bool save_credentials,
- bool shared) = 0;
-
- // Connect to the specified virtual network with service name.
- // VPNConfigData must be provided.
- struct VPNConfigData {
- VPNConfigData();
- ~VPNConfigData();
- std::string psk;
- std::string server_ca_cert_pem;
- std::string client_cert_pkcs11_id;
- std::string username;
- std::string user_passphrase;
- std::string otp;
- std::string group_name;
- bool save_credentials;
- };
- virtual void ConnectToUnconfiguredVirtualNetwork(
- const std::string& service_name,
- const std::string& server_hostname,
- ProviderType provider_type,
- const VPNConfigData& config) = 0;
-
- // Disconnect from the specified network.
- virtual void DisconnectFromNetwork(const Network* network) = 0;
-
- // Forget the network corresponding to service_path.
- virtual void ForgetNetwork(const std::string& service_path) = 0;
-
- // Enables/disables the ethernet network device.
- virtual void EnableEthernetNetworkDevice(bool enable) = 0;
-
- // Enables/disables the wifi network device.
- virtual void EnableWifiNetworkDevice(bool enable) = 0;
-
- // Enables/disables the wimax network device.
- virtual void EnableWimaxNetworkDevice(bool enable) = 0;
-
- // Enables/disables the cellular network device.
- virtual void EnableCellularNetworkDevice(bool enable) = 0;
-
- // Fetches IP configs and hardware address for a given device_path and returns
- // them via the given callback.
- virtual void GetIPConfigs(const std::string& device_path,
- HardwareAddressFormat format,
- const NetworkGetIPConfigsCallback& callback) = 0;
-
- // Sets the configuration of the IP parameters. This is called when user
- // changes IP settings from dhcp to static or vice versa or when user changes
- // the ip config info. If nothing is changed, this method does nothing.
- // |dhcp_usage_mask| is a bitmask composed of items from the UseDHCP enum, and
- // indicates which of the supplied values are overridden by values given by
- // the default IP acquisition technique for the service (DHCP, usually).
- virtual void SetIPParameters(const std::string& service_path,
- const std::string& address,
- const std::string& netmask,
- const std::string& gateway,
- const std::string& name_servers,
- int dhcp_usage_mask) = 0;
-
- // Requests the service properties associated with |service_path|. Calls
- // |callback| with the properties when competed.
- typedef base::Callback<void(const std::string& service_path,
- const base::DictionaryValue* properties)>
- NetworkServicePropertiesCallback;
- virtual void RequestNetworkServiceProperties(
- const std::string& service_path,
- const NetworkServicePropertiesCallback& callback) = 0;
-
- // Load networks from a list of NetworkConfigurations of ONC.
- virtual void LoadOncNetworks(const base::ListValue& network_configs,
- onc::ONCSource source) = 0;
-
- // This sets the active network for the network type. Note: priority order
- // is unchanged (i.e. if a wifi network is set to active, but an ethernet
- // network is still active, active_network() will still return the ethernet
- // network). Other networks of the same type will become inactive.
- // Used for testing.
- virtual bool SetActiveNetwork(ConnectionType type,
- const std::string& service_path) = 0;
-
- // Factory function, creates a new instance and returns ownership.
- // For normal usage, access the singleton via NetworkLibrary::Get().
- static NetworkLibrary* GetImpl(bool stub);
-
- // Initializes the global instance.
- static void Initialize(bool use_stub);
-
- // Destroys the global instance. Must be called before AtExitManager is
- // destroyed to ensure a clean shutdown.
- static void Shutdown();
-
- // Gets the global instance. Returns NULL if Initialize() has not been
- // called (or Shutdown() has been called).
- static NetworkLibrary* Get();
-
- // Sets the network library to be returned from Get(). The existing network
- // library will be deleted.
- static void SetForTesting(NetworkLibrary* network_library);
-};
-
-// The class is used for enabling the stub libcros, and cleaning it up at
-// the end of the object lifetime. Useful for testing.
-class ScopedStubNetworkLibraryEnabler {
- public:
- ScopedStubNetworkLibraryEnabler() {
- NetworkLibrary::Initialize(true);
- }
-
- ~ScopedStubNetworkLibraryEnabler() {
- NetworkLibrary::Shutdown();
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ScopedStubNetworkLibraryEnabler);
-};
-
-} // namespace chromeos
-
-#endif // CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_H_
« no previous file with comments | « chrome/browser/chromeos/cros/network_constants.h ('k') | chrome/browser/chromeos/cros/network_library.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698