| 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 <cstddef> | 5 #include <cstddef> |
| 6 #include <cstdio> | 6 #include <cstdio> |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/at_exit.h" | 9 #include "base/at_exit.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 #include "sync/internal_api/public/sync_manager.h" | 39 #include "sync/internal_api/public/sync_manager.h" |
| 40 #include "sync/internal_api/public/sync_manager_factory.h" | 40 #include "sync/internal_api/public/sync_manager_factory.h" |
| 41 #include "sync/internal_api/public/util/report_unrecoverable_error_function.h" | 41 #include "sync/internal_api/public/util/report_unrecoverable_error_function.h" |
| 42 #include "sync/internal_api/public/util/unrecoverable_error_handler.h" | 42 #include "sync/internal_api/public/util/unrecoverable_error_handler.h" |
| 43 #include "sync/internal_api/public/util/weak_handle.h" | 43 #include "sync/internal_api/public/util/weak_handle.h" |
| 44 #include "sync/js/js_event_details.h" | 44 #include "sync/js/js_event_details.h" |
| 45 #include "sync/js/js_event_handler.h" | 45 #include "sync/js/js_event_handler.h" |
| 46 #include "sync/test/fake_encryptor.h" | 46 #include "sync/test/fake_encryptor.h" |
| 47 #include "sync/tools/invalidation_helper.h" | 47 #include "sync/tools/invalidation_helper.h" |
| 48 #include "sync/tools/null_invalidation_state_tracker.h" | 48 #include "sync/tools/null_invalidation_state_tracker.h" |
| 49 #include "url/gurl.h" |
| 49 | 50 |
| 50 #if defined(OS_MACOSX) | 51 #if defined(OS_MACOSX) |
| 51 #include "base/mac/scoped_nsautorelease_pool.h" | 52 #include "base/mac/scoped_nsautorelease_pool.h" |
| 52 #endif | 53 #endif |
| 53 | 54 |
| 54 // This is a simple utility that initializes a sync client and | 55 // This is a simple utility that initializes a sync client and |
| 55 // prints out any events. | 56 // prints out any events. |
| 56 | 57 |
| 57 // TODO(akalin): Refactor to combine shared code with | 58 // TODO(akalin): Refactor to combine shared code with |
| 58 // sync_listen_notifications. | 59 // sync_listen_notifications. |
| 59 namespace syncer { | 60 namespace syncer { |
| 60 namespace { | 61 namespace { |
| 61 | 62 |
| 62 const char kEmailSwitch[] = "email"; | 63 const char kEmailSwitch[] = "email"; |
| 63 const char kTokenSwitch[] = "token"; | 64 const char kTokenSwitch[] = "token"; |
| 64 const char kXmppHostPortSwitch[] = "xmpp-host-port"; | 65 const char kXmppHostPortSwitch[] = "xmpp-host-port"; |
| 65 const char kXmppTrySslTcpFirstSwitch[] = "xmpp-try-ssltcp-first"; | 66 const char kXmppTrySslTcpFirstSwitch[] = "xmpp-try-ssltcp-first"; |
| 66 const char kXmppAllowInsecureConnectionSwitch[] = | 67 const char kXmppAllowInsecureConnectionSwitch[] = |
| 67 "xmpp-allow-insecure-connection"; | 68 "xmpp-allow-insecure-connection"; |
| 69 const char kSyncServiceURL[] = "https://clients4.google.com/chrome-sync/dev"; |
| 68 | 70 |
| 69 // Needed to use a real host resolver. | 71 // Needed to use a real host resolver. |
| 70 class MyTestURLRequestContext : public net::TestURLRequestContext { | 72 class MyTestURLRequestContext : public net::TestURLRequestContext { |
| 71 public: | 73 public: |
| 72 MyTestURLRequestContext() : TestURLRequestContext(true) { | 74 MyTestURLRequestContext() : TestURLRequestContext(true) { |
| 73 context_storage_.set_host_resolver( | 75 context_storage_.set_host_resolver( |
| 74 net::HostResolver::CreateDefaultResolver(NULL)); | 76 net::HostResolver::CreateDefaultResolver(NULL)); |
| 75 context_storage_.set_transport_security_state( | 77 context_storage_.set_transport_security_state( |
| 76 new net::TransportSecurityState()); | 78 new net::TransportSecurityState()); |
| 77 Init(); | 79 Init(); |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 scoped_refptr<PassiveModelWorker> passive_model_safe_worker = | 399 scoped_refptr<PassiveModelWorker> passive_model_safe_worker = |
| 398 new PassiveModelWorker(&sync_loop, NULL); | 400 new PassiveModelWorker(&sync_loop, NULL); |
| 399 std::vector<scoped_refptr<ModelSafeWorker> > workers; | 401 std::vector<scoped_refptr<ModelSafeWorker> > workers; |
| 400 workers.push_back(passive_model_safe_worker); | 402 workers.push_back(passive_model_safe_worker); |
| 401 | 403 |
| 402 // Set up sync manager. | 404 // Set up sync manager. |
| 403 SyncManagerFactory sync_manager_factory(SyncManagerFactory::NORMAL); | 405 SyncManagerFactory sync_manager_factory(SyncManagerFactory::NORMAL); |
| 404 scoped_ptr<SyncManager> sync_manager = | 406 scoped_ptr<SyncManager> sync_manager = |
| 405 sync_manager_factory.CreateSyncManager("sync_client manager"); | 407 sync_manager_factory.CreateSyncManager("sync_client manager"); |
| 406 LoggingJsEventHandler js_event_handler; | 408 LoggingJsEventHandler js_event_handler; |
| 407 const char kSyncServerAndPath[] = "clients4.google.com/chrome-sync/dev"; | |
| 408 int kSyncServerPort = 443; | |
| 409 bool kUseSsl = true; | |
| 410 // Used only by InitialProcessMetadata(), so it's okay to leave this as NULL. | 409 // Used only by InitialProcessMetadata(), so it's okay to leave this as NULL. |
| 411 const scoped_refptr<base::TaskRunner> blocking_task_runner = NULL; | 410 const scoped_refptr<base::TaskRunner> blocking_task_runner = NULL; |
| 412 const char kUserAgent[] = "sync_client"; | 411 const char kUserAgent[] = "sync_client"; |
| 413 // TODO(akalin): Replace this with just the context getter once | 412 // TODO(akalin): Replace this with just the context getter once |
| 414 // HttpPostProviderFactory is removed. | 413 // HttpPostProviderFactory is removed. |
| 415 CancelationSignal factory_cancelation_signal; | 414 CancelationSignal factory_cancelation_signal; |
| 416 scoped_ptr<HttpPostProviderFactory> post_factory( | 415 scoped_ptr<HttpPostProviderFactory> post_factory( |
| 417 new HttpBridgeFactory(context_getter.get(), | 416 new HttpBridgeFactory(context_getter.get(), |
| 418 base::Bind(&StubNetworkTimeUpdateCallback), | 417 base::Bind(&StubNetworkTimeUpdateCallback), |
| 419 &factory_cancelation_signal)); | 418 &factory_cancelation_signal)); |
| 420 post_factory->Init(kUserAgent); | 419 post_factory->Init(kUserAgent); |
| 421 // Used only when committing bookmarks, so it's okay to leave this | 420 // Used only when committing bookmarks, so it's okay to leave this |
| 422 // as NULL. | 421 // as NULL. |
| 423 ExtensionsActivity* extensions_activity = NULL; | 422 ExtensionsActivity* extensions_activity = NULL; |
| 424 LoggingChangeDelegate change_delegate; | 423 LoggingChangeDelegate change_delegate; |
| 425 const char kRestoredKeyForBootstrapping[] = ""; | 424 const char kRestoredKeyForBootstrapping[] = ""; |
| 426 const char kRestoredKeystoreKeyForBootstrapping[] = ""; | 425 const char kRestoredKeystoreKeyForBootstrapping[] = ""; |
| 427 NullEncryptor null_encryptor; | 426 NullEncryptor null_encryptor; |
| 428 InternalComponentsFactoryImpl::Switches factory_switches = { | 427 InternalComponentsFactoryImpl::Switches factory_switches = { |
| 429 InternalComponentsFactory::ENCRYPTION_KEYSTORE, | 428 InternalComponentsFactory::ENCRYPTION_KEYSTORE, |
| 430 InternalComponentsFactory::BACKOFF_NORMAL | 429 InternalComponentsFactory::BACKOFF_NORMAL |
| 431 }; | 430 }; |
| 432 CancelationSignal scm_cancelation_signal; | 431 CancelationSignal scm_cancelation_signal; |
| 433 | 432 |
| 434 sync_manager->Init(database_dir.path(), | 433 sync_manager->Init(database_dir.path(), |
| 435 WeakHandle<JsEventHandler>( | 434 WeakHandle<JsEventHandler>(js_event_handler.AsWeakPtr()), |
| 436 js_event_handler.AsWeakPtr()), | 435 GURL(kSyncServiceURL), |
| 437 kSyncServerAndPath, | 436 post_factory.Pass(), |
| 438 kSyncServerPort, | 437 workers, |
| 439 kUseSsl, | 438 extensions_activity, |
| 440 post_factory.Pass(), | 439 &change_delegate, |
| 441 workers, | 440 credentials, |
| 442 extensions_activity, | 441 invalidator_id, |
| 443 &change_delegate, | 442 kRestoredKeyForBootstrapping, |
| 444 credentials, | 443 kRestoredKeystoreKeyForBootstrapping, |
| 445 invalidator_id, | 444 new InternalComponentsFactoryImpl(factory_switches), |
| 446 kRestoredKeyForBootstrapping, | 445 &null_encryptor, |
| 447 kRestoredKeystoreKeyForBootstrapping, | 446 scoped_ptr<UnrecoverableErrorHandler>( |
| 448 new InternalComponentsFactoryImpl(factory_switches), | 447 new LoggingUnrecoverableErrorHandler).Pass(), |
| 449 &null_encryptor, | 448 &LogUnrecoverableErrorContext, |
| 450 scoped_ptr<UnrecoverableErrorHandler>( | 449 &scm_cancelation_signal); |
| 451 new LoggingUnrecoverableErrorHandler).Pass(), | |
| 452 &LogUnrecoverableErrorContext, | |
| 453 &scm_cancelation_signal); | |
| 454 // TODO(akalin): Avoid passing in model parameters multiple times by | 450 // TODO(akalin): Avoid passing in model parameters multiple times by |
| 455 // organizing handling of model types. | 451 // organizing handling of model types. |
| 456 invalidator->UpdateCredentials(credentials.email, credentials.sync_token); | 452 invalidator->UpdateCredentials(credentials.email, credentials.sync_token); |
| 457 scoped_ptr<InvalidatorShim> shim(new InvalidatorShim(sync_manager.get())); | 453 scoped_ptr<InvalidatorShim> shim(new InvalidatorShim(sync_manager.get())); |
| 458 invalidator->RegisterHandler(shim.get()); | 454 invalidator->RegisterHandler(shim.get()); |
| 459 invalidator->UpdateRegisteredIds( | 455 invalidator->UpdateRegisteredIds( |
| 460 shim.get(), ModelTypeSetToObjectIdSet(model_types)); | 456 shim.get(), ModelTypeSetToObjectIdSet(model_types)); |
| 461 sync_manager->StartSyncingNormally(routing_info); | 457 sync_manager->StartSyncingNormally(routing_info); |
| 462 | 458 |
| 463 sync_loop.Run(); | 459 sync_loop.Run(); |
| 464 | 460 |
| 465 io_thread.Stop(); | 461 io_thread.Stop(); |
| 466 return 0; | 462 return 0; |
| 467 } | 463 } |
| 468 | 464 |
| 469 } // namespace | 465 } // namespace |
| 470 } // namespace syncer | 466 } // namespace syncer |
| 471 | 467 |
| 472 int main(int argc, char* argv[]) { | 468 int main(int argc, char* argv[]) { |
| 473 return syncer::SyncClientMain(argc, argv); | 469 return syncer::SyncClientMain(argc, argv); |
| 474 } | 470 } |
| OLD | NEW |