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 14namespace content { 15class BrowserContext; 16} 17 18namespace extensions { 19 20namespace api { 21namespace networking_private { 22 23struct 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. 31class 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