Add TechnologyState to NetworkStateHandler.

This introduces a local "enabling" state for technology and
adds UI for the intermittent state.

It will also make it easier to switch to Shill technology
states once those are implemented.

BUG=223986

Review URL: https://codereview.chromium.org/14137017

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194233 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chromeos/network/shill_property_handler.h b/chromeos/network/shill_property_handler.h
index 0749e34..33627ef 100644
--- a/chromeos/network/shill_property_handler.h
+++ b/chromeos/network/shill_property_handler.h
@@ -90,10 +90,11 @@
   // Sends an initial property request and sets up the observer.
   void Init();
 
-  // Returns true if |technology| is available / enabled / uninitialized.
-  bool TechnologyAvailable(const std::string& technology) const;
-  bool TechnologyEnabled(const std::string& technology) const;
-  bool TechnologyUninitialized(const std::string& technology) const;
+  // Returns true if |technology| is available, enabled, etc.
+  bool IsTechnologyAvailable(const std::string& technology) const;
+  bool IsTechnologyEnabled(const std::string& technology) const;
+  bool IsTechnologyEnabling(const std::string& technology) const;
+  bool IsTechnologyUninitialized(const std::string& technology) const;
 
   // Asynchronously sets the enabled state for |technology|.
   // Note: Modifes Manager state. Calls |error_callback| on failure.
@@ -139,6 +140,12 @@
   void UpdateEnabledTechnologies(const base::ListValue& technologies);
   void UpdateUninitializedTechnologies(const base::ListValue& technologies);
 
+  void EnableTechnologyFailed(
+      const std::string& technology,
+      const network_handler::ErrorCallback& error_callback,
+      const std::string& error_name,
+      const std::string& error_message);
+
   // Called when Shill returns the properties for a service or device.
   void GetPropertiesCallback(ManagedState::ManagedType type,
                              const std::string& path,
@@ -183,6 +190,7 @@
   // Lists of available / enabled / uninitialized technologies
   std::set<std::string> available_technologies_;
   std::set<std::string> enabled_technologies_;
+  std::set<std::string> enabling_technologies_;
   std::set<std::string> uninitialized_technologies_;
 
   DISALLOW_COPY_AND_ASSIGN(ShillPropertyHandler);