OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "build/build_config.h" | 5 #include "build/build_config.h" |
6 | 6 |
7 #include "chrome/browser/sync/glue/sync_backend_host.h" | 7 #include "chrome/browser/sync/glue/sync_backend_host.h" |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <map> | 10 #include <map> |
(...skipping 24 matching lines...) Expand all Loading... |
35 #include "chrome/browser/sync/sessions/session_state.h" | 35 #include "chrome/browser/sync/sessions/session_state.h" |
36 #include "chrome/browser/sync/sync_prefs.h" | 36 #include "chrome/browser/sync/sync_prefs.h" |
37 #include "chrome/browser/sync/util/nigori.h" | 37 #include "chrome/browser/sync/util/nigori.h" |
38 #include "chrome/common/chrome_notification_types.h" | 38 #include "chrome/common/chrome_notification_types.h" |
39 #include "chrome/common/chrome_switches.h" | 39 #include "chrome/common/chrome_switches.h" |
40 #include "chrome/common/chrome_version_info.h" | 40 #include "chrome/common/chrome_version_info.h" |
41 #include "chrome/common/net/gaia/gaia_constants.h" | 41 #include "chrome/common/net/gaia/gaia_constants.h" |
42 #include "content/public/browser/browser_thread.h" | 42 #include "content/public/browser/browser_thread.h" |
43 #include "content/public/browser/notification_service.h" | 43 #include "content/public/browser/notification_service.h" |
44 #include "content/public/common/content_client.h" | 44 #include "content/public/common/content_client.h" |
| 45 #include "jingle/notifier/base/notification_method.h" |
| 46 #include "jingle/notifier/base/notifier_options.h" |
| 47 #include "net/base/host_port_pair.h" |
| 48 #include "net/url_request/url_request_context_getter.h" |
45 | 49 |
46 static const int kSaveChangesIntervalSeconds = 10; | 50 static const int kSaveChangesIntervalSeconds = 10; |
47 static const FilePath::CharType kSyncDataFolderName[] = | 51 static const FilePath::CharType kSyncDataFolderName[] = |
48 FILE_PATH_LITERAL("Sync Data"); | 52 FILE_PATH_LITERAL("Sync Data"); |
49 | 53 |
50 typedef TokenService::TokenAvailableDetails TokenAvailableDetails; | 54 typedef TokenService::TokenAvailableDetails TokenAvailableDetails; |
51 | 55 |
52 typedef GoogleServiceAuthError AuthError; | 56 typedef GoogleServiceAuthError AuthError; |
53 | 57 |
54 namespace browser_sync { | 58 namespace browser_sync { |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 | 223 |
220 // Our encryptor, which uses Chrome's encryption functions. | 224 // Our encryptor, which uses Chrome's encryption functions. |
221 ChromeEncryptor encryptor_; | 225 ChromeEncryptor encryptor_; |
222 | 226 |
223 // The top-level syncapi entry point. Lives on the sync thread. | 227 // The top-level syncapi entry point. Lives on the sync thread. |
224 scoped_ptr<sync_api::SyncManager> sync_manager_; | 228 scoped_ptr<sync_api::SyncManager> sync_manager_; |
225 | 229 |
226 DISALLOW_COPY_AND_ASSIGN(Core); | 230 DISALLOW_COPY_AND_ASSIGN(Core); |
227 }; | 231 }; |
228 | 232 |
| 233 namespace { |
| 234 |
| 235 // Parses the given command line for notifier options. |
| 236 notifier::NotifierOptions ParseNotifierOptions( |
| 237 const CommandLine& command_line, |
| 238 const scoped_refptr<net::URLRequestContextGetter>& |
| 239 request_context_getter) { |
| 240 notifier::NotifierOptions notifier_options; |
| 241 notifier_options.request_context_getter = request_context_getter; |
| 242 |
| 243 if (command_line.HasSwitch(switches::kSyncNotificationHostPort)) { |
| 244 notifier_options.xmpp_host_port = |
| 245 net::HostPortPair::FromString( |
| 246 command_line.GetSwitchValueASCII( |
| 247 switches::kSyncNotificationHostPort)); |
| 248 DVLOG(1) << "Using " << notifier_options.xmpp_host_port.ToString() |
| 249 << " for test sync notification server."; |
| 250 } |
| 251 |
| 252 notifier_options.try_ssltcp_first = |
| 253 command_line.HasSwitch(switches::kSyncTrySsltcpFirstForXmpp); |
| 254 DVLOG_IF(1, notifier_options.try_ssltcp_first) |
| 255 << "Trying SSL/TCP port before XMPP port for notifications."; |
| 256 |
| 257 notifier_options.invalidate_xmpp_login = |
| 258 command_line.HasSwitch(switches::kSyncInvalidateXmppLogin); |
| 259 DVLOG_IF(1, notifier_options.invalidate_xmpp_login) |
| 260 << "Invalidating sync XMPP login."; |
| 261 |
| 262 notifier_options.allow_insecure_connection = |
| 263 command_line.HasSwitch(switches::kSyncAllowInsecureXmppConnection); |
| 264 DVLOG_IF(1, notifier_options.allow_insecure_connection) |
| 265 << "Allowing insecure XMPP connections."; |
| 266 |
| 267 if (command_line.HasSwitch(switches::kSyncNotificationMethod)) { |
| 268 const std::string notification_method_str( |
| 269 command_line.GetSwitchValueASCII(switches::kSyncNotificationMethod)); |
| 270 notifier_options.notification_method = |
| 271 notifier::StringToNotificationMethod(notification_method_str); |
| 272 } |
| 273 |
| 274 return notifier_options; |
| 275 } |
| 276 |
| 277 } // namespace |
| 278 |
229 SyncBackendHost::SyncBackendHost(const std::string& name, | 279 SyncBackendHost::SyncBackendHost(const std::string& name, |
230 Profile* profile, | 280 Profile* profile, |
231 const base::WeakPtr<SyncPrefs>& sync_prefs) | 281 const base::WeakPtr<SyncPrefs>& sync_prefs) |
232 : weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), | 282 : weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
233 sync_thread_("Chrome_SyncThread"), | 283 sync_thread_("Chrome_SyncThread"), |
234 frontend_loop_(MessageLoop::current()), | 284 frontend_loop_(MessageLoop::current()), |
235 profile_(profile), | 285 profile_(profile), |
236 name_(name), | 286 name_(name), |
237 core_(new Core(name, profile_->GetPath().Append(kSyncDataFolderName), | 287 core_(new Core(name, profile_->GetPath().Append(kSyncDataFolderName), |
238 weak_ptr_factory_.GetWeakPtr())), | 288 weak_ptr_factory_.GetWeakPtr())), |
239 initialization_state_(NOT_ATTEMPTED), | 289 initialization_state_(NOT_ATTEMPTED), |
240 sync_prefs_(sync_prefs), | 290 sync_prefs_(sync_prefs), |
241 chrome_sync_notification_bridge_(profile_), | 291 chrome_sync_notification_bridge_(profile_), |
242 sync_notifier_factory_( | 292 sync_notifier_factory_( |
| 293 ParseNotifierOptions(*CommandLine::ForCurrentProcess(), |
| 294 profile_->GetRequestContext()), |
243 content::GetUserAgent(GURL()), | 295 content::GetUserAgent(GURL()), |
244 profile_->GetRequestContext(), | 296 sync_prefs), |
245 sync_prefs, | |
246 *CommandLine::ForCurrentProcess()), | |
247 frontend_(NULL), | 297 frontend_(NULL), |
248 last_auth_error_(AuthError::None()) { | 298 last_auth_error_(AuthError::None()) { |
249 } | 299 } |
250 | 300 |
251 SyncBackendHost::SyncBackendHost(Profile* profile) | 301 SyncBackendHost::SyncBackendHost(Profile* profile) |
252 : weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), | 302 : weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
253 sync_thread_("Chrome_SyncThread"), | 303 sync_thread_("Chrome_SyncThread"), |
254 frontend_loop_(MessageLoop::current()), | 304 frontend_loop_(MessageLoop::current()), |
255 profile_(profile), | 305 profile_(profile), |
256 name_("Unknown"), | 306 name_("Unknown"), |
257 initialization_state_(NOT_ATTEMPTED), | 307 initialization_state_(NOT_ATTEMPTED), |
258 chrome_sync_notification_bridge_(profile_), | 308 chrome_sync_notification_bridge_(profile_), |
259 sync_notifier_factory_( | 309 sync_notifier_factory_( |
| 310 ParseNotifierOptions(*CommandLine::ForCurrentProcess(), |
| 311 profile_->GetRequestContext()), |
260 content::GetUserAgent(GURL()), | 312 content::GetUserAgent(GURL()), |
261 NULL, | 313 base::WeakPtr<sync_notifier::InvalidationVersionTracker>()), |
262 base::WeakPtr<sync_notifier::InvalidationVersionTracker>(), | |
263 *CommandLine::ForCurrentProcess()), | |
264 frontend_(NULL), | 314 frontend_(NULL), |
265 last_auth_error_(AuthError::None()) { | 315 last_auth_error_(AuthError::None()) { |
266 } | 316 } |
267 | 317 |
268 SyncBackendHost::~SyncBackendHost() { | 318 SyncBackendHost::~SyncBackendHost() { |
269 DCHECK(!core_ && !frontend_) << "Must call Shutdown before destructor."; | 319 DCHECK(!core_ && !frontend_) << "Must call Shutdown before destructor."; |
270 DCHECK(!registrar_.get()); | 320 DCHECK(!registrar_.get()); |
271 } | 321 } |
272 | 322 |
273 namespace { | 323 namespace { |
(...skipping 1057 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1331 FROM_HERE, | 1381 FROM_HERE, |
1332 base::Bind(&SyncBackendHost::Core::DoRefreshNigori, | 1382 base::Bind(&SyncBackendHost::Core::DoRefreshNigori, |
1333 core_.get(), sync_thread_done_callback)); | 1383 core_.get(), sync_thread_done_callback)); |
1334 } | 1384 } |
1335 | 1385 |
1336 #undef SDVLOG | 1386 #undef SDVLOG |
1337 | 1387 |
1338 #undef SLOG | 1388 #undef SLOG |
1339 | 1389 |
1340 } // namespace browser_sync | 1390 } // namespace browser_sync |
OLD | NEW |