1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef CHROME_BROWSER_EXTENSIONS_API_SYSTEM_NETWORK_SYSTEM_NETWORK_API_H_ 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define CHROME_BROWSER_EXTENSIONS_API_SYSTEM_NETWORK_SYSTEM_NETWORK_API_H_ 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/common/extensions/api/system_network.h" 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/browser/extension_function.h" 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "net/base/net_util.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace extensions { 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace api { 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class SystemNetworkGetNetworkInterfacesFunction 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) : public AsyncExtensionFunction { 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DECLARE_EXTENSION_FUNCTION("system.network.getNetworkInterfaces", 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) SYSTEM_NETWORK_GETNETWORKINTERFACES) 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) SystemNetworkGetNetworkInterfacesFunction(); 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) protected: 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual ~SystemNetworkGetNetworkInterfacesFunction(); 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // AsyncApiFunction: 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual bool RunAsync() OVERRIDE; 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private: 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void GetListOnFileThread(); 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void HandleGetListError(); 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void SendResponseOnUIThread(const net::NetworkInterfaceList& interface_list); 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace api 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace extensions 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif // CHROME_BROWSER_EXTENSIONS_API_SYSTEM_NETWORK_SYSTEM_NETWORK_API_H_ 39