Home | History | Annotate | Download | only in networking_private
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_
      6 #define CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_
      7 
      8 #include <string>
      9 
     10 #include "base/callback.h"
     11 #include "base/memory/scoped_ptr.h"
     12 #include "base/values.h"
     13 
     14 namespace content {
     15 class BrowserContext;
     16 }
     17 
     18 namespace extensions {
     19 
     20 namespace api {
     21 namespace networking_private {
     22 
     23 struct VerificationProperties;
     24 
     25 }  // networking_private
     26 }  // api
     27 
     28 // Base class for platform dependent networkingPrivate API implementations.
     29 // All inputs and results for this class use ONC values. See
     30 // networking_private.json for descriptions of the expected inputs and results.
     31 class NetworkingPrivateDelegate {
     32  public:
     33   typedef base::Callback<void(scoped_ptr<base::DictionaryValue>)>
     34       DictionaryCallback;
     35   typedef base::Callback<void()> VoidCallback;
     36   typedef base::Callback<void(bool)> BoolCallback;
     37   typedef base::Callback<void(const std::string&)> StringCallback;
     38   typedef base::Callback<void(scoped_ptr<base::ListValue>)> NetworkListCallback;
     39   typedef base::Callback<void(const std::string&)> FailureCallback;
     40   typedef api::networking_private::VerificationProperties
     41       VerificationProperties;
     42 
     43   static NetworkingPrivateDelegate* GetForBrowserContext(
     44       content::BrowserContext* browser_context);
     45 
     46   // Asynchronous methods
     47   virtual void GetProperties(const std::string& guid,
     48                              const DictionaryCallback& success_callback,
     49                              const FailureCallback& failure_callback) = 0;
     50   virtual void GetManagedProperties(
     51       const std::string& guid,
     52       const DictionaryCallback& success_callback,
     53       const FailureCallback& failure_callback) = 0;
     54   virtual void GetState(const std::string& guid,
     55                         const DictionaryCallback& success_callback,
     56                         const FailureCallback& failure_callback) = 0;
     57   virtual void SetProperties(const std::string& guid,
     58                              scoped_ptr<base::DictionaryValue> properties,
     59                              const VoidCallback& success_callback,
     60                              const FailureCallback& failure_callback) = 0;
     61   virtual void CreateNetwork(bool shared,
     62                              scoped_ptr<base::DictionaryValue> properties,
     63                              const StringCallback& success_callback,
     64                              const FailureCallback& failure_callback) = 0;
     65   virtual void GetNetworks(const std::string& network_type,
     66                            bool configured_only,
     67                            bool visible_only,
     68                            int limit,
     69                            const NetworkListCallback& success_callback,
     70                            const FailureCallback& failure_callback) = 0;
     71   virtual void StartConnect(const std::string& guid,
     72                             const VoidCallback& success_callback,
     73                             const FailureCallback& failure_callback) = 0;
     74   virtual void StartDisconnect(const std::string& guid,
     75                                const VoidCallback& success_callback,
     76                                const FailureCallback& failure_callback) = 0;
     77   virtual void VerifyDestination(
     78       const VerificationProperties& verification_properties,
     79       const BoolCallback& success_callback,
     80       const FailureCallback& failure_callback) = 0;
     81   virtual void VerifyAndEncryptCredentials(
     82       const std::string& guid,
     83       const VerificationProperties& verification_properties,
     84       const StringCallback& success_callback,
     85       const FailureCallback& failure_callback) = 0;
     86   virtual void VerifyAndEncryptData(
     87       const VerificationProperties& verification_properties,
     88       const std::string& data,
     89       const StringCallback& success_callback,
     90       const FailureCallback& failure_callback) = 0;
     91   virtual void SetWifiTDLSEnabledState(
     92       const std::string& ip_or_mac_address,
     93       bool enabled,
     94       const StringCallback& success_callback,
     95       const FailureCallback& failure_callback) = 0;
     96   virtual void GetWifiTDLSStatus(
     97       const std::string& ip_or_mac_address,
     98       const StringCallback& success_callback,
     99       const FailureCallback& failure_callback) = 0;
    100   virtual void GetCaptivePortalStatus(
    101       const std::string& guid,
    102       const StringCallback& success_callback,
    103       const FailureCallback& failure_callback) = 0;
    104 
    105   // Synchronous methods
    106 
    107   // Returns a list of ONC type strings.
    108   virtual scoped_ptr<base::ListValue> GetEnabledNetworkTypes() = 0;
    109 
    110   // Returns true if the ONC network type |type| is enabled.
    111   virtual bool EnableNetworkType(const std::string& type) = 0;
    112 
    113   // Returns true if the ONC network type |type| is disabled.
    114   virtual bool DisableNetworkType(const std::string& type) = 0;
    115 
    116   // Returns true if a scan was requested. It may take many seconds for a scan
    117   // to complete. The scan may or may not trigger API events when complete.
    118   virtual bool RequestScan() = 0;
    119 
    120  protected:
    121   virtual ~NetworkingPrivateDelegate() {}
    122 };
    123 
    124 }  // namespace extensions
    125 
    126 #endif  // CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_
    127