New libjingle integrated to chrome.
BUG=none
TEST=Chrome Sync works

Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=48798

Review URL: http://codereview.chromium.org/2255007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48811 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/autofill/autofill_xml_parser.cc b/chrome/browser/autofill/autofill_xml_parser.cc
index 2d84fa4..0142799 100644
--- a/chrome/browser/autofill/autofill_xml_parser.cc
+++ b/chrome/browser/autofill/autofill_xml_parser.cc
@@ -8,7 +8,7 @@
 #include <vector>
 
 #include "chrome/browser/autofill/autofill_type.h"
-#include "third_party/libjingle/files/talk/xmllite/qname.h"
+#include "third_party/libjingle/overrides/talk/xmllite/qname.h"
 
 AutoFillXmlParser::AutoFillXmlParser()
     : succeeded_(true) {
diff --git a/chrome/browser/autofill/autofill_xml_parser.h b/chrome/browser/autofill/autofill_xml_parser.h
index 69c662a..02cb31e1 100644
--- a/chrome/browser/autofill/autofill_xml_parser.h
+++ b/chrome/browser/autofill/autofill_xml_parser.h
@@ -11,7 +11,7 @@
 #include "chrome/browser/autofill/field_types.h"
 #include "chrome/browser/autofill/form_structure.h"
 #include "third_party/expat/files/lib/expat.h"
-#include "third_party/libjingle/files/talk/xmllite/xmlparser.h"
+#include "third_party/libjingle/source/talk/xmllite/xmlparser.h"
 
 // The base class that contains common functionality between
 // AutoFillQueryXmlParser and AutoFillUploadXmlParser.
diff --git a/chrome/browser/autofill/autofill_xml_parser_unittest.cc b/chrome/browser/autofill/autofill_xml_parser_unittest.cc
index c06df83..ec5ebb5 100644
--- a/chrome/browser/autofill/autofill_xml_parser_unittest.cc
+++ b/chrome/browser/autofill/autofill_xml_parser_unittest.cc
@@ -8,7 +8,7 @@
 #include "chrome/browser/autofill/autofill_xml_parser.h"
 #include "chrome/browser/autofill/field_types.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/libjingle/files/talk/xmllite/xmlparser.h"
+#include "third_party/libjingle/source/talk/xmllite/xmlparser.h"
 
 namespace {
 
diff --git a/chrome/browser/autofill/form_structure.cc b/chrome/browser/autofill/form_structure.cc
index 35d2820..75ea94b9 100644
--- a/chrome/browser/autofill/form_structure.cc
+++ b/chrome/browser/autofill/form_structure.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/autofill/autofill_xml_parser.h"
 #include "chrome/browser/autofill/field_types.h"
 #include "chrome/browser/autofill/form_field.h"
-#include "third_party/libjingle/files/talk/xmllite/xmlelement.h"
+#include "third_party/libjingle/source/talk/xmllite/xmlelement.h"
 #include "webkit/glue/form_field.h"
 
 using webkit_glue::FormData;
diff --git a/chrome/browser/chromeos/login/google_authenticator.cc b/chrome/browser/chromeos/login/google_authenticator.cc
index 8965200..24ebf72e 100644
--- a/chrome/browser/chromeos/login/google_authenticator.cc
+++ b/chrome/browser/chromeos/login/google_authenticator.cc
@@ -30,7 +30,7 @@
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
 #include "net/url_request/url_request_status.h"
-#include "third_party/libjingle/files/talk/base/urlencode.h"
+#include "third_party/libjingle/source/talk/base/urlencode.h"
 
 using base::Time;
 using base::TimeDelta;
diff --git a/chrome/browser/sync/tools/sync_listen_notifications.cc b/chrome/browser/sync/tools/sync_listen_notifications.cc
index c70fd4cf..899798ef 100644
--- a/chrome/browser/sync/tools/sync_listen_notifications.cc
+++ b/chrome/browser/sync/tools/sync_listen_notifications.cc
@@ -29,11 +29,12 @@
 #include "talk/base/logging.h"
 #include "talk/base/sigslot.h"
 #include "talk/base/physicalsocketserver.h"
+#include "talk/base/ssladapter.h"
 #include "talk/base/thread.h"
 #include "talk/xmpp/jid.h"
 #include "talk/xmpp/xmppclient.h"
 #include "talk/xmpp/xmppclientsettings.h"
-#include "talk/xmpp/xmppconstants.h"
+#include "talk/xmpp/constants.h"
 #include "talk/xmpp/xmppengine.h"
 
 // This is a simple utility that logs into an XMPP server, subscribes
diff --git a/chrome/common/net/notifier/base/task_pump.cc b/chrome/common/net/notifier/base/task_pump.cc
index feaf96c..17bde88e 100644
--- a/chrome/common/net/notifier/base/task_pump.cc
+++ b/chrome/common/net/notifier/base/task_pump.cc
@@ -35,7 +35,10 @@
   posted_wake_ = false;
   // We shouldn't be using libjingle for timeout tasks, so we should
   // have no timeout tasks at all.
-  DCHECK(!HasTimeoutTask());
+
+  // TODO(akalin): Add HasTimeoutTask() back in TaskRunner class and
+  // uncomment this check.
+  // DCHECK(!HasTimeoutTask())
   RunTasks();
 }
 
diff --git a/chrome/common/net/notifier/communicator/connection_settings.cc b/chrome/common/net/notifier/communicator/connection_settings.cc
index 00803224..39005a2 100644
--- a/chrome/common/net/notifier/communicator/connection_settings.cc
+++ b/chrome/common/net/notifier/communicator/connection_settings.cc
@@ -17,7 +17,7 @@
 class RandomGenerator {
  public:
   int operator()(int ceiling) {
-    return static_cast<int>(cricket::CreateRandomId() % ceiling);
+    return static_cast<int>(talk_base::CreateRandomId() % ceiling);
   }
 };
 
@@ -58,7 +58,7 @@
 
   // Permute addresses for this server. In some cases we haven't resolved the
   // to ip addresses.
-  talk_base::SocketAddress server(hostname, port, false);
+  talk_base::SocketAddress server(hostname, port);
   if (iplist_random.empty()) {
     // We couldn't pre-resolve the hostname, so let's hope it will resolve
     // further down the pipeline (by a proxy, for example).
diff --git a/chrome/common/net/notifier/communicator/login.cc b/chrome/common/net/notifier/communicator/login.cc
index 552eec60..35667143 100644
--- a/chrome/common/net/notifier/communicator/login.cc
+++ b/chrome/common/net/notifier/communicator/login.cc
@@ -35,7 +35,7 @@
 // Disconnect if network stays down for more than 10 seconds.
 static const int kDisconnectionDelaySecs = 10;
 
-Login::Login(talk_base::Task* parent,
+Login::Login(talk_base::TaskParent* parent,
              const buzz::XmppClientSettings& user_settings,
              const ConnectionOptions& options,
              std::string lang,
diff --git a/chrome/common/net/notifier/communicator/login.h b/chrome/common/net/notifier/communicator/login.h
index 2eac1c4..06abef0 100644
--- a/chrome/common/net/notifier/communicator/login.h
+++ b/chrome/common/net/notifier/communicator/login.h
@@ -31,7 +31,7 @@
 namespace talk_base {
 class FirewallManager;
 struct ProxyInfo;
-class Task;
+class TaskParent;
 }  // namespace talk_base
 
 namespace notifier {
@@ -49,7 +49,7 @@
               public sigslot::has_slots<> {
  public:
   // network_status and firewall may be NULL.
-  Login(talk_base::Task* parent,
+  Login(talk_base::TaskParent* parent,
         const buzz::XmppClientSettings& user_settings,
         const ConnectionOptions& options,
         std::string lang,
@@ -124,7 +124,7 @@
 
   void OnDisconnectTimeout();
 
-  talk_base::Task* parent_;
+  talk_base::TaskParent* parent_;
   scoped_ptr<LoginSettings> login_settings_;
   net::NetworkChangeNotifier* network_change_notifier_;
   AutoReconnect auto_reconnect_;
diff --git a/chrome/common/net/notifier/communicator/single_login_attempt.cc b/chrome/common/net/notifier/communicator/single_login_attempt.cc
index 965a024..706c8f2 100644
--- a/chrome/common/net/notifier/communicator/single_login_attempt.cc
+++ b/chrome/common/net/notifier/communicator/single_login_attempt.cc
@@ -21,13 +21,13 @@
 #include "talk/base/firewallsocketserver.h"
 #include "talk/base/signalthread.h"
 #include "talk/base/taskrunner.h"
-#include "talk/base/winsock_initializer.h"
+#include "talk/base/win32socketinit.h"
 #include "talk/xmllite/xmlelement.h"
 #include "talk/xmpp/prexmppauth.h"
 #include "talk/xmpp/saslcookiemechanism.h"
 #include "talk/xmpp/xmppclient.h"
 #include "talk/xmpp/xmppclientsettings.h"
-#include "talk/xmpp/xmppconstants.h"
+#include "talk/xmpp/constants.h"
 
 namespace notifier {
 
@@ -82,19 +82,19 @@
     SignalAuthDone();
   }
 
-  virtual bool IsAuthDone() { return true; }
+  virtual bool IsAuthDone() const { return true; }
 
-  virtual bool IsAuthorized() { return true; }
+  virtual bool IsAuthorized() const { return true; }
 
-  virtual bool HadError() { return false; }
+  virtual bool HadError() const { return false; }
 
-  virtual int GetError() { return 0; }
+  virtual int GetError() const { return 0; }
 
-  virtual buzz::CaptchaChallenge GetCaptchaChallenge() {
+  virtual buzz::CaptchaChallenge GetCaptchaChallenge() const {
     return buzz::CaptchaChallenge();
   }
 
-  virtual std::string GetAuthCookie() { return std::string(); }
+  virtual std::string GetAuthCookie() const { return std::string(); }
 
   // buzz::SaslHandler implementation.
 
@@ -114,9 +114,10 @@
         : NULL;
   }
 
+  // TODO(akalin): remove this code.
   virtual bool GetTlsServerInfo(const talk_base::SocketAddress& server,
                                 std::string* tls_server_hostname,
-                                std::string* tls_server_domain) {
+                                std::string* tls_server_domain) const {
     std::string server_ip = server.IPAsString();
     if ((server_ip == buzz::STR_TALK_GOOGLE_COM) ||
         (server_ip == buzz::STR_TALKX_L_GOOGLE_COM)) {
@@ -136,7 +137,7 @@
 
 }  // namespace
 
-SingleLoginAttempt::SingleLoginAttempt(talk_base::Task* parent,
+SingleLoginAttempt::SingleLoginAttempt(talk_base::TaskParent* parent,
                                        LoginSettings* login_settings,
                                        bool successful_connection)
     : talk_base::Task(parent),
diff --git a/chrome/common/net/notifier/communicator/single_login_attempt.h b/chrome/common/net/notifier/communicator/single_login_attempt.h
index 4d63cf0..245fa9d 100644
--- a/chrome/common/net/notifier/communicator/single_login_attempt.h
+++ b/chrome/common/net/notifier/communicator/single_login_attempt.h
@@ -46,7 +46,7 @@
 // fragile.
 class SingleLoginAttempt : public talk_base::Task, public sigslot::has_slots<> {
  public:
-  SingleLoginAttempt(talk_base::Task* parent,
+  SingleLoginAttempt(talk_base::TaskParent* parent,
                      LoginSettings* login_settings,
                      bool successful_connection);
   ~SingleLoginAttempt();
diff --git a/chrome/common/net/notifier/communicator/ssl_socket_adapter.cc b/chrome/common/net/notifier/communicator/ssl_socket_adapter.cc
index 1426864..9742283 100644
--- a/chrome/common/net/notifier/communicator/ssl_socket_adapter.cc
+++ b/chrome/common/net/notifier/communicator/ssl_socket_adapter.cc
@@ -95,7 +95,7 @@
   // are correct for us, so we don't use the config service to initialize this
   // object.
   net::SSLConfig ssl_config;
-  transport_socket_->set_addr(talk_base::SocketAddress(hostname_.c_str()));
+  transport_socket_->set_addr(talk_base::SocketAddress(hostname_, 0));
   ssl_socket_.reset(
       net::ClientSocketFactory::GetDefaultFactory()->CreateSSLClientSocket(
           transport_socket_, hostname_.c_str(), ssl_config));
diff --git a/chrome/common/net/notifier/communicator/xmpp_socket_adapter.cc b/chrome/common/net/notifier/communicator/xmpp_socket_adapter.cc
index da44352..7fe2b17 100644
--- a/chrome/common/net/notifier/communicator/xmpp_socket_adapter.cc
+++ b/chrome/common/net/notifier/communicator/xmpp_socket_adapter.cc
@@ -15,6 +15,7 @@
 #include "talk/base/firewallsocketserver.h"
 #include "talk/base/logging.h"
 #include "talk/base/socketadapters.h"
+#include "talk/base/ssladapter.h"
 #include "talk/base/thread.h"
 #include "talk/xmpp/xmppengine.h"
 
@@ -33,7 +34,7 @@
     write_buffer_capacity_(0),
     allow_unverified_certs_(allow_unverified_certs) {
   proxy_.type = xcs.proxy();
-  proxy_.address.SetIP(xcs.proxy_host(), false);
+  proxy_.address.SetIP(xcs.proxy_host());
   proxy_.address.SetPort(xcs.proxy_port());
   proxy_.username = xcs.proxy_user();
   proxy_.password = xcs.proxy_pass();
diff --git a/chrome/common/net/notifier/listener/listen_task.cc b/chrome/common/net/notifier/listener/listen_task.cc
index 03a74f4..715eeb9 100644
--- a/chrome/common/net/notifier/listener/listen_task.cc
+++ b/chrome/common/net/notifier/listener/listen_task.cc
@@ -11,7 +11,7 @@
 #include "talk/xmllite/qname.h"
 #include "talk/xmllite/xmlelement.h"
 #include "talk/xmpp/xmppclient.h"
-#include "talk/xmpp/xmppconstants.h"
+#include "talk/xmpp/constants.h"
 #include "talk/xmpp/xmppengine.h"
 
 namespace notifier {
diff --git a/chrome/common/net/notifier/listener/send_update_task.cc b/chrome/common/net/notifier/listener/send_update_task.cc
index 29398ce..eeeb0d1 100644
--- a/chrome/common/net/notifier/listener/send_update_task.cc
+++ b/chrome/common/net/notifier/listener/send_update_task.cc
@@ -12,11 +12,11 @@
 #include "chrome/common/net/notifier/listener/xml_element_util.h"
 #include "talk/xmllite/qname.h"
 #include "talk/xmpp/xmppclient.h"
-#include "talk/xmpp/xmppconstants.h"
+#include "talk/xmpp/constants.h"
 
 namespace notifier {
 
-SendUpdateTask::SendUpdateTask(Task* parent,
+SendUpdateTask::SendUpdateTask(TaskParent* parent,
                                const OutgoingNotificationData& data)
     : XmppTask(parent, buzz::XmppEngine::HL_SINGLE),  // Watch for one reply.
       notification_data_(data) {
diff --git a/chrome/common/net/notifier/listener/send_update_task.h b/chrome/common/net/notifier/listener/send_update_task.h
index 4ee5df7..2d78dfd1 100644
--- a/chrome/common/net/notifier/listener/send_update_task.h
+++ b/chrome/common/net/notifier/listener/send_update_task.h
@@ -18,7 +18,7 @@
 
 class SendUpdateTask : public buzz::XmppTask {
  public:
-  SendUpdateTask(Task* parent, const OutgoingNotificationData& data);
+  SendUpdateTask(TaskParent* parent, const OutgoingNotificationData& data);
   virtual ~SendUpdateTask();
 
   // Overridden from buzz::XmppTask.
diff --git a/chrome/common/net/notifier/listener/subscribe_task.cc b/chrome/common/net/notifier/listener/subscribe_task.cc
index 9a4047ead..ce12e546 100644
--- a/chrome/common/net/notifier/listener/subscribe_task.cc
+++ b/chrome/common/net/notifier/listener/subscribe_task.cc
@@ -13,13 +13,13 @@
 #include "talk/xmllite/qname.h"
 #include "talk/xmllite/xmlelement.h"
 #include "talk/xmpp/xmppclient.h"
-#include "talk/xmpp/xmppconstants.h"
+#include "talk/xmpp/constants.h"
 #include "talk/xmpp/xmppengine.h"
 
 namespace notifier {
 
 SubscribeTask::SubscribeTask(
-    Task* parent,
+    TaskParent* parent,
     const std::vector<std::string>& subscribed_services_list)
     : XmppTask(parent, buzz::XmppEngine::HL_SINGLE),
       subscribed_services_list_(subscribed_services_list) {
diff --git a/chrome/common/net/notifier/listener/subscribe_task.h b/chrome/common/net/notifier/listener/subscribe_task.h
index 5aa0685a..6d236ef2 100644
--- a/chrome/common/net/notifier/listener/subscribe_task.h
+++ b/chrome/common/net/notifier/listener/subscribe_task.h
@@ -21,7 +21,7 @@
 // in this class and any other class that uses notification_method.
 class SubscribeTask : public buzz::XmppTask {
  public:
-  SubscribeTask(Task* parent,
+  SubscribeTask(TaskParent* parent,
                 const std::vector<std::string>& subscribed_services_list);
   virtual ~SubscribeTask();
 
diff --git a/chrome/common/net/notifier/listener/subscribe_task_unittest.cc b/chrome/common/net/notifier/listener/subscribe_task_unittest.cc
index cda6b750..fb455b2 100644
--- a/chrome/common/net/notifier/listener/subscribe_task_unittest.cc
+++ b/chrome/common/net/notifier/listener/subscribe_task_unittest.cc
@@ -33,9 +33,10 @@
 
 TEST_F(SubscribeTaskTest, MakeSubscriptionMessage) {
   std::vector<std::string> subscribed_services_list;
+
   scoped_ptr<buzz::XmlElement> message_without_services(
       SubscribeTask::MakeSubscriptionMessage(subscribed_services_list,
-                                             to_jid_bare_, task_id_));
+                                    to_jid_bare_, task_id_));
   std::string expected_xml_string =
       StringPrintf(
           "<cli:iq type=\"get\" to=\"%s\" id=\"%s\" "
@@ -51,7 +52,7 @@
   subscribed_services_list.push_back("test_service_url2");
   scoped_ptr<buzz::XmlElement> message_with_services(
       SubscribeTask::MakeSubscriptionMessage(subscribed_services_list,
-                                             to_jid_bare_, task_id_));
+                                    to_jid_bare_, task_id_));
   expected_xml_string =
       StringPrintf(
           "<cli:iq type=\"get\" to=\"%s\" id=\"%s\" "