| OLD | NEW |
| (Empty) |
| 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_DELE
GATE_H_ | |
| 6 #define CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELE
GATE_H_ | |
| 7 | |
| 8 #include <string> | |
| 9 | |
| 10 #include "base/callback.h" | |
| 11 #include "base/memory/scoped_ptr.h" | |
| 12 #include "base/values.h" | |
| 13 #include "components/keyed_service/core/keyed_service.h" | |
| 14 | |
| 15 namespace content { | |
| 16 | |
| 17 class BrowserContext; | |
| 18 | |
| 19 } // content | |
| 20 | |
| 21 namespace extensions { | |
| 22 | |
| 23 class NetworkingPrivateDelegateObserver; | |
| 24 | |
| 25 namespace api { | |
| 26 namespace networking_private { | |
| 27 | |
| 28 struct VerificationProperties; | |
| 29 | |
| 30 } // networking_private | |
| 31 } // api | |
| 32 | |
| 33 // Base class for platform dependent networkingPrivate API implementations. | |
| 34 // All inputs and results for this class use ONC values. See | |
| 35 // networking_private.json for descriptions of the expected inputs and results. | |
| 36 class NetworkingPrivateDelegate : public KeyedService { | |
| 37 public: | |
| 38 typedef base::Callback<void(scoped_ptr<base::DictionaryValue>)> | |
| 39 DictionaryCallback; | |
| 40 typedef base::Callback<void()> VoidCallback; | |
| 41 typedef base::Callback<void(bool)> BoolCallback; | |
| 42 typedef base::Callback<void(const std::string&)> StringCallback; | |
| 43 typedef base::Callback<void(scoped_ptr<base::ListValue>)> NetworkListCallback; | |
| 44 typedef base::Callback<void(const std::string&)> FailureCallback; | |
| 45 typedef api::networking_private::VerificationProperties | |
| 46 VerificationProperties; | |
| 47 | |
| 48 // The Verify* methods will be forwarded to a delegate implementation if | |
| 49 // provided, otherwise they will fail. A separate delegate it used so that the | |
| 50 // current Verify* implementations are not exposed outside of src/chrome. | |
| 51 class VerifyDelegate { | |
| 52 public: | |
| 53 typedef NetworkingPrivateDelegate::VerificationProperties | |
| 54 VerificationProperties; | |
| 55 typedef NetworkingPrivateDelegate::BoolCallback BoolCallback; | |
| 56 typedef NetworkingPrivateDelegate::StringCallback StringCallback; | |
| 57 typedef NetworkingPrivateDelegate::FailureCallback FailureCallback; | |
| 58 | |
| 59 VerifyDelegate(); | |
| 60 virtual ~VerifyDelegate(); | |
| 61 | |
| 62 virtual void VerifyDestination( | |
| 63 const VerificationProperties& verification_properties, | |
| 64 const BoolCallback& success_callback, | |
| 65 const FailureCallback& failure_callback) = 0; | |
| 66 virtual void VerifyAndEncryptCredentials( | |
| 67 const std::string& guid, | |
| 68 const VerificationProperties& verification_properties, | |
| 69 const StringCallback& success_callback, | |
| 70 const FailureCallback& failure_callback) = 0; | |
| 71 virtual void VerifyAndEncryptData( | |
| 72 const VerificationProperties& verification_properties, | |
| 73 const std::string& data, | |
| 74 const StringCallback& success_callback, | |
| 75 const FailureCallback& failure_callback) = 0; | |
| 76 | |
| 77 private: | |
| 78 DISALLOW_COPY_AND_ASSIGN(VerifyDelegate); | |
| 79 }; | |
| 80 | |
| 81 // If |verify_delegate| is not NULL, the Verify* methods will be forwarded | |
| 82 // to the delegate. Otherwise they will fail with a NotSupported error. | |
| 83 explicit NetworkingPrivateDelegate( | |
| 84 scoped_ptr<VerifyDelegate> verify_delegate); | |
| 85 ~NetworkingPrivateDelegate() override; | |
| 86 | |
| 87 // Asynchronous methods | |
| 88 virtual void GetProperties(const std::string& guid, | |
| 89 const DictionaryCallback& success_callback, | |
| 90 const FailureCallback& failure_callback) = 0; | |
| 91 virtual void GetManagedProperties( | |
| 92 const std::string& guid, | |
| 93 const DictionaryCallback& success_callback, | |
| 94 const FailureCallback& failure_callback) = 0; | |
| 95 virtual void GetState(const std::string& guid, | |
| 96 const DictionaryCallback& success_callback, | |
| 97 const FailureCallback& failure_callback) = 0; | |
| 98 virtual void SetProperties(const std::string& guid, | |
| 99 scoped_ptr<base::DictionaryValue> properties, | |
| 100 const VoidCallback& success_callback, | |
| 101 const FailureCallback& failure_callback) = 0; | |
| 102 virtual void CreateNetwork(bool shared, | |
| 103 scoped_ptr<base::DictionaryValue> properties, | |
| 104 const StringCallback& success_callback, | |
| 105 const FailureCallback& failure_callback) = 0; | |
| 106 virtual void GetNetworks(const std::string& network_type, | |
| 107 bool configured_only, | |
| 108 bool visible_only, | |
| 109 int limit, | |
| 110 const NetworkListCallback& success_callback, | |
| 111 const FailureCallback& failure_callback) = 0; | |
| 112 virtual void StartConnect(const std::string& guid, | |
| 113 const VoidCallback& success_callback, | |
| 114 const FailureCallback& failure_callback) = 0; | |
| 115 virtual void StartDisconnect(const std::string& guid, | |
| 116 const VoidCallback& success_callback, | |
| 117 const FailureCallback& failure_callback) = 0; | |
| 118 virtual void SetWifiTDLSEnabledState( | |
| 119 const std::string& ip_or_mac_address, | |
| 120 bool enabled, | |
| 121 const StringCallback& success_callback, | |
| 122 const FailureCallback& failure_callback) = 0; | |
| 123 virtual void GetWifiTDLSStatus(const std::string& ip_or_mac_address, | |
| 124 const StringCallback& success_callback, | |
| 125 const FailureCallback& failure_callback) = 0; | |
| 126 virtual void GetCaptivePortalStatus( | |
| 127 const std::string& guid, | |
| 128 const StringCallback& success_callback, | |
| 129 const FailureCallback& failure_callback) = 0; | |
| 130 | |
| 131 // Synchronous methods | |
| 132 | |
| 133 // Returns a list of ONC type strings. | |
| 134 virtual scoped_ptr<base::ListValue> GetEnabledNetworkTypes() = 0; | |
| 135 | |
| 136 // Returns true if the ONC network type |type| is enabled. | |
| 137 virtual bool EnableNetworkType(const std::string& type) = 0; | |
| 138 | |
| 139 // Returns true if the ONC network type |type| is disabled. | |
| 140 virtual bool DisableNetworkType(const std::string& type) = 0; | |
| 141 | |
| 142 // Returns true if a scan was requested. It may take many seconds for a scan | |
| 143 // to complete. The scan may or may not trigger API events when complete. | |
| 144 virtual bool RequestScan() = 0; | |
| 145 | |
| 146 // Optional methods for adding a NetworkingPrivateDelegateObserver for | |
| 147 // implementations that require it (non-chromeos). | |
| 148 virtual void AddObserver(NetworkingPrivateDelegateObserver* observer); | |
| 149 virtual void RemoveObserver(NetworkingPrivateDelegateObserver* observer); | |
| 150 | |
| 151 // Verify* methods are forwarded to |verify_delegate_| if not NULL. | |
| 152 void VerifyDestination(const VerificationProperties& verification_properties, | |
| 153 const BoolCallback& success_callback, | |
| 154 const FailureCallback& failure_callback); | |
| 155 void VerifyAndEncryptCredentials( | |
| 156 const std::string& guid, | |
| 157 const VerificationProperties& verification_properties, | |
| 158 const StringCallback& success_callback, | |
| 159 const FailureCallback& failure_callback); | |
| 160 void VerifyAndEncryptData( | |
| 161 const VerificationProperties& verification_properties, | |
| 162 const std::string& data, | |
| 163 const StringCallback& success_callback, | |
| 164 const FailureCallback& failure_callback); | |
| 165 | |
| 166 private: | |
| 167 // Interface for Verify* methods. May be NULL. | |
| 168 scoped_ptr<VerifyDelegate> verify_delegate_; | |
| 169 | |
| 170 DISALLOW_COPY_AND_ASSIGN(NetworkingPrivateDelegate); | |
| 171 }; | |
| 172 | |
| 173 } // namespace extensions | |
| 174 | |
| 175 #endif // CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_D
ELEGATE_H_ | |
| OLD | NEW |