Remove AsyncHttpRequest, AutoPortAllocator, ConnectivityChecker, and HttpPortAllocator.

BUG=webrtc:4149, webrtc:4456
R=deadbeef@webrtc.org, pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1311353011 .

Cr-Commit-Position: refs/heads/master@{#9857}
diff --git a/webrtc/base/BUILD.gn b/webrtc/base/BUILD.gn
index 475252c..027fa45 100644
--- a/webrtc/base/BUILD.gn
+++ b/webrtc/base/BUILD.gn
@@ -197,8 +197,6 @@
     "arraysize.h",
     "asyncfile.cc",
     "asyncfile.h",
-    "asynchttprequest.cc",
-    "asynchttprequest.h",
     "asyncinvoker-inl.h",
     "asyncinvoker.cc",
     "asyncinvoker.h",
diff --git a/webrtc/base/asynchttprequest.cc b/webrtc/base/asynchttprequest.cc
index bdca585..310d82e 100644
--- a/webrtc/base/asynchttprequest.cc
+++ b/webrtc/base/asynchttprequest.cc
@@ -1,116 +1,2 @@
-/*
- *  Copyright 2004 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "webrtc/base/asynchttprequest.h"
-
-namespace rtc {
-
-enum {
-  MSG_TIMEOUT = SignalThread::ST_MSG_FIRST_AVAILABLE,
-  MSG_LAUNCH_REQUEST
-};
-static const int kDefaultHTTPTimeout = 30 * 1000;  // 30 sec
-
-///////////////////////////////////////////////////////////////////////////////
-// AsyncHttpRequest
-///////////////////////////////////////////////////////////////////////////////
-
-AsyncHttpRequest::AsyncHttpRequest(const std::string &user_agent)
-    : start_delay_(0),
-      firewall_(NULL),
-      port_(80),
-      secure_(false),
-      timeout_(kDefaultHTTPTimeout),
-      fail_redirect_(false),
-      factory_(Thread::Current()->socketserver(), user_agent),
-      pool_(&factory_),
-      client_(user_agent.c_str(), &pool_),
-      error_(HE_NONE) {
-  client_.SignalHttpClientComplete.connect(this,
-      &AsyncHttpRequest::OnComplete);
-}
-
-AsyncHttpRequest::~AsyncHttpRequest() {
-}
-
-void AsyncHttpRequest::OnWorkStart() {
-  if (start_delay_ <= 0) {
-    LaunchRequest();
-  } else {
-    Thread::Current()->PostDelayed(start_delay_, this, MSG_LAUNCH_REQUEST);
-  }
-}
-
-void AsyncHttpRequest::OnWorkStop() {
-  // worker is already quitting, no need to explicitly quit
-  LOG(LS_INFO) << "HttpRequest cancelled";
-}
-
-void AsyncHttpRequest::OnComplete(HttpClient* client, HttpErrorType error) {
-  Thread::Current()->Clear(this, MSG_TIMEOUT);
-
-  set_error(error);
-  if (!error) {
-    LOG(LS_INFO) << "HttpRequest completed successfully";
-
-    std::string value;
-    if (client_.response().hasHeader(HH_LOCATION, &value)) {
-      response_redirect_ = value.c_str();
-    }
-  } else {
-    LOG(LS_INFO) << "HttpRequest completed with error: " << error;
-  }
-
-  worker()->Quit();
-}
-
-void AsyncHttpRequest::OnMessage(Message* message) {
-  switch (message->message_id) {
-   case MSG_TIMEOUT:
-    LOG(LS_INFO) << "HttpRequest timed out";
-    client_.reset();
-    worker()->Quit();
-    break;
-   case MSG_LAUNCH_REQUEST:
-    LaunchRequest();
-    break;
-   default:
-    SignalThread::OnMessage(message);
-    break;
-  }
-}
-
-void AsyncHttpRequest::DoWork() {
-  // Do nothing while we wait for the request to finish. We only do this so
-  // that we can be a SignalThread; in the future this class should not be
-  // a SignalThread, since it does not need to spawn a new thread.
-  Thread::Current()->ProcessMessages(Thread::kForever);
-}
-
-void AsyncHttpRequest::LaunchRequest() {
-  factory_.SetProxy(proxy_);
-  if (secure_)
-    factory_.UseSSL(host_.c_str());
-
-  bool transparent_proxy = (port_ == 80) &&
-           ((proxy_.type == PROXY_HTTPS) || (proxy_.type == PROXY_UNKNOWN));
-  if (transparent_proxy) {
-    client_.set_proxy(proxy_);
-  }
-  client_.set_fail_redirect(fail_redirect_);
-  client_.set_server(SocketAddress(host_, port_));
-
-  LOG(LS_INFO) << "HttpRequest start: " << host_ + client_.request().path;
-
-  Thread::Current()->PostDelayed(timeout_, this, MSG_TIMEOUT);
-  client_.start();
-}
-
-}  // namespace rtc
+// TODO(pthatcher): Remove this file once chromium's GYP file doesn't
+// refer to it.
diff --git a/webrtc/base/asynchttprequest.h b/webrtc/base/asynchttprequest.h
index b4bbf25..310d82e 100644
--- a/webrtc/base/asynchttprequest.h
+++ b/webrtc/base/asynchttprequest.h
@@ -1,104 +1,2 @@
-/*
- *  Copyright 2004 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef WEBRTC_BASE_ASYNCHTTPREQUEST_H_
-#define WEBRTC_BASE_ASYNCHTTPREQUEST_H_
-
-#include <string>
-#include "webrtc/base/event.h"
-#include "webrtc/base/httpclient.h"
-#include "webrtc/base/signalthread.h"
-#include "webrtc/base/socketpool.h"
-#include "webrtc/base/sslsocketfactory.h"
-
-namespace rtc {
-
-class FirewallManager;
-
-///////////////////////////////////////////////////////////////////////////////
-// AsyncHttpRequest
-// Performs an HTTP request on a background thread.  Notifies on the foreground
-// thread once the request is done (successfully or unsuccessfully).
-///////////////////////////////////////////////////////////////////////////////
-
-class AsyncHttpRequest : public SignalThread {
- public:
-  explicit AsyncHttpRequest(const std::string &user_agent);
-  ~AsyncHttpRequest() override;
-
-  // If start_delay is less than or equal to zero, this starts immediately.
-  // Start_delay defaults to zero.
-  int start_delay() const { return start_delay_; }
-  void set_start_delay(int delay) { start_delay_ = delay; }
-
-  const ProxyInfo& proxy() const { return proxy_; }
-  void set_proxy(const ProxyInfo& proxy) {
-    proxy_ = proxy;
-  }
-  void set_firewall(FirewallManager * firewall) {
-    firewall_ = firewall;
-  }
-
-  // The DNS name of the host to connect to.
-  const std::string& host() { return host_; }
-  void set_host(const std::string& host) { host_ = host; }
-
-  // The port to connect to on the target host.
-  int port() { return port_; }
-  void set_port(int port) { port_ = port; }
-
-  // Whether the request should use SSL.
-  bool secure() { return secure_; }
-  void set_secure(bool secure) { secure_ = secure; }
-
-  // Time to wait on the download, in ms.
-  int timeout() { return timeout_; }
-  void set_timeout(int timeout) { timeout_ = timeout; }
-
-  // Fail redirects to allow analysis of redirect urls, etc.
-  bool fail_redirect() const { return fail_redirect_; }
-  void set_fail_redirect(bool redirect) { fail_redirect_ = redirect; }
-
-  // Returns the redirect when redirection occurs
-  const std::string& response_redirect() { return response_redirect_; }
-
-  HttpRequestData& request() { return client_.request(); }
-  HttpResponseData& response() { return client_.response(); }
-  HttpErrorType error() { return error_; }
-
- protected:
-  void set_error(HttpErrorType error) { error_ = error; }
-  void OnWorkStart() override;
-  void OnWorkStop() override;
-  void OnComplete(HttpClient* client, HttpErrorType error);
-  void OnMessage(Message* message) override;
-  void DoWork() override;
-
- private:
-  void LaunchRequest();
-
-  int start_delay_;
-  ProxyInfo proxy_;
-  FirewallManager* firewall_;
-  std::string host_;
-  int port_;
-  bool secure_;
-  int timeout_;
-  bool fail_redirect_;
-  SslSocketFactory factory_;
-  ReuseSocketPool pool_;
-  HttpClient client_;
-  HttpErrorType error_;
-  std::string response_redirect_;
-};
-
-}  // namespace rtc
-
-#endif  // WEBRTC_BASE_ASYNCHTTPREQUEST_H_
+// TODO(pthatcher): Remove this file once chromium's GYP file doesn't
+// refer to it.
diff --git a/webrtc/base/asynchttprequest_unittest.cc b/webrtc/base/asynchttprequest_unittest.cc
deleted file mode 100644
index ddfad90..0000000
--- a/webrtc/base/asynchttprequest_unittest.cc
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- *  Copyright 2004 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include <string>
-#include "webrtc/base/asynchttprequest.h"
-#include "webrtc/base/gunit.h"
-#include "webrtc/base/httpserver.h"
-#include "webrtc/base/socketstream.h"
-#include "webrtc/base/thread.h"
-#include "webrtc/test/testsupport/gtest_disable.h"
-
-namespace rtc {
-
-static const SocketAddress kServerAddr("127.0.0.1", 0);
-static const SocketAddress kServerHostnameAddr("localhost", 0);
-static const char kServerGetPath[] = "/get";
-static const char kServerPostPath[] = "/post";
-static const char kServerResponse[] = "This is a test";
-
-class TestHttpServer : public HttpServer, public sigslot::has_slots<> {
- public:
-  TestHttpServer(Thread* thread, const SocketAddress& addr) :
-      socket_(thread->socketserver()->CreateAsyncSocket(addr.family(),
-                                                        SOCK_STREAM)) {
-    socket_->Bind(addr);
-    socket_->Listen(5);
-    socket_->SignalReadEvent.connect(this, &TestHttpServer::OnAccept);
-  }
-
-  SocketAddress address() const { return socket_->GetLocalAddress(); }
-  void Close() const { socket_->Close(); }
-
- private:
-  void OnAccept(AsyncSocket* socket) {
-    AsyncSocket* new_socket = socket_->Accept(NULL);
-    if (new_socket) {
-      HandleConnection(new SocketStream(new_socket));
-    }
-  }
-  rtc::scoped_ptr<AsyncSocket> socket_;
-};
-
-class AsyncHttpRequestTest : public testing::Test,
-                             public sigslot::has_slots<> {
- public:
-  AsyncHttpRequestTest()
-      : started_(false),
-        done_(false),
-        server_(Thread::Current(), kServerAddr) {
-    server_.SignalHttpRequest.connect(this, &AsyncHttpRequestTest::OnRequest);
-  }
-
-  bool started() const { return started_; }
-  bool done() const { return done_; }
-
-  AsyncHttpRequest* CreateGetRequest(const std::string& host, int port,
-                                     const std::string& path) {
-    rtc::AsyncHttpRequest* request =
-        new rtc::AsyncHttpRequest("unittest");
-    request->SignalWorkDone.connect(this,
-        &AsyncHttpRequestTest::OnRequestDone);
-    request->request().verb = rtc::HV_GET;
-    request->set_host(host);
-    request->set_port(port);
-    request->request().path = path;
-    request->response().document.reset(new MemoryStream());
-    return request;
-  }
-  AsyncHttpRequest* CreatePostRequest(const std::string& host, int port,
-                                      const std::string& path,
-                                      const std::string content_type,
-                                      StreamInterface* content) {
-    rtc::AsyncHttpRequest* request =
-        new rtc::AsyncHttpRequest("unittest");
-    request->SignalWorkDone.connect(this,
-        &AsyncHttpRequestTest::OnRequestDone);
-    request->request().verb = rtc::HV_POST;
-    request->set_host(host);
-    request->set_port(port);
-    request->request().path = path;
-    request->request().setContent(content_type, content);
-    request->response().document.reset(new MemoryStream());
-    return request;
-  }
-
-  const TestHttpServer& server() const { return server_; }
-
- protected:
-  void OnRequest(HttpServer* server, HttpServerTransaction* t) {
-    started_ = true;
-
-    if (t->request.path == kServerGetPath) {
-      t->response.set_success("text/plain", new MemoryStream(kServerResponse));
-    } else if (t->request.path == kServerPostPath) {
-      // reverse the data and reply
-      size_t size;
-      StreamInterface* in = t->request.document.get();
-      StreamInterface* out = new MemoryStream();
-      in->GetSize(&size);
-      for (size_t i = 0; i < size; ++i) {
-        char ch;
-        in->SetPosition(size - i - 1);
-        in->Read(&ch, 1, NULL, NULL);
-        out->Write(&ch, 1, NULL, NULL);
-      }
-      out->Rewind();
-      t->response.set_success("text/plain", out);
-    } else {
-      t->response.set_error(404);
-    }
-    server_.Respond(t);
-  }
-  void OnRequestDone(SignalThread* thread) {
-    done_ = true;
-  }
-
- private:
-  bool started_;
-  bool done_;
-  TestHttpServer server_;
-};
-
-TEST_F(AsyncHttpRequestTest, TestGetSuccess) {
-  AsyncHttpRequest* req = CreateGetRequest(
-      kServerHostnameAddr.hostname(), server().address().port(),
-      kServerGetPath);
-  EXPECT_FALSE(started());
-  req->Start();
-  EXPECT_TRUE_WAIT(started(), 5000);  // Should have started by now.
-  EXPECT_TRUE_WAIT(done(), 5000);
-  std::string response;
-  EXPECT_EQ(200U, req->response().scode);
-  ASSERT_TRUE(req->response().document);
-  req->response().document->Rewind();
-  req->response().document->ReadLine(&response);
-  EXPECT_EQ(kServerResponse, response);
-  req->Release();
-}
-
-TEST_F(AsyncHttpRequestTest, TestGetNotFound) {
-  AsyncHttpRequest* req = CreateGetRequest(
-      kServerHostnameAddr.hostname(), server().address().port(),
-      "/bad");
-  req->Start();
-  EXPECT_TRUE_WAIT(done(), 5000);
-  size_t size;
-  EXPECT_EQ(404U, req->response().scode);
-  ASSERT_TRUE(req->response().document);
-  req->response().document->GetSize(&size);
-  EXPECT_EQ(0U, size);
-  req->Release();
-}
-
-TEST_F(AsyncHttpRequestTest, TestGetToNonServer) {
-  AsyncHttpRequest* req = CreateGetRequest(
-      "127.0.0.1", server().address().port(),
-      kServerGetPath);
-  // Stop the server before we send the request.
-  server().Close();
-  req->Start();
-  EXPECT_TRUE_WAIT(done(), 10000);
-  size_t size;
-  EXPECT_EQ(500U, req->response().scode);
-  ASSERT_TRUE(req->response().document);
-  req->response().document->GetSize(&size);
-  EXPECT_EQ(0U, size);
-  req->Release();
-}
-
-TEST_F(AsyncHttpRequestTest, DISABLED_TestGetToInvalidHostname) {
-  AsyncHttpRequest* req = CreateGetRequest(
-      "invalid", server().address().port(),
-      kServerGetPath);
-  req->Start();
-  EXPECT_TRUE_WAIT(done(), 5000);
-  size_t size;
-  EXPECT_EQ(500U, req->response().scode);
-  ASSERT_TRUE(req->response().document);
-  req->response().document->GetSize(&size);
-  EXPECT_EQ(0U, size);
-  req->Release();
-}
-
-TEST_F(AsyncHttpRequestTest, TestPostSuccess) {
-  AsyncHttpRequest* req = CreatePostRequest(
-      kServerHostnameAddr.hostname(), server().address().port(),
-      kServerPostPath, "text/plain", new MemoryStream("abcd1234"));
-  req->Start();
-  EXPECT_TRUE_WAIT(done(), 5000);
-  std::string response;
-  EXPECT_EQ(200U, req->response().scode);
-  ASSERT_TRUE(req->response().document);
-  req->response().document->Rewind();
-  req->response().document->ReadLine(&response);
-  EXPECT_EQ("4321dcba", response);
-  req->Release();
-}
-
-// Ensure that we shut down properly even if work is outstanding.
-TEST_F(AsyncHttpRequestTest, TestCancel) {
-  AsyncHttpRequest* req = CreateGetRequest(
-      kServerHostnameAddr.hostname(), server().address().port(),
-      kServerGetPath);
-  req->Start();
-  req->Destroy(true);
-}
-
-TEST_F(AsyncHttpRequestTest, TestGetSuccessDelay) {
-  AsyncHttpRequest* req = CreateGetRequest(
-      kServerHostnameAddr.hostname(), server().address().port(),
-      kServerGetPath);
-  req->set_start_delay(10);  // Delay 10ms.
-  req->Start();
-  Thread::SleepMs(5);
-  EXPECT_FALSE(started());  // Should not have started immediately.
-  EXPECT_TRUE_WAIT(started(), 5000);  // Should have started by now.
-  EXPECT_TRUE_WAIT(done(), 5000);
-  std::string response;
-  EXPECT_EQ(200U, req->response().scode);
-  ASSERT_TRUE(req->response().document);
-  req->response().document->Rewind();
-  req->response().document->ReadLine(&response);
-  EXPECT_EQ(kServerResponse, response);
-  req->Release();
-}
-
-}  // namespace rtc
diff --git a/webrtc/base/base.gyp b/webrtc/base/base.gyp
index 37646a8..6593729 100644
--- a/webrtc/base/base.gyp
+++ b/webrtc/base/base.gyp
@@ -117,8 +117,6 @@
         'arraysize.h',
         'asyncfile.cc',
         'asyncfile.h',
-        'asynchttprequest.cc',
-        'asynchttprequest.h',
         'asyncinvoker.cc',
         'asyncinvoker.h',
         'asyncinvoker-inl.h',
diff --git a/webrtc/base/base_tests.gyp b/webrtc/base/base_tests.gyp
index ec2ded0..4d7d74c 100644
--- a/webrtc/base/base_tests.gyp
+++ b/webrtc/base/base_tests.gyp
@@ -44,7 +44,6 @@
       'type': 'none',
       'direct_dependent_settings': {
         'sources': [
-          'asynchttprequest_unittest.cc',
           'atomicops_unittest.cc',
           'autodetectproxy_unittest.cc',
           'bandwidthsmoother_unittest.cc',
diff --git a/webrtc/p2p/client/connectivitychecker.cc b/webrtc/p2p/client/connectivitychecker.cc
deleted file mode 100644
index 8a7fc0d..0000000
--- a/webrtc/p2p/client/connectivitychecker.cc
+++ /dev/null
@@ -1,529 +0,0 @@
-/*
- *  Copyright 2011 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include <string>
-
-#include "webrtc/p2p/client/connectivitychecker.h"
-
-#include "webrtc/p2p/base/candidate.h"
-#include "webrtc/p2p/base/common.h"
-#include "webrtc/p2p/base/constants.h"
-#include "webrtc/p2p/base/port.h"
-#include "webrtc/p2p/base/relayport.h"
-#include "webrtc/p2p/base/stunport.h"
-#include "webrtc/base/asynchttprequest.h"
-#include "webrtc/base/autodetectproxy.h"
-#include "webrtc/base/helpers.h"
-#include "webrtc/base/httpcommon-inl.h"
-#include "webrtc/base/httpcommon.h"
-#include "webrtc/base/logging.h"
-#include "webrtc/base/proxydetect.h"
-#include "webrtc/base/thread.h"
-
-namespace cricket {
-
-static const char kDefaultStunHostname[] = "stun.l.google.com";
-static const int kDefaultStunPort = 19302;
-
-// Default maximum time in milliseconds we will wait for connections.
-static const uint32 kDefaultTimeoutMs = 3000;
-
-enum {
-  MSG_START = 1,
-  MSG_STOP = 2,
-  MSG_TIMEOUT = 3,
-  MSG_SIGNAL_RESULTS = 4
-};
-
-class TestHttpPortAllocator : public HttpPortAllocator {
- public:
-  TestHttpPortAllocator(rtc::NetworkManager* network_manager,
-                        const std::string& user_agent,
-                        const std::string& relay_token) :
-      HttpPortAllocator(network_manager, user_agent) {
-    SetRelayToken(relay_token);
-  }
-  PortAllocatorSession* CreateSessionInternal(
-      const std::string& content_name,
-      int component,
-      const std::string& ice_ufrag,
-      const std::string& ice_pwd) {
-    return new TestHttpPortAllocatorSession(this, content_name, component,
-                                            ice_ufrag, ice_pwd,
-                                            stun_hosts(), relay_hosts(),
-                                            relay_token(), user_agent());
-  }
-};
-
-void TestHttpPortAllocatorSession::ConfigReady(PortConfiguration* config) {
-  SignalConfigReady(username(), password(), config, proxy_);
-  delete config;
-}
-
-void TestHttpPortAllocatorSession::OnRequestDone(
-    rtc::SignalThread* data) {
-  rtc::AsyncHttpRequest* request =
-      static_cast<rtc::AsyncHttpRequest*>(data);
-
-  // Tell the checker that the request is complete.
-  SignalRequestDone(request);
-
-  // Pass on the response to super class.
-  HttpPortAllocatorSession::OnRequestDone(data);
-}
-
-ConnectivityChecker::ConnectivityChecker(
-    rtc::Thread* worker,
-    const std::string& jid,
-    const std::string& session_id,
-    const std::string& user_agent,
-    const std::string& relay_token,
-    const std::string& connection)
-    : worker_(worker),
-      jid_(jid),
-      session_id_(session_id),
-      user_agent_(user_agent),
-      relay_token_(relay_token),
-      connection_(connection),
-      proxy_detect_(NULL),
-      timeout_ms_(kDefaultTimeoutMs),
-      stun_address_(kDefaultStunHostname, kDefaultStunPort),
-      started_(false) {
-}
-
-ConnectivityChecker::~ConnectivityChecker() {
-  if (started_) {
-    // We try to clear the TIMEOUT below. But worker may still handle it and
-    // cause SignalCheckDone to happen on main-thread. So we finally clear any
-    // pending SIGNAL_RESULTS.
-    worker_->Clear(this, MSG_TIMEOUT);
-    worker_->Send(this, MSG_STOP);
-    nics_.clear();
-    main_->Clear(this, MSG_SIGNAL_RESULTS);
-  }
-}
-
-bool ConnectivityChecker::Initialize() {
-  network_manager_.reset(CreateNetworkManager());
-  socket_factory_.reset(CreateSocketFactory(worker_));
-  port_allocator_.reset(CreatePortAllocator(network_manager_.get(),
-                                            user_agent_, relay_token_));
-  return true;
-}
-
-void ConnectivityChecker::Start() {
-  main_ = rtc::Thread::Current();
-  worker_->Post(this, MSG_START);
-  started_ = true;
-}
-
-void ConnectivityChecker::CleanUp() {
-  ASSERT(worker_ == rtc::Thread::Current());
-  if (proxy_detect_) {
-    proxy_detect_->Release();
-    proxy_detect_ = NULL;
-  }
-
-  for (uint32 i = 0; i < sessions_.size(); ++i) {
-    delete sessions_[i];
-  }
-  sessions_.clear();
-  for (uint32 i = 0; i < ports_.size(); ++i) {
-    delete ports_[i];
-  }
-  ports_.clear();
-}
-
-bool ConnectivityChecker::AddNic(const rtc::IPAddress& ip,
-                                 const rtc::SocketAddress& proxy_addr) {
-  NicMap::iterator i = nics_.find(NicId(ip, proxy_addr));
-  if (i != nics_.end()) {
-    // Already have it.
-    return false;
-  }
-  uint32 now = rtc::Time();
-  NicInfo info;
-  info.ip = ip;
-  info.proxy_info = GetProxyInfo();
-  info.stun.start_time_ms = now;
-  nics_.insert(std::pair<NicId, NicInfo>(NicId(ip, proxy_addr), info));
-  return true;
-}
-
-void ConnectivityChecker::SetProxyInfo(const rtc::ProxyInfo& proxy_info) {
-  port_allocator_->set_proxy(user_agent_, proxy_info);
-  AllocatePorts();
-}
-
-rtc::ProxyInfo ConnectivityChecker::GetProxyInfo() const {
-  rtc::ProxyInfo proxy_info;
-  if (proxy_detect_) {
-    proxy_info = proxy_detect_->proxy();
-  }
-  return proxy_info;
-}
-
-void ConnectivityChecker::CheckNetworks() {
-  network_manager_->SignalNetworksChanged.connect(
-      this, &ConnectivityChecker::OnNetworksChanged);
-  network_manager_->StartUpdating();
-}
-
-void ConnectivityChecker::OnMessage(rtc::Message *msg) {
-  switch (msg->message_id) {
-    case MSG_START:
-      ASSERT(worker_ == rtc::Thread::Current());
-      worker_->PostDelayed(timeout_ms_, this, MSG_TIMEOUT);
-      CheckNetworks();
-      break;
-    case MSG_STOP:
-      // We're being stopped, free resources.
-      CleanUp();
-      break;
-    case MSG_TIMEOUT:
-      // We need to signal results on the main thread.
-      main_->Post(this, MSG_SIGNAL_RESULTS);
-      break;
-    case MSG_SIGNAL_RESULTS:
-      ASSERT(main_ == rtc::Thread::Current());
-      SignalCheckDone(this);
-      break;
-    default:
-      LOG(LS_ERROR) << "Unknown message: " << msg->message_id;
-  }
-}
-
-void ConnectivityChecker::OnProxyDetect(rtc::SignalThread* thread) {
-  ASSERT(worker_ == rtc::Thread::Current());
-  if (proxy_detect_->proxy().type != rtc::PROXY_NONE) {
-    SetProxyInfo(proxy_detect_->proxy());
-  }
-}
-
-void ConnectivityChecker::OnRequestDone(rtc::AsyncHttpRequest* request) {
-  ASSERT(worker_ == rtc::Thread::Current());
-  // Since we don't know what nic were actually used for the http request,
-  // for now, just use the first one.
-  std::vector<rtc::Network*> networks;
-  network_manager_->GetNetworks(&networks);
-  if (networks.empty()) {
-    LOG(LS_ERROR) << "No networks while registering http start.";
-    return;
-  }
-  rtc::ProxyInfo proxy_info = request->proxy();
-  NicMap::iterator i =
-      nics_.find(NicId(networks[0]->GetBestIP(), proxy_info.address));
-  if (i != nics_.end()) {
-    int port = request->port();
-    uint32 now = rtc::Time();
-    NicInfo* nic_info = &i->second;
-    if (port == rtc::HTTP_SECURE_PORT) {
-      nic_info->https.rtt = now - nic_info->https.start_time_ms;
-    } else {
-      LOG(LS_ERROR) << "Got response with unknown port: " << port;
-    }
-  } else {
-    LOG(LS_ERROR) << "No nic info found while receiving response.";
-  }
-}
-
-void ConnectivityChecker::OnConfigReady(
-    const std::string& username, const std::string& password,
-    const PortConfiguration* config, const rtc::ProxyInfo& proxy_info) {
-  ASSERT(worker_ == rtc::Thread::Current());
-
-  // Since we send requests on both HTTP and HTTPS we will get two
-  // configs per nic. Results from the second will overwrite the
-  // result from the first.
-  // TODO: Handle multiple pings on one nic.
-  CreateRelayPorts(username, password, config, proxy_info);
-}
-
-void ConnectivityChecker::OnRelayPortComplete(Port* port) {
-  ASSERT(worker_ == rtc::Thread::Current());
-  RelayPort* relay_port = reinterpret_cast<RelayPort*>(port);
-  const ProtocolAddress* address = relay_port->ServerAddress(0);
-  rtc::IPAddress ip = port->Network()->GetBestIP();
-  NicMap::iterator i = nics_.find(NicId(ip, port->proxy().address));
-  if (i != nics_.end()) {
-    // We have it already, add the new information.
-    NicInfo* nic_info = &i->second;
-    ConnectInfo* connect_info = NULL;
-    if (address) {
-      switch (address->proto) {
-        case PROTO_UDP:
-          connect_info = &nic_info->udp;
-          break;
-        case PROTO_TCP:
-          connect_info = &nic_info->tcp;
-          break;
-        case PROTO_SSLTCP:
-          connect_info = &nic_info->ssltcp;
-          break;
-        default:
-          LOG(LS_ERROR) << " relay address with bad protocol added";
-      }
-      if (connect_info) {
-        connect_info->rtt =
-            rtc::TimeSince(connect_info->start_time_ms);
-      }
-    }
-  } else {
-    LOG(LS_ERROR) << " got relay address for non-existing nic";
-  }
-}
-
-void ConnectivityChecker::OnStunPortComplete(Port* port) {
-  ASSERT(worker_ == rtc::Thread::Current());
-  const std::vector<Candidate> candidates = port->Candidates();
-  Candidate c = candidates[0];
-  rtc::IPAddress ip = port->Network()->GetBestIP();
-  NicMap::iterator i = nics_.find(NicId(ip, port->proxy().address));
-  if (i != nics_.end()) {
-    // We have it already, add the new information.
-    uint32 now = rtc::Time();
-    NicInfo* nic_info = &i->second;
-    nic_info->external_address = c.address();
-
-    nic_info->stun_server_addresses =
-        static_cast<StunPort*>(port)->server_addresses();
-    nic_info->stun.rtt = now - nic_info->stun.start_time_ms;
-  } else {
-    LOG(LS_ERROR) << "Got stun address for non-existing nic";
-  }
-}
-
-void ConnectivityChecker::OnStunPortError(Port* port) {
-  ASSERT(worker_ == rtc::Thread::Current());
-  LOG(LS_ERROR) << "Stun address error.";
-  rtc::IPAddress ip = port->Network()->GetBestIP();
-  NicMap::iterator i = nics_.find(NicId(ip, port->proxy().address));
-  if (i != nics_.end()) {
-    // We have it already, add the new information.
-    NicInfo* nic_info = &i->second;
-
-    nic_info->stun_server_addresses =
-        static_cast<StunPort*>(port)->server_addresses();
-  }
-}
-
-void ConnectivityChecker::OnRelayPortError(Port* port) {
-  ASSERT(worker_ == rtc::Thread::Current());
-  LOG(LS_ERROR) << "Relay address error.";
-}
-
-void ConnectivityChecker::OnNetworksChanged() {
-  ASSERT(worker_ == rtc::Thread::Current());
-  std::vector<rtc::Network*> networks;
-  network_manager_->GetNetworks(&networks);
-  if (networks.empty()) {
-    LOG(LS_ERROR) << "Machine has no networks; nothing to do";
-    return;
-  }
-  AllocatePorts();
-}
-
-HttpPortAllocator* ConnectivityChecker::CreatePortAllocator(
-    rtc::NetworkManager* network_manager,
-    const std::string& user_agent,
-    const std::string& relay_token) {
-  return new TestHttpPortAllocator(network_manager, user_agent, relay_token);
-}
-
-StunPort* ConnectivityChecker::CreateStunPort(
-    const std::string& username, const std::string& password,
-    const PortConfiguration* config, rtc::Network* network) {
-  return StunPort::Create(worker_,
-                          socket_factory_.get(),
-                          network,
-                          network->GetBestIP(),
-                          0,
-                          0,
-                          username,
-                          password,
-                          config->stun_servers,
-                          std::string());
-}
-
-RelayPort* ConnectivityChecker::CreateRelayPort(
-    const std::string& username, const std::string& password,
-    const PortConfiguration* config, rtc::Network* network) {
-  return RelayPort::Create(worker_,
-                           socket_factory_.get(),
-                           network,
-                           network->GetBestIP(),
-                           port_allocator_->min_port(),
-                           port_allocator_->max_port(),
-                           username,
-                           password);
-}
-
-void ConnectivityChecker::CreateRelayPorts(
-    const std::string& username, const std::string& password,
-    const PortConfiguration* config, const rtc::ProxyInfo& proxy_info) {
-  PortConfiguration::RelayList::const_iterator relay;
-  std::vector<rtc::Network*> networks;
-  network_manager_->GetNetworks(&networks);
-  if (networks.empty()) {
-    LOG(LS_ERROR) << "Machine has no networks; no relay ports created.";
-    return;
-  }
-  for (relay = config->relays.begin();
-       relay != config->relays.end(); ++relay) {
-    for (uint32 i = 0; i < networks.size(); ++i) {
-      NicMap::iterator iter =
-          nics_.find(NicId(networks[i]->GetBestIP(), proxy_info.address));
-      if (iter != nics_.end()) {
-        // TODO: Now setting the same start time for all protocols.
-        // This might affect accuracy, but since we are mainly looking for
-        // connect failures or number that stick out, this is good enough.
-        uint32 now = rtc::Time();
-        NicInfo* nic_info = &iter->second;
-        nic_info->udp.start_time_ms = now;
-        nic_info->tcp.start_time_ms = now;
-        nic_info->ssltcp.start_time_ms = now;
-
-        // Add the addresses of this protocol.
-        PortList::const_iterator relay_port;
-        for (relay_port = relay->ports.begin();
-             relay_port != relay->ports.end();
-             ++relay_port) {
-          RelayPort* port = CreateRelayPort(username, password,
-                                            config, networks[i]);
-          port->AddServerAddress(*relay_port);
-          port->AddExternalAddress(*relay_port);
-
-          nic_info->media_server_address = port->ServerAddress(0)->address;
-
-          // Listen to network events.
-          port->SignalPortComplete.connect(
-              this, &ConnectivityChecker::OnRelayPortComplete);
-          port->SignalPortError.connect(
-              this, &ConnectivityChecker::OnRelayPortError);
-
-          port->set_proxy(user_agent_, proxy_info);
-
-          // Start fetching an address for this port.
-          port->PrepareAddress();
-          ports_.push_back(port);
-        }
-      } else {
-        LOG(LS_ERROR) << "Failed to find nic info when creating relay ports.";
-      }
-    }
-  }
-}
-
-void ConnectivityChecker::AllocatePorts() {
-  const std::string username = rtc::CreateRandomString(ICE_UFRAG_LENGTH);
-  const std::string password = rtc::CreateRandomString(ICE_PWD_LENGTH);
-  ServerAddresses stun_servers;
-  stun_servers.insert(stun_address_);
-  PortConfiguration config(stun_servers, username, password);
-  std::vector<rtc::Network*> networks;
-  network_manager_->GetNetworks(&networks);
-  if (networks.empty()) {
-    LOG(LS_ERROR) << "Machine has no networks; no ports will be allocated";
-    return;
-  }
-  rtc::ProxyInfo proxy_info = GetProxyInfo();
-  bool allocate_relay_ports = false;
-  for (uint32 i = 0; i < networks.size(); ++i) {
-    if (AddNic(networks[i]->GetBestIP(), proxy_info.address)) {
-      Port* port = CreateStunPort(username, password, &config, networks[i]);
-      if (port) {
-
-        // Listen to network events.
-        port->SignalPortComplete.connect(
-            this, &ConnectivityChecker::OnStunPortComplete);
-        port->SignalPortError.connect(
-            this, &ConnectivityChecker::OnStunPortError);
-
-        port->set_proxy(user_agent_, proxy_info);
-        port->PrepareAddress();
-        ports_.push_back(port);
-        allocate_relay_ports = true;
-      }
-    }
-  }
-
-  // If any new ip/proxy combinations were added, send a relay allocate.
-  if (allocate_relay_ports) {
-    AllocateRelayPorts();
-  }
-
-  // Initiate proxy detection.
-  InitiateProxyDetection();
-}
-
-void ConnectivityChecker::InitiateProxyDetection() {
-  // Only start if we haven't been started before.
-  if (!proxy_detect_) {
-    proxy_detect_ = new rtc::AutoDetectProxy(user_agent_);
-    rtc::Url<char> host_url("/", "relay.google.com",
-                                  rtc::HTTP_SECURE_PORT);
-    host_url.set_secure(true);
-    proxy_detect_->set_server_url(host_url.url());
-    proxy_detect_->SignalWorkDone.connect(
-        this, &ConnectivityChecker::OnProxyDetect);
-    proxy_detect_->Start();
-  }
-}
-
-void ConnectivityChecker::AllocateRelayPorts() {
-  // Currently we are using the 'default' nic for http(s) requests.
-  TestHttpPortAllocatorSession* allocator_session =
-      reinterpret_cast<TestHttpPortAllocatorSession*>(
-          port_allocator_->CreateSessionInternal(
-              "connectivity checker test content",
-              ICE_CANDIDATE_COMPONENT_RTP,
-              rtc::CreateRandomString(ICE_UFRAG_LENGTH),
-              rtc::CreateRandomString(ICE_PWD_LENGTH)));
-  allocator_session->set_proxy(port_allocator_->proxy());
-  allocator_session->SignalConfigReady.connect(
-      this, &ConnectivityChecker::OnConfigReady);
-  allocator_session->SignalRequestDone.connect(
-      this, &ConnectivityChecker::OnRequestDone);
-
-  // Try https only since using http would result in credentials being sent
-  // over the network unprotected.
-  RegisterHttpStart(rtc::HTTP_SECURE_PORT);
-  allocator_session->SendSessionRequest("relay.l.google.com",
-                                        rtc::HTTP_SECURE_PORT);
-
-  sessions_.push_back(allocator_session);
-}
-
-void ConnectivityChecker::RegisterHttpStart(int port) {
-  // Since we don't know what nic were actually used for the http request,
-  // for now, just use the first one.
-  std::vector<rtc::Network*> networks;
-  network_manager_->GetNetworks(&networks);
-  if (networks.empty()) {
-    LOG(LS_ERROR) << "No networks while registering http start.";
-    return;
-  }
-  rtc::ProxyInfo proxy_info = GetProxyInfo();
-  NicMap::iterator i =
-      nics_.find(NicId(networks[0]->GetBestIP(), proxy_info.address));
-  if (i != nics_.end()) {
-    uint32 now = rtc::Time();
-    NicInfo* nic_info = &i->second;
-    if (port == rtc::HTTP_SECURE_PORT) {
-      nic_info->https.start_time_ms = now;
-    } else {
-      LOG(LS_ERROR) << "Registering start time for unknown port: " << port;
-    }
-  } else {
-    LOG(LS_ERROR) << "Error, no nic info found while registering http start.";
-  }
-}
-
-}  // namespace rtc
diff --git a/webrtc/p2p/client/connectivitychecker.h b/webrtc/p2p/client/connectivitychecker.h
deleted file mode 100644
index 427749e..0000000
--- a/webrtc/p2p/client/connectivitychecker.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- *  Copyright 2011 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef WEBRTC_P2P_CLIENT_CONNECTIVITYCHECKER_H_
-#define WEBRTC_P2P_CLIENT_CONNECTIVITYCHECKER_H_
-
-#include <map>
-#include <string>
-
-#include "webrtc/p2p/base/basicpacketsocketfactory.h"
-#include "webrtc/p2p/client/httpportallocator.h"
-#include "webrtc/base/basictypes.h"
-#include "webrtc/base/messagehandler.h"
-#include "webrtc/base/network.h"
-#include "webrtc/base/proxyinfo.h"
-#include "webrtc/base/scoped_ptr.h"
-#include "webrtc/base/sigslot.h"
-#include "webrtc/base/socketaddress.h"
-
-namespace rtc {
-class AsyncHttpRequest;
-class AutoDetectProxy;
-class BasicPacketSocketFactory;
-class NetworkManager;
-class PacketSocketFactory;
-class SignalThread;
-class TestHttpPortAllocatorSession;
-class Thread;
-}
-
-namespace cricket {
-class HttpPortAllocator;
-class Port;
-class PortAllocatorSession;
-struct PortConfiguration;
-class RelayPort;
-class StunPort;
-
-// Contains details about a discovered firewall that are of interest
-// when debugging call failures.
-struct FirewallInfo {
-  std::string brand;
-  std::string model;
-
-  // TODO: List of current port mappings.
-};
-
-// Contains details about a specific connect attempt.
-struct ConnectInfo {
-  ConnectInfo()
-      : rtt(-1), error(0) {}
-  // Time when the connection was initiated. Needed for calculating
-  // the round trip time.
-  uint32 start_time_ms;
-  // Round trip time in milliseconds or -1 for failed connection.
-  int32 rtt;
-  // Error code representing low level errors like socket errors.
-  int error;
-};
-
-// Identifier for a network interface and proxy address pair.
-struct NicId {
-  NicId(const rtc::IPAddress& ip,
-        const rtc::SocketAddress& proxy_address)
-      : ip(ip),
-        proxy_address(proxy_address) {
-  }
-  rtc::IPAddress ip;
-  rtc::SocketAddress proxy_address;
-};
-
-// Comparator implementation identifying unique network interface and
-// proxy address pairs.
-class NicIdComparator {
- public:
-  int compare(const NicId &first, const NicId &second) const {
-    if (first.ip == second.ip) {
-      // Compare proxy address.
-      if (first.proxy_address == second.proxy_address) {
-        return 0;
-      } else {
-        return first.proxy_address < second.proxy_address? -1 : 1;
-      }
-    }
-    return first.ip < second.ip ? -1 : 1;
-  }
-
-  bool operator()(const NicId &first, const NicId &second) const {
-    return (compare(first, second) < 0);
-  }
-};
-
-// Contains information of a network interface and proxy address pair.
-struct NicInfo {
-  NicInfo() {}
-  rtc::IPAddress ip;
-  rtc::ProxyInfo proxy_info;
-  rtc::SocketAddress external_address;
-  ServerAddresses stun_server_addresses;
-  rtc::SocketAddress media_server_address;
-  ConnectInfo stun;
-  ConnectInfo http;
-  ConnectInfo https;
-  ConnectInfo udp;
-  ConnectInfo tcp;
-  ConnectInfo ssltcp;
-  FirewallInfo firewall;
-};
-
-// Holds the result of the connectivity check.
-class NicMap : public std::map<NicId, NicInfo, NicIdComparator> {
-};
-
-class TestHttpPortAllocatorSession : public HttpPortAllocatorSession {
- public:
-  TestHttpPortAllocatorSession(
-      HttpPortAllocator* allocator,
-      const std::string& content_name,
-      int component,
-      const std::string& ice_ufrag,
-      const std::string& ice_pwd,
-      const std::vector<rtc::SocketAddress>& stun_hosts,
-      const std::vector<std::string>& relay_hosts,
-      const std::string& relay_token,
-      const std::string& user_agent)
-      : HttpPortAllocatorSession(
-          allocator, content_name, component, ice_ufrag, ice_pwd, stun_hosts,
-          relay_hosts, relay_token, user_agent) {
-  }
-  void set_proxy(const rtc::ProxyInfo& proxy) {
-    proxy_ = proxy;
-  }
-
-  void ConfigReady(PortConfiguration* config);
-
-  void OnRequestDone(rtc::SignalThread* data);
-
-  sigslot::signal4<const std::string&, const std::string&,
-                   const PortConfiguration*,
-                   const rtc::ProxyInfo&> SignalConfigReady;
-  sigslot::signal1<rtc::AsyncHttpRequest*> SignalRequestDone;
-
- private:
-  rtc::ProxyInfo proxy_;
-};
-
-// Runs a request/response check on all network interface and proxy
-// address combinations. The check is considered done either when all
-// checks has been successful or when the check times out.
-class ConnectivityChecker
-    : public rtc::MessageHandler, public sigslot::has_slots<> {
- public:
-  ConnectivityChecker(rtc::Thread* worker,
-                      const std::string& jid,
-                      const std::string& session_id,
-                      const std::string& user_agent,
-                      const std::string& relay_token,
-                      const std::string& connection);
-  virtual ~ConnectivityChecker();
-
-  // Virtual for gMock.
-  virtual bool Initialize();
-  virtual void Start();
-
-  // MessageHandler implementation.
-  virtual void OnMessage(rtc::Message *msg);
-
-  // Instruct checker to stop and wait until that's done.
-  // Virtual for gMock.
-  virtual void Stop() {
-    worker_->Stop();
-  }
-
-  const NicMap& GetResults() const {
-    return nics_;
-  }
-
-  void set_timeout_ms(uint32 timeout) {
-    timeout_ms_ = timeout;
-  }
-
-  void set_stun_address(const rtc::SocketAddress& stun_address) {
-    stun_address_ = stun_address;
-  }
-
-  const std::string& connection() const {
-    return connection_;
-  }
-
-  const std::string& jid() const {
-    return jid_;
-  }
-
-  const std::string& session_id() const {
-    return session_id_;
-  }
-
-  // Context: Main Thread. Signalled when the connectivity check is complete.
-  sigslot::signal1<ConnectivityChecker*> SignalCheckDone;
-
- protected:
-  // Can be overridden for test.
-  virtual rtc::NetworkManager* CreateNetworkManager() {
-    return new rtc::BasicNetworkManager();
-  }
-  virtual rtc::BasicPacketSocketFactory* CreateSocketFactory(
-      rtc::Thread* thread) {
-    return new rtc::BasicPacketSocketFactory(thread);
-  }
-  virtual HttpPortAllocator* CreatePortAllocator(
-      rtc::NetworkManager* network_manager,
-      const std::string& user_agent,
-      const std::string& relay_token);
-  virtual StunPort* CreateStunPort(
-      const std::string& username, const std::string& password,
-      const PortConfiguration* config, rtc::Network* network);
-  virtual RelayPort* CreateRelayPort(
-      const std::string& username, const std::string& password,
-      const PortConfiguration* config, rtc::Network* network);
-  virtual void InitiateProxyDetection();
-  virtual void SetProxyInfo(const rtc::ProxyInfo& info);
-  virtual rtc::ProxyInfo GetProxyInfo() const;
-
-  rtc::Thread* worker() {
-    return worker_;
-  }
-
- private:
-  bool AddNic(const rtc::IPAddress& ip,
-              const rtc::SocketAddress& proxy_address);
-  void AllocatePorts();
-  void AllocateRelayPorts();
-  void CheckNetworks();
-  void CreateRelayPorts(
-      const std::string& username, const std::string& password,
-      const PortConfiguration* config, const rtc::ProxyInfo& proxy_info);
-
-  // Must be called by the worker thread.
-  void CleanUp();
-
-  void OnRequestDone(rtc::AsyncHttpRequest* request);
-  void OnRelayPortComplete(Port* port);
-  void OnStunPortComplete(Port* port);
-  void OnRelayPortError(Port* port);
-  void OnStunPortError(Port* port);
-  void OnNetworksChanged();
-  void OnProxyDetect(rtc::SignalThread* thread);
-  void OnConfigReady(
-      const std::string& username, const std::string& password,
-      const PortConfiguration* config, const rtc::ProxyInfo& proxy);
-  void OnConfigWithProxyReady(const PortConfiguration*);
-  void RegisterHttpStart(int port);
-  rtc::Thread* worker_;
-  std::string jid_;
-  std::string session_id_;
-  std::string user_agent_;
-  std::string relay_token_;
-  std::string connection_;
-  rtc::AutoDetectProxy* proxy_detect_;
-  rtc::scoped_ptr<rtc::NetworkManager> network_manager_;
-  rtc::scoped_ptr<rtc::BasicPacketSocketFactory> socket_factory_;
-  rtc::scoped_ptr<HttpPortAllocator> port_allocator_;
-  NicMap nics_;
-  std::vector<Port*> ports_;
-  std::vector<PortAllocatorSession*> sessions_;
-  uint32 timeout_ms_;
-  rtc::SocketAddress stun_address_;
-  rtc::Thread* main_;
-  bool started_;
-};
-
-}  // namespace cricket
-
-#endif  // WEBRTC_P2P_CLIENT_CONNECTIVITYCHECKER_H_
diff --git a/webrtc/p2p/client/connectivitychecker_unittest.cc b/webrtc/p2p/client/connectivitychecker_unittest.cc
deleted file mode 100644
index d590a72..0000000
--- a/webrtc/p2p/client/connectivitychecker_unittest.cc
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- *  Copyright 2011 The WebRTC Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include <string>
-
-#include "webrtc/p2p/base/basicpacketsocketfactory.h"
-#include "webrtc/p2p/base/relayport.h"
-#include "webrtc/p2p/base/stunport.h"
-#include "webrtc/p2p/client/connectivitychecker.h"
-#include "webrtc/p2p/client/httpportallocator.h"
-#include "webrtc/base/asynchttprequest.h"
-#include "webrtc/base/fakenetwork.h"
-#include "webrtc/base/gunit.h"
-#include "webrtc/base/scoped_ptr.h"
-#include "webrtc/base/socketaddress.h"
-
-namespace cricket {
-
-static const rtc::SocketAddress kClientAddr1("11.11.11.11", 0);
-static const rtc::SocketAddress kClientAddr2("22.22.22.22", 0);
-static const rtc::SocketAddress kExternalAddr("33.33.33.33", 3333);
-static const rtc::SocketAddress kStunAddr("44.44.44.44", 4444);
-static const rtc::SocketAddress kRelayAddr("55.55.55.55", 5555);
-static const rtc::SocketAddress kProxyAddr("66.66.66.66", 6666);
-static const rtc::ProxyType kProxyType = rtc::PROXY_HTTPS;
-static const char kRelayHost[] = "relay.google.com";
-static const char kRelayToken[] =
-    "CAESFwoOb2phQGdvb2dsZS5jb20Q043h47MmGhBTB1rbfIXkhuarDCZe+xF6";
-static const char kBrowserAgent[] = "browser_test";
-static const char kJid[] = "a.b@c";
-static const char kUserName[] = "testuser";
-static const char kPassword[] = "testpassword";
-static const char kMagicCookie[] = "testcookie";
-static const char kRelayUdpPort[] = "4444";
-static const char kRelayTcpPort[] = "5555";
-static const char kRelaySsltcpPort[] = "6666";
-static const char kSessionId[] = "testsession";
-static const char kConnection[] = "testconnection";
-static const int kMinPort = 1000;
-static const int kMaxPort = 2000;
-
-// Fake implementation to mock away real network usage.
-class FakeRelayPort : public RelayPort {
- public:
-  FakeRelayPort(rtc::Thread* thread,
-                rtc::PacketSocketFactory* factory,
-                rtc::Network* network, const rtc::IPAddress& ip,
-                int min_port, int max_port,
-                const std::string& username, const std::string& password)
-      : RelayPort(thread, factory, network, ip, min_port, max_port,
-                  username, password) {
-  }
-
-  // Just signal that we are done.
-  virtual void PrepareAddress() {
-    SignalPortComplete(this);
-  }
-};
-
-// Fake implementation to mock away real network usage.
-class FakeStunPort : public StunPort {
- public:
-  FakeStunPort(rtc::Thread* thread,
-               rtc::PacketSocketFactory* factory,
-               rtc::Network* network,
-               const rtc::IPAddress& ip,
-               int min_port, int max_port,
-               const std::string& username, const std::string& password,
-               const ServerAddresses& server_addr)
-      : StunPort(thread, factory, network, ip, min_port, max_port,
-                 username, password, server_addr, std::string()) {
-  }
-
-  // Just set external address and signal that we are done.
-  virtual void PrepareAddress() {
-    AddAddress(kExternalAddr, kExternalAddr, rtc::SocketAddress(), "udp", "",
-               "", STUN_PORT_TYPE, ICE_TYPE_PREFERENCE_SRFLX, 0, true);
-    SignalPortComplete(this);
-  }
-};
-
-// Fake implementation to mock away real network usage by responding
-// to http requests immediately.
-class FakeHttpPortAllocatorSession : public TestHttpPortAllocatorSession {
- public:
-  FakeHttpPortAllocatorSession(
-      HttpPortAllocator* allocator,
-      const std::string& content_name,
-      int component,
-      const std::string& ice_ufrag, const std::string& ice_pwd,
-      const std::vector<rtc::SocketAddress>& stun_hosts,
-      const std::vector<std::string>& relay_hosts,
-      const std::string& relay_token,
-      const std::string& agent)
-      : TestHttpPortAllocatorSession(allocator,
-                                     content_name,
-                                     component,
-                                     ice_ufrag,
-                                     ice_pwd,
-                                     stun_hosts,
-                                     relay_hosts,
-                                     relay_token,
-                                     agent) {
-  }
-  virtual void SendSessionRequest(const std::string& host, int port) {
-    FakeReceiveSessionResponse(host, port);
-  }
-
-  // Pass results to the real implementation.
-  void FakeReceiveSessionResponse(const std::string& host, int port) {
-    rtc::AsyncHttpRequest* response = CreateAsyncHttpResponse(port);
-    TestHttpPortAllocatorSession::OnRequestDone(response);
-    response->Destroy(true);
-  }
-
- private:
-  // Helper method for creating a response to a relay session request.
-  rtc::AsyncHttpRequest* CreateAsyncHttpResponse(int port) {
-    rtc::AsyncHttpRequest* request =
-        new rtc::AsyncHttpRequest(kBrowserAgent);
-    std::stringstream ss;
-    ss << "username=" << kUserName << std::endl
-       << "password=" << kPassword << std::endl
-       << "magic_cookie=" << kMagicCookie << std::endl
-       << "relay.ip=" << kRelayAddr.ipaddr().ToString() << std::endl
-       << "relay.udp_port=" << kRelayUdpPort << std::endl
-       << "relay.tcp_port=" << kRelayTcpPort << std::endl
-       << "relay.ssltcp_port=" << kRelaySsltcpPort << std::endl;
-    request->response().document.reset(
-        new rtc::MemoryStream(ss.str().c_str()));
-    request->response().set_success();
-    request->set_port(port);
-    request->set_secure(port == rtc::HTTP_SECURE_PORT);
-    return request;
-  }
-};
-
-// Fake implementation for creating fake http sessions.
-class FakeHttpPortAllocator : public HttpPortAllocator {
- public:
-  FakeHttpPortAllocator(rtc::NetworkManager* network_manager,
-                        const std::string& user_agent)
-      : HttpPortAllocator(network_manager, user_agent) {
-  }
-
-  virtual PortAllocatorSession* CreateSessionInternal(
-      const std::string& content_name, int component,
-      const std::string& ice_ufrag, const std::string& ice_pwd) {
-    std::vector<rtc::SocketAddress> stun_hosts;
-    stun_hosts.push_back(kStunAddr);
-    std::vector<std::string> relay_hosts;
-    relay_hosts.push_back(kRelayHost);
-    return new FakeHttpPortAllocatorSession(this,
-                                            content_name,
-                                            component,
-                                            ice_ufrag,
-                                            ice_pwd,
-                                            stun_hosts,
-                                            relay_hosts,
-                                            kRelayToken,
-                                            kBrowserAgent);
-  }
-};
-
-class ConnectivityCheckerForTest : public ConnectivityChecker {
- public:
-  ConnectivityCheckerForTest(rtc::Thread* worker,
-                             const std::string& jid,
-                             const std::string& session_id,
-                             const std::string& user_agent,
-                             const std::string& relay_token,
-                             const std::string& connection)
-      : ConnectivityChecker(worker,
-                            jid,
-                            session_id,
-                            user_agent,
-                            relay_token,
-                            connection),
-        proxy_initiated_(false) {
-  }
-
-  rtc::FakeNetworkManager* network_manager() const {
-    return network_manager_;
-  }
-
-  FakeHttpPortAllocator* port_allocator() const {
-    return fake_port_allocator_;
-  }
-
- protected:
-  // Overridden methods for faking a real network.
-  virtual rtc::NetworkManager* CreateNetworkManager() {
-    network_manager_ = new rtc::FakeNetworkManager();
-    return network_manager_;
-  }
-  virtual rtc::BasicPacketSocketFactory* CreateSocketFactory(
-      rtc::Thread* thread) {
-    // Create socket factory, for simplicity, let it run on the current thread.
-    socket_factory_ =
-        new rtc::BasicPacketSocketFactory(rtc::Thread::Current());
-    return socket_factory_;
-  }
-  virtual HttpPortAllocator* CreatePortAllocator(
-      rtc::NetworkManager* network_manager,
-      const std::string& user_agent,
-      const std::string& relay_token) {
-    fake_port_allocator_ =
-        new FakeHttpPortAllocator(network_manager, user_agent);
-    return fake_port_allocator_;
-  }
-  virtual StunPort* CreateStunPort(
-      const std::string& username, const std::string& password,
-      const PortConfiguration* config, rtc::Network* network) {
-    return new FakeStunPort(worker(),
-                            socket_factory_,
-                            network,
-                            network->GetBestIP(),
-                            kMinPort,
-                            kMaxPort,
-                            username,
-                            password,
-                            config->stun_servers);
-  }
-  virtual RelayPort* CreateRelayPort(
-      const std::string& username, const std::string& password,
-      const PortConfiguration* config, rtc::Network* network) {
-    return new FakeRelayPort(worker(),
-                             socket_factory_,
-                             network,
-                             network->GetBestIP(),
-                             kMinPort,
-                             kMaxPort,
-                             username,
-                             password);
-  }
-  virtual void InitiateProxyDetection() {
-    if (!proxy_initiated_) {
-      proxy_initiated_ = true;
-      proxy_info_.address = kProxyAddr;
-      proxy_info_.type = kProxyType;
-      SetProxyInfo(proxy_info_);
-    }
-  }
-
-  virtual rtc::ProxyInfo GetProxyInfo() const {
-    return proxy_info_;
-  }
-
- private:
-  rtc::BasicPacketSocketFactory* socket_factory_;
-  FakeHttpPortAllocator* fake_port_allocator_;
-  rtc::FakeNetworkManager* network_manager_;
-  rtc::ProxyInfo proxy_info_;
-  bool proxy_initiated_;
-};
-
-class ConnectivityCheckerTest : public testing::Test {
- protected:
-  void VerifyNic(const NicInfo& info,
-                 const rtc::SocketAddress& local_address) {
-    // Verify that the external address has been set.
-    EXPECT_EQ(kExternalAddr, info.external_address);
-
-    // Verify that the stun server address has been set.
-    EXPECT_EQ(1U, info.stun_server_addresses.size());
-    EXPECT_EQ(kStunAddr, *(info.stun_server_addresses.begin()));
-
-    // Verify that the media server address has been set. Don't care
-    // about port since it is different for different protocols.
-    EXPECT_EQ(kRelayAddr.ipaddr(), info.media_server_address.ipaddr());
-
-    // Verify that local ip matches.
-    EXPECT_EQ(local_address.ipaddr(), info.ip);
-
-    // Verify that we have received responses for our
-    // pings. Unsuccessful ping has rtt value -1, successful >= 0.
-    EXPECT_GE(info.stun.rtt, 0);
-    EXPECT_GE(info.udp.rtt, 0);
-    EXPECT_GE(info.tcp.rtt, 0);
-    EXPECT_GE(info.ssltcp.rtt, 0);
-
-    // If proxy has been set, verify address and type.
-    if (!info.proxy_info.address.IsNil()) {
-      EXPECT_EQ(kProxyAddr, info.proxy_info.address);
-      EXPECT_EQ(kProxyType, info.proxy_info.type);
-    }
-  }
-};
-
-// Tests a configuration with two network interfaces. Verifies that 4
-// combinations of ip/proxy are created and that all protocols are
-// tested on each combination.
-TEST_F(ConnectivityCheckerTest, TestStart) {
-  ConnectivityCheckerForTest connectivity_checker(rtc::Thread::Current(),
-                                                  kJid,
-                                                  kSessionId,
-                                                  kBrowserAgent,
-                                                  kRelayToken,
-                                                  kConnection);
-  connectivity_checker.Initialize();
-  connectivity_checker.set_stun_address(kStunAddr);
-  connectivity_checker.network_manager()->AddInterface(kClientAddr1);
-  connectivity_checker.network_manager()->AddInterface(kClientAddr2);
-
-  connectivity_checker.Start();
-  rtc::Thread::Current()->ProcessMessages(1000);
-
-  NicMap nics = connectivity_checker.GetResults();
-
-  // There should be 4 nics in our map. 2 for each interface added,
-  // one with proxy set and one without.
-  EXPECT_EQ(4U, nics.size());
-
-  // First verify interfaces without proxy.
-  rtc::SocketAddress nilAddress;
-
-  // First lookup the address of the first nic combined with no proxy.
-  NicMap::iterator i = nics.find(NicId(kClientAddr1.ipaddr(), nilAddress));
-  ASSERT(i != nics.end());
-  NicInfo info = i->second;
-  VerifyNic(info, kClientAddr1);
-
-  // Then make sure the second device has been tested without proxy.
-  i = nics.find(NicId(kClientAddr2.ipaddr(), nilAddress));
-  ASSERT(i != nics.end());
-  info = i->second;
-  VerifyNic(info, kClientAddr2);
-
-  // Now verify both interfaces with proxy.
-  i = nics.find(NicId(kClientAddr1.ipaddr(), kProxyAddr));
-  ASSERT(i != nics.end());
-  info = i->second;
-  VerifyNic(info, kClientAddr1);
-
-  i = nics.find(NicId(kClientAddr2.ipaddr(), kProxyAddr));
-  ASSERT(i != nics.end());
-  info = i->second;
-  VerifyNic(info, kClientAddr2);
-};
-
-// Tests that nothing bad happens if thera are no network interfaces
-// available to check.
-TEST_F(ConnectivityCheckerTest, TestStartNoNetwork) {
-  ConnectivityCheckerForTest connectivity_checker(rtc::Thread::Current(),
-                                                  kJid,
-                                                  kSessionId,
-                                                  kBrowserAgent,
-                                                  kRelayToken,
-                                                  kConnection);
-  connectivity_checker.Initialize();
-  connectivity_checker.Start();
-  rtc::Thread::Current()->ProcessMessages(1000);
-
-  NicMap nics = connectivity_checker.GetResults();
-
-  // Verify that no nics where checked.
-  EXPECT_EQ(0U, nics.size());
-}
-
-}  // namespace cricket
diff --git a/webrtc/p2p/client/httpportallocator.cc b/webrtc/p2p/client/httpportallocator.cc
index b36de56..a2d5038 100644
--- a/webrtc/p2p/client/httpportallocator.cc
+++ b/webrtc/p2p/client/httpportallocator.cc
@@ -13,10 +13,10 @@
 #include <algorithm>
 #include <map>
 
-#include "webrtc/base/asynchttprequest.h"
 #include "webrtc/base/basicdefs.h"
 #include "webrtc/base/common.h"
 #include "webrtc/base/helpers.h"
+#include "webrtc/base/httpcommon.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/nethelpers.h"
 #include "webrtc/base/signalthread.h"
@@ -144,7 +144,7 @@
     return;
   }
 
-  if (attempts_ == HttpPortAllocator::kNumRetries) {
+  if (attempts_ == HttpPortAllocatorBase::kNumRetries) {
     LOG(LS_ERROR) << "HttpPortAllocator: maximum number of requests reached; "
                   << "giving up on relay.";
     return;
@@ -167,7 +167,7 @@
 }
 
 std::string HttpPortAllocatorSessionBase::GetSessionRequestUrl() {
-  std::string url = std::string(HttpPortAllocator::kCreateSessionURL);
+  std::string url = std::string(HttpPortAllocatorBase::kCreateSessionURL);
   ASSERT(!username().empty());
   ASSERT(!password().empty());
   url = url + "?username=" + rtc::s_url_encode(username()) +
@@ -220,105 +220,4 @@
   ConfigReady(config);
 }
 
-// HttpPortAllocator
-
-HttpPortAllocator::HttpPortAllocator(
-    rtc::NetworkManager* network_manager,
-    rtc::PacketSocketFactory* socket_factory,
-    const std::string &user_agent)
-    : HttpPortAllocatorBase(network_manager, socket_factory, user_agent) {
-}
-
-HttpPortAllocator::HttpPortAllocator(
-    rtc::NetworkManager* network_manager,
-    const std::string &user_agent)
-    : HttpPortAllocatorBase(network_manager, user_agent) {
-}
-HttpPortAllocator::~HttpPortAllocator() {}
-
-PortAllocatorSession* HttpPortAllocator::CreateSessionInternal(
-    const std::string& content_name,
-    int component,
-    const std::string& ice_ufrag, const std::string& ice_pwd) {
-  return new HttpPortAllocatorSession(this, content_name, component,
-                                      ice_ufrag, ice_pwd, stun_hosts(),
-                                      relay_hosts(), relay_token(),
-                                      user_agent());
-}
-
-// HttpPortAllocatorSession
-
-HttpPortAllocatorSession::HttpPortAllocatorSession(
-    HttpPortAllocator* allocator,
-    const std::string& content_name,
-    int component,
-    const std::string& ice_ufrag,
-    const std::string& ice_pwd,
-    const std::vector<rtc::SocketAddress>& stun_hosts,
-    const std::vector<std::string>& relay_hosts,
-    const std::string& relay,
-    const std::string& agent)
-    : HttpPortAllocatorSessionBase(allocator, content_name, component,
-                                   ice_ufrag, ice_pwd, stun_hosts,
-                                   relay_hosts, relay, agent) {
-}
-
-HttpPortAllocatorSession::~HttpPortAllocatorSession() {
-  for (std::list<rtc::AsyncHttpRequest*>::iterator it = requests_.begin();
-       it != requests_.end(); ++it) {
-    (*it)->Destroy(true);
-  }
-}
-
-void HttpPortAllocatorSession::SendSessionRequest(const std::string& host,
-                                                  int port) {
-  // Initiate an HTTP request to create a session through the chosen host.
-  rtc::AsyncHttpRequest* request =
-      new rtc::AsyncHttpRequest(user_agent());
-  request->SignalWorkDone.connect(this,
-      &HttpPortAllocatorSession::OnRequestDone);
-
-  request->set_secure(port == rtc::HTTP_SECURE_PORT);
-  request->set_proxy(allocator()->proxy());
-  request->response().document.reset(new rtc::MemoryStream);
-  request->request().verb = rtc::HV_GET;
-  request->request().path = GetSessionRequestUrl();
-  request->request().addHeader("X-Talk-Google-Relay-Auth", relay_token(), true);
-  request->request().addHeader("X-Stream-Type", "video_rtp", true);
-  request->set_host(host);
-  request->set_port(port);
-  request->Start();
-  request->Release();
-
-  requests_.push_back(request);
-}
-
-void HttpPortAllocatorSession::OnRequestDone(rtc::SignalThread* data) {
-  rtc::AsyncHttpRequest* request =
-      static_cast<rtc::AsyncHttpRequest*>(data);
-
-  // Remove the request from the list of active requests.
-  std::list<rtc::AsyncHttpRequest*>::iterator it =
-      std::find(requests_.begin(), requests_.end(), request);
-  if (it != requests_.end()) {
-    requests_.erase(it);
-  }
-
-  if (request->response().scode != 200) {
-    LOG(LS_WARNING) << "HTTPPortAllocator: request "
-                    << " received error " << request->response().scode;
-    TryCreateRelaySession();
-    return;
-  }
-  LOG(LS_INFO) << "HTTPPortAllocator: request succeeded";
-
-  rtc::MemoryStream* stream =
-      static_cast<rtc::MemoryStream*>(request->response().document.get());
-  stream->Rewind();
-  size_t length;
-  stream->GetSize(&length);
-  std::string resp = std::string(stream->GetBuffer(), length);
-  ReceiveSessionResponse(resp);
-}
-
 }  // namespace cricket
diff --git a/webrtc/p2p/client/httpportallocator.h b/webrtc/p2p/client/httpportallocator.h
index e2fa743..e527659 100644
--- a/webrtc/p2p/client/httpportallocator.h
+++ b/webrtc/p2p/client/httpportallocator.h
@@ -26,6 +26,12 @@
 
 namespace cricket {
 
+// TODO(pthatcher): Remove this.  It's only used by chromoting, so we
+// should just move this code there.  It's used in these places in
+// chromium:
+// src/remoting/protocol/chromium_port_allocator.cc
+// src/remoting/client/plugin/pepper_port_allocator.cc
+// src/remoting/protocol/libjingle_transport_factory.cc
 class HttpPortAllocatorBase : public BasicPortAllocator {
  public:
   // The number of HTTP requests we should attempt before giving up.
@@ -130,44 +136,6 @@
   int attempts_;
 };
 
-class HttpPortAllocator : public HttpPortAllocatorBase {
- public:
-  HttpPortAllocator(rtc::NetworkManager* network_manager,
-                    const std::string& user_agent);
-  HttpPortAllocator(rtc::NetworkManager* network_manager,
-                    rtc::PacketSocketFactory* socket_factory,
-                    const std::string& user_agent);
-  virtual ~HttpPortAllocator();
-  virtual PortAllocatorSession* CreateSessionInternal(
-      const std::string& content_name,
-      int component,
-      const std::string& ice_ufrag, const std::string& ice_pwd);
-};
-
-class HttpPortAllocatorSession : public HttpPortAllocatorSessionBase {
- public:
-  HttpPortAllocatorSession(
-      HttpPortAllocator* allocator,
-      const std::string& content_name,
-      int component,
-      const std::string& ice_ufrag,
-      const std::string& ice_pwd,
-      const std::vector<rtc::SocketAddress>& stun_hosts,
-      const std::vector<std::string>& relay_hosts,
-      const std::string& relay,
-      const std::string& agent);
-  virtual ~HttpPortAllocatorSession();
-
-  virtual void SendSessionRequest(const std::string& host, int port);
-
- protected:
-  // Protected for diagnostics.
-  virtual void OnRequestDone(rtc::SignalThread* request);
-
- private:
-  std::list<rtc::AsyncHttpRequest*> requests_;
-};
-
 }  // namespace cricket
 
 #endif  // WEBRTC_P2P_CLIENT_HTTPPORTALLOCATOR_H_
diff --git a/webrtc/p2p/client/portallocator_unittest.cc b/webrtc/p2p/client/portallocator_unittest.cc
index 7a52a2e..9ea22dd 100644
--- a/webrtc/p2p/client/portallocator_unittest.cc
+++ b/webrtc/p2p/client/portallocator_unittest.cc
@@ -1218,109 +1218,3 @@
       kClientAddr);
   EXPECT_EQ(4U, candidates_.size());
 }
-
-// Test that the httpportallocator correctly maintains its lists of stun and
-// relay servers, by never allowing an empty list.
-TEST(HttpPortAllocatorTest, TestHttpPortAllocatorHostLists) {
-  rtc::FakeNetworkManager network_manager;
-  cricket::HttpPortAllocator alloc(&network_manager, "unit test agent");
-  EXPECT_EQ(1U, alloc.relay_hosts().size());
-  EXPECT_EQ(1U, alloc.stun_hosts().size());
-
-  std::vector<std::string> relay_servers;
-  std::vector<rtc::SocketAddress> stun_servers;
-
-  alloc.SetRelayHosts(relay_servers);
-  alloc.SetStunHosts(stun_servers);
-  EXPECT_EQ(1U, alloc.relay_hosts().size());
-  EXPECT_EQ(1U, alloc.stun_hosts().size());
-
-  relay_servers.push_back("1.unittest.corp.google.com");
-  relay_servers.push_back("2.unittest.corp.google.com");
-  stun_servers.push_back(
-      rtc::SocketAddress("1.unittest.corp.google.com", 0));
-  stun_servers.push_back(
-      rtc::SocketAddress("2.unittest.corp.google.com", 0));
-
-  alloc.SetRelayHosts(relay_servers);
-  alloc.SetStunHosts(stun_servers);
-  EXPECT_EQ(2U, alloc.relay_hosts().size());
-  EXPECT_EQ(2U, alloc.stun_hosts().size());
-}
-
-// Test that the HttpPortAllocator uses correct URL to create sessions.
-TEST(HttpPortAllocatorTest, TestSessionRequestUrl) {
-  rtc::FakeNetworkManager network_manager;
-  cricket::HttpPortAllocator alloc(&network_manager, "unit test agent");
-
-  rtc::scoped_ptr<cricket::HttpPortAllocatorSessionBase> session(
-      static_cast<cricket::HttpPortAllocatorSession*>(
-          alloc.CreateSessionInternal(
-              "test content", 0, kIceUfrag0, kIcePwd0)));
-  std::string url = session->GetSessionRequestUrl();
-  LOG(LS_INFO) << "url: " << url;
-  std::vector<std::string> parts;
-  rtc::split(url, '?', &parts);
-  ASSERT_EQ(2U, parts.size());
-
-  std::vector<std::string> args_parts;
-  rtc::split(parts[1], '&', &args_parts);
-
-  std::map<std::string, std::string> args;
-  for (std::vector<std::string>::iterator it = args_parts.begin();
-       it != args_parts.end(); ++it) {
-    std::vector<std::string> parts;
-    rtc::split(*it, '=', &parts);
-    ASSERT_EQ(2U, parts.size());
-    args[rtc::s_url_decode(parts[0])] = rtc::s_url_decode(parts[1]);
-  }
-
-  EXPECT_EQ(kIceUfrag0, args["username"]);
-  EXPECT_EQ(kIcePwd0, args["password"]);
-}
-
-// Tests that destroying ports with non-shared sockets does not crash.
-// b/19074679.
-TEST_F(PortAllocatorTest, TestDestroyPortsNonSharedSockets) {
-  AddInterface(kClientAddr);
-  EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
-  session_->StartGettingPorts();
-  ASSERT_EQ_WAIT(7U, candidates_.size(), kDefaultAllocationTimeout);
-  EXPECT_EQ(4U, ports_.size());
-
-  auto it = ports_.begin();
-  for (; it != ports_.end(); ++it) {
-    (reinterpret_cast<cricket::Port*>(*it))->Destroy();
-  }
-}
-
-class AllocationSequenceForTest : public cricket::AllocationSequence {
- public:
-  AllocationSequenceForTest(cricket::BasicPortAllocatorSession* session,
-                            rtc::Network* network,
-                            cricket::PortConfiguration* config,
-                            uint32 flags)
-      : cricket::AllocationSequence(session, network, config, flags) {}
-  using cricket::AllocationSequence::CreateTurnPort;
-};
-
-TEST_F(PortAllocatorTest, TestCreateTurnPortWithNullSocket) {
-  EXPECT_TRUE(CreateSession(cricket::ICE_CANDIDATE_COMPONENT_RTP));
-  session_->StartGettingPorts();
-
-  cricket::ServerAddresses stun_servers;
-  stun_servers.insert(kStunAddr);
-  cricket::PortConfiguration config(stun_servers, kIceUfrag0, kIcePwd0);
-  rtc::Network network1("test_eth0", "Test Network Adapter 1",
-                        rtc::IPAddress(0x12345600U), 24);
-  uint32 flag = cricket::PORTALLOCATOR_ENABLE_SHARED_SOCKET;
-  AllocationSequenceForTest alloc_sequence(
-      static_cast<cricket::BasicPortAllocatorSession*>(session_.get()),
-      &network1, &config, flag);
-  // This simply tests it will not crash if udp_socket_ in the
-  // AllocationSequence is null, which is chosen in the constructor.
-  cricket::RelayServerConfig relay_server(cricket::RELAY_TURN);
-  relay_server.ports.push_back(
-      cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP, false));
-  alloc_sequence.CreateTurnPort(relay_server);
-}
diff --git a/webrtc/p2p/p2p.gyp b/webrtc/p2p/p2p.gyp
index 74546ed..45c9e13 100644
--- a/webrtc/p2p/p2p.gyp
+++ b/webrtc/p2p/p2p.gyp
@@ -78,11 +78,8 @@
         'base/turnserver.cc',
         'base/turnserver.h',
         'base/udpport.h',
-        'client/autoportallocator.h',
         'client/basicportallocator.cc',
         'client/basicportallocator.h',
-        'client/connectivitychecker.cc',
-        'client/connectivitychecker.h',
         'client/httpportallocator.cc',
         'client/httpportallocator.h',
         'client/socketmonitor.cc',
diff --git a/webrtc/p2p/p2p_tests.gypi b/webrtc/p2p/p2p_tests.gypi
index 133e988..8c2c2b3 100644
--- a/webrtc/p2p/p2p_tests.gypi
+++ b/webrtc/p2p/p2p_tests.gypi
@@ -32,7 +32,6 @@
           'base/transport_unittest.cc',
           'base/transportdescriptionfactory_unittest.cc',
           'base/turnport_unittest.cc',
-          'client/connectivitychecker_unittest.cc',
           'client/fakeportallocator.h',
           'client/portallocator_unittest.cc',
           'stunprober/stunprober_unittest.cc',