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.
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_
10 #include "base/callback.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "base/values.h"
18 namespace extensions {
21 namespace networking_private {
23 struct VerificationProperties;
25 } // networking_private
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 {
33 typedef base::Callback<void(scoped_ptr<base::DictionaryValue>)>
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;
43 static NetworkingPrivateDelegate* GetForBrowserContext(
44 content::BrowserContext* browser_context);
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,
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,
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;
105 // Synchronous methods
107 // Returns a list of ONC type strings.
108 virtual scoped_ptr<base::ListValue> GetEnabledNetworkTypes() = 0;
110 // Returns true if the ONC network type |type| is enabled.
111 virtual bool EnableNetworkType(const std::string& type) = 0;
113 // Returns true if the ONC network type |type| is disabled.
114 virtual bool DisableNetworkType(const std::string& type) = 0;
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;
121 virtual ~NetworkingPrivateDelegate() {}
124 } // namespace extensions
126 #endif // CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_