Index: chrome/browser/sync/glue/sync_backend_host.cc |
diff --git a/chrome/browser/sync/glue/sync_backend_host.cc b/chrome/browser/sync/glue/sync_backend_host.cc |
index 4328cbf7a7d5afb4c4b397659938f5193623d1f7..0525d2fee0a43a4fe85d6f90009b421611153d26 100644 |
--- a/chrome/browser/sync/glue/sync_backend_host.cc |
+++ b/chrome/browser/sync/glue/sync_backend_host.cc |
@@ -42,6 +42,10 @@ |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_service.h" |
#include "content/public/common/content_client.h" |
+#include "jingle/notifier/base/notification_method.h" |
+#include "jingle/notifier/base/notifier_options.h" |
+#include "net/base/host_port_pair.h" |
+#include "net/url_request/url_request_context_getter.h" |
static const int kSaveChangesIntervalSeconds = 10; |
static const FilePath::CharType kSyncDataFolderName[] = |
@@ -226,6 +230,52 @@ class SyncBackendHost::Core |
DISALLOW_COPY_AND_ASSIGN(Core); |
}; |
+namespace { |
+ |
+// Parses the given command line for notifier options. |
+notifier::NotifierOptions ParseNotifierOptions( |
+ const CommandLine& command_line, |
+ const scoped_refptr<net::URLRequestContextGetter>& |
+ request_context_getter) { |
+ notifier::NotifierOptions notifier_options; |
+ notifier_options.request_context_getter = request_context_getter; |
+ |
+ if (command_line.HasSwitch(switches::kSyncNotificationHostPort)) { |
+ notifier_options.xmpp_host_port = |
+ net::HostPortPair::FromString( |
+ command_line.GetSwitchValueASCII( |
+ switches::kSyncNotificationHostPort)); |
+ DVLOG(1) << "Using " << notifier_options.xmpp_host_port.ToString() |
+ << " for test sync notification server."; |
+ } |
+ |
+ notifier_options.try_ssltcp_first = |
+ command_line.HasSwitch(switches::kSyncTrySsltcpFirstForXmpp); |
+ DVLOG_IF(1, notifier_options.try_ssltcp_first) |
+ << "Trying SSL/TCP port before XMPP port for notifications."; |
+ |
+ notifier_options.invalidate_xmpp_login = |
+ command_line.HasSwitch(switches::kSyncInvalidateXmppLogin); |
+ DVLOG_IF(1, notifier_options.invalidate_xmpp_login) |
+ << "Invalidating sync XMPP login."; |
+ |
+ notifier_options.allow_insecure_connection = |
+ command_line.HasSwitch(switches::kSyncAllowInsecureXmppConnection); |
+ DVLOG_IF(1, notifier_options.allow_insecure_connection) |
+ << "Allowing insecure XMPP connections."; |
+ |
+ if (command_line.HasSwitch(switches::kSyncNotificationMethod)) { |
+ const std::string notification_method_str( |
+ command_line.GetSwitchValueASCII(switches::kSyncNotificationMethod)); |
+ notifier_options.notification_method = |
+ notifier::StringToNotificationMethod(notification_method_str); |
+ } |
+ |
+ return notifier_options; |
+} |
+ |
+} // namespace |
+ |
SyncBackendHost::SyncBackendHost(const std::string& name, |
Profile* profile, |
const base::WeakPtr<SyncPrefs>& sync_prefs) |
@@ -240,10 +290,10 @@ SyncBackendHost::SyncBackendHost(const std::string& name, |
sync_prefs_(sync_prefs), |
chrome_sync_notification_bridge_(profile_), |
sync_notifier_factory_( |
+ ParseNotifierOptions(*CommandLine::ForCurrentProcess(), |
+ profile_->GetRequestContext()), |
content::GetUserAgent(GURL()), |
- profile_->GetRequestContext(), |
- sync_prefs, |
- *CommandLine::ForCurrentProcess()), |
+ sync_prefs), |
frontend_(NULL), |
last_auth_error_(AuthError::None()) { |
} |
@@ -257,10 +307,10 @@ SyncBackendHost::SyncBackendHost(Profile* profile) |
initialization_state_(NOT_ATTEMPTED), |
chrome_sync_notification_bridge_(profile_), |
sync_notifier_factory_( |
+ ParseNotifierOptions(*CommandLine::ForCurrentProcess(), |
+ profile_->GetRequestContext()), |
content::GetUserAgent(GURL()), |
- NULL, |
- base::WeakPtr<sync_notifier::InvalidationVersionTracker>(), |
- *CommandLine::ForCurrentProcess()), |
+ base::WeakPtr<sync_notifier::InvalidationVersionTracker>()), |
frontend_(NULL), |
last_auth_error_(AuthError::None()) { |
} |