1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <string> 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/callback.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/memory/scoped_ptr.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/values.h" 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace content { 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass BrowserContext; 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace extensions { 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace api { 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace networking_private { 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstruct VerificationProperties; 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // networking_private 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // api 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Base class for platform dependent networkingPrivate API implementations. 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// All inputs and results for this class use ONC values. See 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// networking_private.json for descriptions of the expected inputs and results. 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass NetworkingPrivateDelegate { 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch typedef base::Callback<void(scoped_ptr<base::DictionaryValue>)> 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DictionaryCallback; 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch typedef base::Callback<void()> VoidCallback; 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch typedef base::Callback<void(bool)> BoolCallback; 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch typedef base::Callback<void(const std::string&)> StringCallback; 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch typedef base::Callback<void(scoped_ptr<base::ListValue>)> NetworkListCallback; 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch typedef base::Callback<void(const std::string&)> FailureCallback; 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch typedef api::networking_private::VerificationProperties 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch VerificationProperties; 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static NetworkingPrivateDelegate* GetForBrowserContext( 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::BrowserContext* browser_context); 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Asynchronous methods 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void GetProperties(const std::string& guid, 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const DictionaryCallback& success_callback, 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void GetManagedProperties( 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& guid, 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const DictionaryCallback& success_callback, 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void GetState(const std::string& guid, 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const DictionaryCallback& success_callback, 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void SetProperties(const std::string& guid, 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch scoped_ptr<base::DictionaryValue> properties, 59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const VoidCallback& success_callback, 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void CreateNetwork(bool shared, 62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch scoped_ptr<base::DictionaryValue> properties, 63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const StringCallback& success_callback, 64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void GetNetworks(const std::string& network_type, 66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool configured_only, 67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool visible_only, 68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch int limit, 69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const NetworkListCallback& success_callback, 70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void StartConnect(const std::string& guid, 72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const VoidCallback& success_callback, 73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void StartDisconnect(const std::string& guid, 75116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const VoidCallback& success_callback, 76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void VerifyDestination( 78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const VerificationProperties& verification_properties, 79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const BoolCallback& success_callback, 80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void VerifyAndEncryptCredentials( 82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& guid, 83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const VerificationProperties& verification_properties, 84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const StringCallback& success_callback, 85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void VerifyAndEncryptData( 87116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const VerificationProperties& verification_properties, 88116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& data, 89116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const StringCallback& success_callback, 90116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 91116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void SetWifiTDLSEnabledState( 92116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& ip_or_mac_address, 93116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool enabled, 94116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const StringCallback& success_callback, 95116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 96116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void GetWifiTDLSStatus( 97116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& ip_or_mac_address, 98116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const StringCallback& success_callback, 99116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 100116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void GetCaptivePortalStatus( 101116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& guid, 102116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const StringCallback& success_callback, 103116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const FailureCallback& failure_callback) = 0; 104116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 105116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Synchronous methods 106116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 107116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Returns a list of ONC type strings. 108116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual scoped_ptr<base::ListValue> GetEnabledNetworkTypes() = 0; 109116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 110116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Returns true if the ONC network type |type| is enabled. 111116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual bool EnableNetworkType(const std::string& type) = 0; 112116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 113116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Returns true if the ONC network type |type| is disabled. 114116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual bool DisableNetworkType(const std::string& type) = 0; 115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 116116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Returns true if a scan was requested. It may take many seconds for a scan 117116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // to complete. The scan may or may not trigger API events when complete. 118116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual bool RequestScan() = 0; 119116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 120116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch protected: 121116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~NetworkingPrivateDelegate() {} 122116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 123116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 124116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace extensions 125116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 126116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // CHROME_BROWSER_EXTENSIONS_API_NETWORKING_PRIVATE_NETWORKING_PRIVATE_DELEGATE_H_ 127