diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-04 21:08:15 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-04 21:08:15 +0000 |
commit | 7b1c0376a17429471d2163c31ed4dbb05a9e819f (patch) | |
tree | 84018eceec973388732f768a6db69e901ea70b7e /chrome | |
parent | 5b54a5c0327ea3ac2c13cff37573ccd4e7f41e57 (diff) | |
download | chromium_src-7b1c0376a17429471d2163c31ed4dbb05a9e819f.zip chromium_src-7b1c0376a17429471d2163c31ed4dbb05a9e819f.tar.gz chromium_src-7b1c0376a17429471d2163c31ed4dbb05a9e819f.tar.bz2 |
Integrate P2P Sockets IPC with chromoting plugin.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/6624020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76964 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/chrome_renderer.gypi | 2 | ||||
-rw-r--r-- | chrome/renderer/p2p/ipc_network_manager.cc | 25 | ||||
-rw-r--r-- | chrome/renderer/p2p/ipc_network_manager.h | 32 |
3 files changed, 59 insertions, 0 deletions
diff --git a/chrome/chrome_renderer.gypi b/chrome/chrome_renderer.gypi index 0b78b88..47d6189 100644 --- a/chrome/chrome_renderer.gypi +++ b/chrome/chrome_renderer.gypi @@ -131,6 +131,8 @@ 'renderer/notification_provider.cc', 'renderer/notification_provider.h', 'renderer/paint_aggregator.cc', + 'renderer/p2p/ipc_network_manager.cc', + 'renderer/p2p/ipc_network_manager.h', 'renderer/p2p/ipc_socket_factory.cc', 'renderer/p2p/ipc_socket_factory.h', 'renderer/p2p/socket_client.cc', diff --git a/chrome/renderer/p2p/ipc_network_manager.cc b/chrome/renderer/p2p/ipc_network_manager.cc new file mode 100644 index 0000000..70e84c6 --- /dev/null +++ b/chrome/renderer/p2p/ipc_network_manager.cc @@ -0,0 +1,25 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/renderer/p2p/ipc_network_manager.h" + +IpcNetworkManager::IpcNetworkManager(P2PSocketDispatcher* socket_dispatcher) + : socket_dispatcher_(socket_dispatcher) { +} + +IpcNetworkManager::~IpcNetworkManager() { +} + +// TODO(sergeyu): Currently this method just adds one fake network in +// the list. This doesn't prevent PortAllocator from allocating ports: +// browser process chooses first IPv4-enabled interface. But this +// approach will not work in case when there is more than one active +// network interface. Implement this properly: get list of networks +// from the browser. +bool IpcNetworkManager::EnumNetworks( + bool include_ignored, std::vector<talk_base::Network*>* networks) { + networks->push_back(new talk_base::Network( + "chrome", "Chrome virtual network", 0, 0)); + return true; +} diff --git a/chrome/renderer/p2p/ipc_network_manager.h b/chrome/renderer/p2p/ipc_network_manager.h new file mode 100644 index 0000000..4775c70 --- /dev/null +++ b/chrome/renderer/p2p/ipc_network_manager.h @@ -0,0 +1,32 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_RENDERER_P2P_IPC_NETWORK_MANAGER_H_ +#define CHROME_RENDERER_P2P_IPC_NETWORK_MANAGER_H_ + +#include <vector> + +#include "base/compiler_specific.h" +#include "third_party/libjingle/source/talk/base/network.h" + +class P2PSocketDispatcher; + +// IpcNetworkManager is a NetworkManager for libjingle that gets a +// list of network interfaces from the browser. +class IpcNetworkManager : public talk_base::NetworkManager { + public: + // Constructor doesn't take ownership of the |socket_dispatcher|. + IpcNetworkManager(P2PSocketDispatcher* socket_dispatcher); + virtual ~IpcNetworkManager(); + + protected: + // Fills the supplied list with all usable networks. + virtual bool EnumNetworks(bool include_ignored, + std::vector<talk_base::Network*>* networks) + OVERRIDE; + + P2PSocketDispatcher* socket_dispatcher_; +}; + +#endif // CHROME_RENDERER_P2P_IPC_NETWORK_MANAGER_H_ |