Commit 83ed59be authored by solb@chromium.org's avatar solb@chromium.org

Add static Create method to LibjingleTransportFactory

This allows the class's easy use in future client implementations.

Review URL: https://chromiumcodereview.appspot.com/17101034

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207942 0039d316-1c4b-4281-b951-d872f2087c98
parent 08665122
...@@ -26,13 +26,13 @@ ...@@ -26,13 +26,13 @@
#include "remoting/host/host_secret.h" #include "remoting/host/host_secret.h"
#include "remoting/host/host_status_observer.h" #include "remoting/host/host_status_observer.h"
#include "remoting/host/it2me_desktop_environment.h" #include "remoting/host/it2me_desktop_environment.h"
#include "remoting/host/network_settings.h"
#include "remoting/host/pin_hash.h" #include "remoting/host/pin_hash.h"
#include "remoting/host/plugin/host_log_handler.h" #include "remoting/host/plugin/host_log_handler.h"
#include "remoting/host/policy_hack/policy_watcher.h" #include "remoting/host/policy_hack/policy_watcher.h"
#include "remoting/host/register_support_host_request.h" #include "remoting/host/register_support_host_request.h"
#include "remoting/host/service_urls.h" #include "remoting/host/service_urls.h"
#include "remoting/host/session_manager_factory.h" #include "remoting/host/session_manager_factory.h"
#include "remoting/jingle_glue/network_settings.h"
#include "remoting/jingle_glue/xmpp_signal_strategy.h" #include "remoting/jingle_glue/xmpp_signal_strategy.h"
#include "remoting/protocol/it2me_host_authenticator_factory.h" #include "remoting/protocol/it2me_host_authenticator_factory.h"
#include "third_party/npapi/bindings/npruntime.h" #include "third_party/npapi/bindings/npruntime.h"
......
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
#include "remoting/host/log_to_server.h" #include "remoting/host/log_to_server.h"
#include "remoting/host/logging.h" #include "remoting/host/logging.h"
#include "remoting/host/me2me_desktop_environment.h" #include "remoting/host/me2me_desktop_environment.h"
#include "remoting/host/network_settings.h"
#include "remoting/host/policy_hack/policy_watcher.h" #include "remoting/host/policy_hack/policy_watcher.h"
#include "remoting/host/service_urls.h" #include "remoting/host/service_urls.h"
#include "remoting/host/session_manager_factory.h" #include "remoting/host/session_manager_factory.h"
...@@ -65,6 +64,7 @@ ...@@ -65,6 +64,7 @@
#include "remoting/host/token_validator_factory_impl.h" #include "remoting/host/token_validator_factory_impl.h"
#include "remoting/host/ui_strings.h" #include "remoting/host/ui_strings.h"
#include "remoting/host/usage_stats_consent.h" #include "remoting/host/usage_stats_consent.h"
#include "remoting/jingle_glue/network_settings.h"
#include "remoting/jingle_glue/xmpp_signal_strategy.h" #include "remoting/jingle_glue/xmpp_signal_strategy.h"
#include "remoting/protocol/me2me_host_authenticator_factory.h" #include "remoting/protocol/me2me_host_authenticator_factory.h"
#include "remoting/protocol/pairing_registry.h" #include "remoting/protocol/pairing_registry.h"
......
...@@ -4,11 +4,11 @@ ...@@ -4,11 +4,11 @@
#include "remoting/host/session_manager_factory.h" #include "remoting/host/session_manager_factory.h"
#include "net/url_request/url_request_context_getter.h" #include "remoting/jingle_glue/chromium_port_allocator.h"
#include "remoting/host/host_port_allocator.h" #include "remoting/jingle_glue/network_settings.h"
#include "remoting/host/network_settings.h"
#include "remoting/protocol/libjingle_transport_factory.h"
#include "remoting/protocol/jingle_session_manager.h" #include "remoting/protocol/jingle_session_manager.h"
#include "remoting/protocol/libjingle_transport_factory.h"
#include "remoting/protocol/session_manager.h"
namespace remoting { namespace remoting {
...@@ -16,20 +16,9 @@ scoped_ptr<protocol::SessionManager> CreateHostSessionManager( ...@@ -16,20 +16,9 @@ scoped_ptr<protocol::SessionManager> CreateHostSessionManager(
const NetworkSettings& network_settings, const NetworkSettings& network_settings,
const scoped_refptr<net::URLRequestContextGetter>& const scoped_refptr<net::URLRequestContextGetter>&
url_request_context_getter) { url_request_context_getter) {
// Use Chrome's network stack to allocate ports for peer-to-peer channels.
scoped_ptr<HostPortAllocator> port_allocator(
HostPortAllocator::Create(url_request_context_getter,
network_settings));
bool incoming_only = network_settings.nat_traversal_mode ==
NetworkSettings::NAT_TRAVERSAL_DISABLED;
// Use libjingle for negotiation of peer-to-peer channels over
// HostPortAllocator allocated ports.
scoped_ptr<protocol::TransportFactory> transport_factory( scoped_ptr<protocol::TransportFactory> transport_factory(
new protocol::LibjingleTransportFactory( protocol::LibjingleTransportFactory::Create(network_settings,
port_allocator.PassAs<cricket::HttpPortAllocatorBase>(), url_request_context_getter));
incoming_only));
// Use the Jingle protocol for channel-negotiation signalling between // Use the Jingle protocol for channel-negotiation signalling between
// peer TransportFactories. // peer TransportFactories.
......
...@@ -7,12 +7,19 @@ ...@@ -7,12 +7,19 @@
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "net/url_request/url_request_context_getter.h" #include "net/url_request/url_request_context_getter.h"
#include "remoting/protocol/session_manager.h"
namespace net {
class URLRequestContextGetter;
} // namespace net
namespace remoting { namespace remoting {
struct NetworkSettings; struct NetworkSettings;
namespace protocol {
class SessionManager;
} // namespace protocol
scoped_ptr<protocol::SessionManager> CreateHostSessionManager( scoped_ptr<protocol::SessionManager> CreateHostSessionManager(
const NetworkSettings& network_settings, const NetworkSettings& network_settings,
const scoped_refptr<net::URLRequestContextGetter>& const scoped_refptr<net::URLRequestContextGetter>&
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "remoting/host/host_port_allocator.h" #include "remoting/jingle_glue/chromium_port_allocator.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/stl_util.h" #include "base/stl_util.h"
...@@ -12,18 +12,18 @@ ...@@ -12,18 +12,18 @@
#include "net/url_request/url_fetcher.h" #include "net/url_request/url_fetcher.h"
#include "net/url_request/url_fetcher_delegate.h" #include "net/url_request/url_fetcher_delegate.h"
#include "net/url_request/url_request_context_getter.h" #include "net/url_request/url_request_context_getter.h"
#include "remoting/host/network_settings.h"
#include "remoting/jingle_glue/chromium_socket_factory.h" #include "remoting/jingle_glue/chromium_socket_factory.h"
#include "remoting/jingle_glue/network_settings.h"
namespace remoting { namespace remoting {
namespace { namespace {
class HostPortAllocatorSession class ChromiumPortAllocatorSession
: public cricket::HttpPortAllocatorSessionBase, : public cricket::HttpPortAllocatorSessionBase,
public net::URLFetcherDelegate { public net::URLFetcherDelegate {
public: public:
HostPortAllocatorSession( ChromiumPortAllocatorSession(
cricket::HttpPortAllocatorBase* allocator, cricket::HttpPortAllocatorBase* allocator,
const std::string& content_name, const std::string& content_name,
int component, int component,
...@@ -33,7 +33,7 @@ class HostPortAllocatorSession ...@@ -33,7 +33,7 @@ class HostPortAllocatorSession
const std::vector<std::string>& relay_hosts, const std::vector<std::string>& relay_hosts,
const std::string& relay, const std::string& relay,
const scoped_refptr<net::URLRequestContextGetter>& url_context); const scoped_refptr<net::URLRequestContextGetter>& url_context);
virtual ~HostPortAllocatorSession(); virtual ~ChromiumPortAllocatorSession();
// cricket::HttpPortAllocatorBase overrides. // cricket::HttpPortAllocatorBase overrides.
virtual void ConfigReady(cricket::PortConfiguration* config) OVERRIDE; virtual void ConfigReady(cricket::PortConfiguration* config) OVERRIDE;
...@@ -46,10 +46,10 @@ class HostPortAllocatorSession ...@@ -46,10 +46,10 @@ class HostPortAllocatorSession
scoped_refptr<net::URLRequestContextGetter> url_context_; scoped_refptr<net::URLRequestContextGetter> url_context_;
std::set<const net::URLFetcher*> url_fetchers_; std::set<const net::URLFetcher*> url_fetchers_;
DISALLOW_COPY_AND_ASSIGN(HostPortAllocatorSession); DISALLOW_COPY_AND_ASSIGN(ChromiumPortAllocatorSession);
}; };
HostPortAllocatorSession::HostPortAllocatorSession( ChromiumPortAllocatorSession::ChromiumPortAllocatorSession(
cricket::HttpPortAllocatorBase* allocator, cricket::HttpPortAllocatorBase* allocator,
const std::string& content_name, const std::string& content_name,
int component, int component,
...@@ -70,11 +70,12 @@ HostPortAllocatorSession::HostPortAllocatorSession( ...@@ -70,11 +70,12 @@ HostPortAllocatorSession::HostPortAllocatorSession(
std::string()), std::string()),
url_context_(url_context) {} url_context_(url_context) {}
HostPortAllocatorSession::~HostPortAllocatorSession() { ChromiumPortAllocatorSession::~ChromiumPortAllocatorSession() {
STLDeleteElements(&url_fetchers_); STLDeleteElements(&url_fetchers_);
} }
void HostPortAllocatorSession::ConfigReady(cricket::PortConfiguration* config) { void ChromiumPortAllocatorSession::ConfigReady(
cricket::PortConfiguration* config) {
// Filter out non-UDP relay ports, so that we don't try using TCP. // Filter out non-UDP relay ports, so that we don't try using TCP.
for (cricket::PortConfiguration::RelayList::iterator relay = for (cricket::PortConfiguration::RelayList::iterator relay =
config->relays.begin(); relay != config->relays.end(); ++relay) { config->relays.begin(); relay != config->relays.end(); ++relay) {
...@@ -90,7 +91,8 @@ void HostPortAllocatorSession::ConfigReady(cricket::PortConfiguration* config) { ...@@ -90,7 +91,8 @@ void HostPortAllocatorSession::ConfigReady(cricket::PortConfiguration* config) {
cricket::BasicPortAllocatorSession::ConfigReady(config); cricket::BasicPortAllocatorSession::ConfigReady(config);
} }
void HostPortAllocatorSession::SendSessionRequest(const std::string& host, void ChromiumPortAllocatorSession::SendSessionRequest(
const std::string& host,
int port) { int port) {
GURL url("https://" + host + ":" + base::IntToString(port) + GURL url("https://" + host + ":" + base::IntToString(port) +
GetSessionRequestUrl() + "&sn=1"); GetSessionRequestUrl() + "&sn=1");
...@@ -105,7 +107,7 @@ void HostPortAllocatorSession::SendSessionRequest(const std::string& host, ...@@ -105,7 +107,7 @@ void HostPortAllocatorSession::SendSessionRequest(const std::string& host,
url_fetchers_.insert(url_fetcher.release()); url_fetchers_.insert(url_fetcher.release());
} }
void HostPortAllocatorSession::OnURLFetchComplete( void ChromiumPortAllocatorSession::OnURLFetchComplete(
const net::URLFetcher* source) { const net::URLFetcher* source) {
int response_code = source->GetResponseCode(); int response_code = source->GetResponseCode();
std::string response; std::string response;
...@@ -127,15 +129,15 @@ void HostPortAllocatorSession::OnURLFetchComplete( ...@@ -127,15 +129,15 @@ void HostPortAllocatorSession::OnURLFetchComplete(
} // namespace } // namespace
// static // static
scoped_ptr<HostPortAllocator> HostPortAllocator::Create( scoped_ptr<ChromiumPortAllocator> ChromiumPortAllocator::Create(
const scoped_refptr<net::URLRequestContextGetter>& url_context, const scoped_refptr<net::URLRequestContextGetter>& url_context,
const NetworkSettings& network_settings) { const NetworkSettings& network_settings) {
scoped_ptr<talk_base::NetworkManager> network_manager( scoped_ptr<talk_base::NetworkManager> network_manager(
new talk_base::BasicNetworkManager()); new talk_base::BasicNetworkManager());
scoped_ptr<talk_base::PacketSocketFactory> socket_factory( scoped_ptr<talk_base::PacketSocketFactory> socket_factory(
new remoting::ChromiumPacketSocketFactory()); new remoting::ChromiumPacketSocketFactory());
scoped_ptr<HostPortAllocator> result( scoped_ptr<ChromiumPortAllocator> result(
new HostPortAllocator(url_context, network_manager.Pass(), new ChromiumPortAllocator(url_context, network_manager.Pass(),
socket_factory.Pass())); socket_factory.Pass()));
// We always use PseudoTcp to provide a reliable channel. It // We always use PseudoTcp to provide a reliable channel. It
...@@ -158,7 +160,7 @@ scoped_ptr<HostPortAllocator> HostPortAllocator::Create( ...@@ -158,7 +160,7 @@ scoped_ptr<HostPortAllocator> HostPortAllocator::Create(
return result.Pass(); return result.Pass();
} }
HostPortAllocator::HostPortAllocator( ChromiumPortAllocator::ChromiumPortAllocator(
const scoped_refptr<net::URLRequestContextGetter>& url_context, const scoped_refptr<net::URLRequestContextGetter>& url_context,
scoped_ptr<talk_base::NetworkManager> network_manager, scoped_ptr<talk_base::NetworkManager> network_manager,
scoped_ptr<talk_base::PacketSocketFactory> socket_factory) scoped_ptr<talk_base::PacketSocketFactory> socket_factory)
...@@ -169,15 +171,15 @@ HostPortAllocator::HostPortAllocator( ...@@ -169,15 +171,15 @@ HostPortAllocator::HostPortAllocator(
network_manager_(network_manager.Pass()), network_manager_(network_manager.Pass()),
socket_factory_(socket_factory.Pass()) {} socket_factory_(socket_factory.Pass()) {}
HostPortAllocator::~HostPortAllocator() { ChromiumPortAllocator::~ChromiumPortAllocator() {
} }
cricket::PortAllocatorSession* HostPortAllocator::CreateSessionInternal( cricket::PortAllocatorSession* ChromiumPortAllocator::CreateSessionInternal(
const std::string& content_name, const std::string& content_name,
int component, int component,
const std::string& ice_username_fragment, const std::string& ice_username_fragment,
const std::string& ice_password) { const std::string& ice_password) {
return new HostPortAllocatorSession( return new ChromiumPortAllocatorSession(
this, content_name, component, ice_username_fragment, ice_password, this, content_name, component, ice_username_fragment, ice_password,
stun_hosts(), relay_hosts(), relay_token(), url_context_); stun_hosts(), relay_hosts(), relay_token(), url_context_);
} }
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef REMOTING_HOST_HOST_PORT_ALLOCATOR_H_ #ifndef REMOTING_JINGLE_GLUE_CHROMIUM_PORT_ALLOCATOR_H_
#define REMOTING_HOST_HOST_PORT_ALLOCATOR_H_ #define REMOTING_JINGLE_GLUE_CHROMIUM_PORT_ALLOCATOR_H_
#include <set> #include <set>
...@@ -19,18 +19,16 @@ namespace remoting { ...@@ -19,18 +19,16 @@ namespace remoting {
struct NetworkSettings; struct NetworkSettings;
// An implementation of cricket::PortAllocator for libjingle that is // An implementation of cricket::PortAllocator for libjingle that
// used by the remoting host. The main difference from // uses Chromium's network stack and configures itself according
// cricket::HttpPortAllocator is that it uses Chromium's HTTP stack
// when creating relay sessions. It also configures itself according
// to the specified NetworkSettings. // to the specified NetworkSettings.
class HostPortAllocator : public cricket::HttpPortAllocatorBase { class ChromiumPortAllocator : public cricket::HttpPortAllocatorBase {
public: public:
static scoped_ptr<HostPortAllocator> Create( static scoped_ptr<ChromiumPortAllocator> Create(
const scoped_refptr<net::URLRequestContextGetter>& url_context, const scoped_refptr<net::URLRequestContextGetter>& url_context,
const NetworkSettings& network_settings); const NetworkSettings& network_settings);
virtual ~HostPortAllocator(); virtual ~ChromiumPortAllocator();
// cricket::HttpPortAllocatorBase overrides. // cricket::HttpPortAllocatorBase overrides.
virtual cricket::PortAllocatorSession* CreateSessionInternal( virtual cricket::PortAllocatorSession* CreateSessionInternal(
...@@ -40,7 +38,7 @@ class HostPortAllocator : public cricket::HttpPortAllocatorBase { ...@@ -40,7 +38,7 @@ class HostPortAllocator : public cricket::HttpPortAllocatorBase {
const std::string& ice_password) OVERRIDE; const std::string& ice_password) OVERRIDE;
private: private:
HostPortAllocator( ChromiumPortAllocator(
const scoped_refptr<net::URLRequestContextGetter>& url_context, const scoped_refptr<net::URLRequestContextGetter>& url_context,
scoped_ptr<talk_base::NetworkManager> network_manager, scoped_ptr<talk_base::NetworkManager> network_manager,
scoped_ptr<talk_base::PacketSocketFactory> socket_factory); scoped_ptr<talk_base::PacketSocketFactory> socket_factory);
...@@ -49,7 +47,7 @@ class HostPortAllocator : public cricket::HttpPortAllocatorBase { ...@@ -49,7 +47,7 @@ class HostPortAllocator : public cricket::HttpPortAllocatorBase {
scoped_ptr<talk_base::NetworkManager> network_manager_; scoped_ptr<talk_base::NetworkManager> network_manager_;
scoped_ptr<talk_base::PacketSocketFactory> socket_factory_; scoped_ptr<talk_base::PacketSocketFactory> socket_factory_;
DISALLOW_COPY_AND_ASSIGN(HostPortAllocator); DISALLOW_COPY_AND_ASSIGN(ChromiumPortAllocator);
}; };
} // namespace remoting } // namespace remoting
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef REMOTING_HOST_NETWORK_SETTINGS_H_ #ifndef REMOTING_JINGLE_GLUE_NETWORK_SETTINGS_H_
#define REMOTING_HOST_NETWORK_SETTINGS_H_ #define REMOTING_JINGLE_GLUE_NETWORK_SETTINGS_H_
namespace remoting { namespace remoting {
......
...@@ -13,9 +13,11 @@ ...@@ -13,9 +13,11 @@
#include "jingle/glue/utils.h" #include "jingle/glue/utils.h"
#include "net/base/net_errors.h" #include "net/base/net_errors.h"
#include "remoting/base/constants.h" #include "remoting/base/constants.h"
#include "remoting/jingle_glue/chromium_port_allocator.h"
#include "remoting/jingle_glue/chromium_socket_factory.h"
#include "remoting/jingle_glue/network_settings.h"
#include "remoting/protocol/channel_authenticator.h" #include "remoting/protocol/channel_authenticator.h"
#include "remoting/protocol/transport_config.h" #include "remoting/protocol/transport_config.h"
#include "remoting/jingle_glue/chromium_socket_factory.h"
#include "third_party/libjingle/source/talk/base/network.h" #include "third_party/libjingle/source/talk/base/network.h"
#include "third_party/libjingle/source/talk/p2p/base/constants.h" #include "third_party/libjingle/source/talk/p2p/base/constants.h"
#include "third_party/libjingle/source/talk/p2p/base/p2ptransportchannel.h" #include "third_party/libjingle/source/talk/p2p/base/p2ptransportchannel.h"
...@@ -361,6 +363,27 @@ void LibjingleStreamTransport::NotifyConnectFailed() { ...@@ -361,6 +363,27 @@ void LibjingleStreamTransport::NotifyConnectFailed() {
} // namespace } // namespace
scoped_ptr<LibjingleTransportFactory> LibjingleTransportFactory::Create(
const NetworkSettings& network_settings,
const scoped_refptr<net::URLRequestContextGetter>&
url_request_context_getter) {
// Use Chrome's network stack to allocate ports for peer-to-peer channels.
scoped_ptr<ChromiumPortAllocator> port_allocator(
ChromiumPortAllocator::Create(url_request_context_getter,
network_settings));
bool incoming_only = network_settings.nat_traversal_mode ==
NetworkSettings::NAT_TRAVERSAL_DISABLED;
// Use libjingle for negotiation of peer-to-peer channels over
// NativePortAllocator allocated ports.
scoped_ptr<LibjingleTransportFactory> transport_factory(
new LibjingleTransportFactory(
port_allocator.PassAs<cricket::HttpPortAllocatorBase>(),
incoming_only));
return transport_factory.Pass();
}
LibjingleTransportFactory::LibjingleTransportFactory( LibjingleTransportFactory::LibjingleTransportFactory(
scoped_ptr<cricket::HttpPortAllocatorBase> port_allocator, scoped_ptr<cricket::HttpPortAllocatorBase> port_allocator,
bool incoming_only) bool incoming_only)
......
...@@ -12,16 +12,30 @@ class HttpPortAllocatorBase; ...@@ -12,16 +12,30 @@ class HttpPortAllocatorBase;
class PortAllocator; class PortAllocator;
} // namespace cricket } // namespace cricket
namespace net {
class URLRequestContextGetter;
} // namespace net
namespace talk_base { namespace talk_base {
class NetworkManager; class NetworkManager;
class PacketSocketFactory; class PacketSocketFactory;
} // namespace talk_base } // namespace talk_base
namespace remoting { namespace remoting {
struct NetworkSettings;
namespace protocol { namespace protocol {
class LibjingleTransportFactory : public TransportFactory { class LibjingleTransportFactory : public TransportFactory {
public: public:
// Creates an instance of the class using ChromiumPortAllocator.
// Must be called from an IO thread.
static scoped_ptr<LibjingleTransportFactory> Create(
const NetworkSettings& network_settings,
const scoped_refptr<net::URLRequestContextGetter>&
url_request_context_getter);
// Need to use cricket::HttpPortAllocatorBase pointer for the // Need to use cricket::HttpPortAllocatorBase pointer for the
// |port_allocator|, so that it is possible to configure // |port_allocator|, so that it is possible to configure
// |port_allocator| with STUN/Relay addresses. // |port_allocator| with STUN/Relay addresses.
......
...@@ -363,8 +363,6 @@ ...@@ -363,8 +363,6 @@
'host/host_config.cc', 'host/host_config.cc',
'host/host_config.h', 'host/host_config.h',
'host/host_exit_codes.h', 'host/host_exit_codes.h',
'host/host_port_allocator.cc',
'host/host_port_allocator.h',
'host/host_secret.cc', 'host/host_secret.cc',
'host/host_secret.h', 'host/host_secret.h',
'host/host_status_monitor.h', 'host/host_status_monitor.h',
...@@ -415,7 +413,6 @@ ...@@ -415,7 +413,6 @@
'host/me2me_desktop_environment.h', 'host/me2me_desktop_environment.h',
'host/mouse_clamping_filter.cc', 'host/mouse_clamping_filter.cc',
'host/mouse_clamping_filter.h', 'host/mouse_clamping_filter.h',
'host/network_settings.h',
'host/pam_authorization_factory_posix.cc', 'host/pam_authorization_factory_posix.cc',
'host/pam_authorization_factory_posix.h', 'host/pam_authorization_factory_posix.h',
'host/pin_hash.cc', 'host/pin_hash.cc',
...@@ -2424,12 +2421,15 @@ ...@@ -2424,12 +2421,15 @@
'../third_party/libjingle/libjingle.gyp:libjingle', '../third_party/libjingle/libjingle.gyp:libjingle',
], ],
'sources': [ 'sources': [
'jingle_glue/chromium_port_allocator.cc',
'jingle_glue/chromium_port_allocator.h',
'jingle_glue/chromium_socket_factory.cc', 'jingle_glue/chromium_socket_factory.cc',
'jingle_glue/chromium_socket_factory.h', 'jingle_glue/chromium_socket_factory.h',
'jingle_glue/iq_sender.cc', 'jingle_glue/iq_sender.cc',
'jingle_glue/iq_sender.h', 'jingle_glue/iq_sender.h',
'jingle_glue/jingle_info_request.cc', 'jingle_glue/jingle_info_request.cc',
'jingle_glue/jingle_info_request.h', 'jingle_glue/jingle_info_request.h',
'jingle_glue/network_settings.h',
'jingle_glue/signal_strategy.h', 'jingle_glue/signal_strategy.h',
'jingle_glue/xmpp_signal_strategy.cc', 'jingle_glue/xmpp_signal_strategy.cc',
'jingle_glue/xmpp_signal_strategy.h', 'jingle_glue/xmpp_signal_strategy.h',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment