diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-25 21:30:38 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-25 21:30:38 +0000 |
commit | 66761b95332549f825999e482c17c94675275f49 (patch) | |
tree | fc5307808a2c62f1eff2a9f37db3aff11c5455d9 /chrome/browser/sync | |
parent | e313f3b11360902a3da9b3b1cc0df2a4792d0867 (diff) | |
download | chromium_src-66761b95332549f825999e482c17c94675275f49.zip chromium_src-66761b95332549f825999e482c17c94675275f49.tar.gz chromium_src-66761b95332549f825999e482c17c94675275f49.tar.bz2 |
Massively simplify the NetworkChangeNotifier infrastructure:
* Use a process-wide object (singleton pattern)
* Create/destroy this object on the main thread, make it outlive all consumers
* Make observer-related functions threadsafe
As a result, the notifier can now be used by any thread (eliminating things like NetworkChangeObserverProxy and NetworkChangeNotifierProxy, and expanding its usefulness); its creation and inner workings are much simplified (eliminating implementation-specific classes); and it is simpler to access (eliminating things like NetworkChangeNotifierThread and a LOT of passing pointers around).
BUG=none
TEST=Unittests; network changes still trigger notifications
Review URL: http://codereview.chromium.org/2802015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50895 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync')
-rw-r--r-- | chrome/browser/sync/engine/syncapi.cc | 46 | ||||
-rw-r--r-- | chrome/browser/sync/engine/syncapi.h | 11 | ||||
-rw-r--r-- | chrome/browser/sync/glue/sync_backend_host.cc | 6 | ||||
-rw-r--r-- | chrome/browser/sync/glue/sync_backend_host.h | 28 | ||||
-rw-r--r-- | chrome/browser/sync/net/network_change_notifier_io_thread.cc | 24 | ||||
-rw-r--r-- | chrome/browser/sync/net/network_change_notifier_io_thread.h | 38 | ||||
-rw-r--r-- | chrome/browser/sync/net/network_change_notifier_io_thread_unittest.cc | 80 | ||||
-rw-r--r-- | chrome/browser/sync/notifier/server_notifier_thread.cc | 5 | ||||
-rw-r--r-- | chrome/browser/sync/notifier/server_notifier_thread.h | 8 | ||||
-rw-r--r-- | chrome/browser/sync/profile_sync_factory_impl.cc | 16 | ||||
-rw-r--r-- | chrome/browser/sync/profile_sync_factory_impl.h | 12 | ||||
-rw-r--r-- | chrome/browser/sync/profile_sync_factory_impl_unittest.cc | 7 | ||||
-rw-r--r-- | chrome/browser/sync/profile_sync_service.cc | 15 | ||||
-rw-r--r-- | chrome/browser/sync/profile_sync_service.h | 11 | ||||
-rw-r--r-- | chrome/browser/sync/sync_setup_wizard_unittest.cc | 10 | ||||
-rw-r--r-- | chrome/browser/sync/test_profile_sync_service.h | 23 |
16 files changed, 37 insertions, 303 deletions
diff --git a/chrome/browser/sync/engine/syncapi.cc b/chrome/browser/sync/engine/syncapi.cc index e970c81..1012bf7 100644 --- a/chrome/browser/sync/engine/syncapi.cc +++ b/chrome/browser/sync/engine/syncapi.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -54,7 +54,6 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/deprecated/event_sys.h" #include "chrome/common/net/gaia/gaia_authenticator.h" -#include "chrome/common/net/network_change_notifier_proxy.h" #include "chrome/common/net/notifier/listener/mediator_thread_impl.h" #include "chrome/common/net/notifier/listener/notification_constants.h" #include "chrome/common/net/notifier/listener/talk_mediator.h" @@ -883,8 +882,6 @@ class SyncManager::SyncInternal const char* gaia_service_id, const char* gaia_source, bool use_ssl, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, HttpPostProviderFactory* post_factory, HttpPostProviderFactory* auth_post_factory, ModelSafeWorkerRegistrar* model_safe_worker_registrar, @@ -1166,10 +1163,6 @@ class SyncManager::SyncInternal // The sync dir_manager to which we belong. SyncManager* const sync_manager_; - // An object that notifies us whenever there is a network-related - // change (e.g., disconnections). - scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_; - // The entity that provides us with information about which types to sync. // The instance is shared between the SyncManager and the Syncer. ModelSafeWorkerRegistrar* registrar_; @@ -1201,8 +1194,6 @@ bool SyncManager::Init(const FilePath& database_location, const char* gaia_service_id, const char* gaia_source, bool use_ssl, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, HttpPostProviderFactory* post_factory, HttpPostProviderFactory* auth_post_factory, ModelSafeWorkerRegistrar* registrar, @@ -1221,7 +1212,6 @@ bool SyncManager::Init(const FilePath& database_location, gaia_service_id, gaia_source, use_ssl, - network_change_notifier_thread, post_factory, auth_post_factory, registrar, @@ -1271,8 +1261,6 @@ bool SyncManager::SyncInternal::Init( const char* gaia_service_id, const char* gaia_source, bool use_ssl, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, HttpPostProviderFactory* post_factory, HttpPostProviderFactory* auth_post_factory, ModelSafeWorkerRegistrar* model_safe_worker_registrar, @@ -1310,29 +1298,22 @@ bool SyncManager::SyncInternal::Init( // Watch various objects for aggregated status. allstatus_.WatchConnectionManager(connection_manager()); - network_change_notifier_.reset( - new chrome_common_net::NetworkChangeNotifierProxy( - network_change_notifier_thread)); - network_change_notifier_->AddObserver(this); - // TODO(akalin): CheckServerReachable() can block, which may cause - // jank if we try to shut down sync. Fix this. + net::NetworkChangeNotifier::AddObserver(this); + // TODO(akalin): CheckServerReachable() can block, which may cause jank if we + // try to shut down sync. Fix this. connection_manager()->CheckServerReachable(); - // NOTIFICATION_SERVER uses a substantially different notification - // method, so it has its own MediatorThread implementation. - // Everything else just uses MediatorThreadImpl. + // NOTIFICATION_SERVER uses a substantially different notification method, so + // it has its own MediatorThread implementation. Everything else just uses + // MediatorThreadImpl. notifier::MediatorThread* mediator_thread = (notification_method == browser_sync::NOTIFICATION_SERVER) ? - static_cast<notifier::MediatorThread*>( - new sync_notifier::ServerNotifierThread( - network_change_notifier_thread)) : - static_cast<notifier::MediatorThread*>( - new notifier::MediatorThreadImpl(network_change_notifier_thread)); + new sync_notifier::ServerNotifierThread() : + new notifier::MediatorThreadImpl(); const bool kInitializeSsl = true; const bool kConnectImmediately = false; - talk_mediator_.reset(new TalkMediatorImpl( - mediator_thread, - kInitializeSsl, kConnectImmediately, invalidate_xmpp_auth_token)); + talk_mediator_.reset(new TalkMediatorImpl(mediator_thread, kInitializeSsl, + kConnectImmediately, invalidate_xmpp_auth_token)); if (notification_method != browser_sync::NOTIFICATION_LEGACY && notification_method != browser_sync::NOTIFICATION_SERVER) { if (notification_method == browser_sync::NOTIFICATION_TRANSITIONAL) { @@ -1595,10 +1576,7 @@ void SyncManager::SyncInternal::Shutdown() { core_message_loop_->SetNestableTasksAllowed(old_state); } - if (network_change_notifier_.get()) { - network_change_notifier_->RemoveObserver(this); - network_change_notifier_.reset(); - } + net::NetworkChangeNotifier::RemoveObserver(this); if (dir_manager()) { dir_manager()->FinalSaveChangesForAll(); diff --git a/chrome/browser/sync/engine/syncapi.h b/chrome/browser/sync/engine/syncapi.h index 88b2f0b..c9380e5 100644 --- a/chrome/browser/sync/engine/syncapi.h +++ b/chrome/browser/sync/engine/syncapi.h @@ -1,4 +1,4 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -60,10 +60,6 @@ struct SyncSessionSnapshot; } } -namespace chrome_common_net { -class NetworkChangeNotifierThread; -} - // Forward declarations of internal class types so that sync API objects // may have opaque pointers to these types. namespace syncable { @@ -710,9 +706,6 @@ class SyncManager { // the default is false. // |gaia_service_id| is the service id used for GAIA authentication. If it's // null then default will be used. - // |network_change_notifier_thread| (which we don't own) is the - // thread from which we get notifications regarding changes to the - // network state. // |post_factory| will be owned internally and used to create // instances of an HttpPostProvider. // |auth_post_factory| will be owned internally and used to create @@ -745,8 +738,6 @@ class SyncManager { const char* gaia_service_id, const char* gaia_source, bool use_ssl, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, HttpPostProviderFactory* post_factory, HttpPostProviderFactory* auth_post_factory, browser_sync::ModelSafeWorkerRegistrar* registrar, diff --git a/chrome/browser/sync/glue/sync_backend_host.cc b/chrome/browser/sync/glue/sync_backend_host.cc index 0c36f3d..7428245 100644 --- a/chrome/browser/sync/glue/sync_backend_host.cc +++ b/chrome/browser/sync/glue/sync_backend_host.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -67,8 +67,6 @@ SyncBackendHost::~SyncBackendHost() { void SyncBackendHost::Initialize( const GURL& sync_service_url, const syncable::ModelTypeSet& types, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, URLRequestContextGetter* baseline_context_getter, const std::string& lsid, bool delete_sync_data_folder, @@ -107,7 +105,6 @@ void SyncBackendHost::Initialize( NewRunnableMethod(core_.get(), &SyncBackendHost::Core::DoInitialize, Core::DoInitializeOptions( sync_service_url, true, - network_change_notifier_thread, new HttpBridgeFactory(baseline_context_getter), new HttpBridgeFactory(baseline_context_getter), lsid, @@ -392,7 +389,6 @@ void SyncBackendHost::Core::DoInitialize(const DoInitializeOptions& options) { kGaiaServiceId, kGaiaSourceForChrome, options.service_url.SchemeIsSecure(), - options.network_change_notifier_thread, options.http_bridge_factory, options.auth_http_bridge_factory, host_, // ModelSafeWorkerRegistrar. diff --git a/chrome/browser/sync/glue/sync_backend_host.h b/chrome/browser/sync/glue/sync_backend_host.h index be20013..0193163 100644 --- a/chrome/browser/sync/glue/sync_backend_host.h +++ b/chrome/browser/sync/glue/sync_backend_host.h @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -29,10 +29,6 @@ class CancelableTask; class Profile; -namespace chrome_common_net { -class NetworkChangeNotifierThread; -} - namespace browser_sync { namespace sessions { @@ -100,8 +96,6 @@ class SyncBackendHost : public browser_sync::ModelSafeWorkerRegistrar { // Optionally delete the Sync Data folder (if it's corrupt). void Initialize(const GURL& service_url, const syncable::ModelTypeSet& types, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, URLRequestContextGetter* baseline_context_getter, const std::string& lsid, bool delete_sync_data_folder, @@ -180,8 +174,6 @@ class SyncBackendHost : public browser_sync::ModelSafeWorkerRegistrar { // Called from unit test to bypass authentication and initialize the syncapi // to a state suitable for testing but not production. void InitializeForTestMode(const std::wstring& test_user, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, sync_api::HttpPostProviderFactory* factory, sync_api::HttpPostProviderFactory* auth_factory, bool delete_sync_data_folder, @@ -201,7 +193,6 @@ class SyncBackendHost : public browser_sync::ModelSafeWorkerRegistrar { NewRunnableMethod(core_.get(), &SyncBackendHost::Core::DoInitializeForTest, test_user, - network_change_notifier_thread, factory, auth_factory, delete_sync_data_folder, @@ -237,8 +228,6 @@ class SyncBackendHost : public browser_sync::ModelSafeWorkerRegistrar { DoInitializeOptions( const GURL& service_url, bool attempt_last_user_authentication, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, sync_api::HttpPostProviderFactory* http_bridge_factory, sync_api::HttpPostProviderFactory* auth_http_bridge_factory, const std::string& lsid, @@ -248,7 +237,6 @@ class SyncBackendHost : public browser_sync::ModelSafeWorkerRegistrar { NotificationMethod notification_method) : service_url(service_url), attempt_last_user_authentication(attempt_last_user_authentication), - network_change_notifier_thread(network_change_notifier_thread), http_bridge_factory(http_bridge_factory), auth_http_bridge_factory(auth_http_bridge_factory), lsid(lsid), @@ -259,8 +247,6 @@ class SyncBackendHost : public browser_sync::ModelSafeWorkerRegistrar { GURL service_url; bool attempt_last_user_authentication; - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread; sync_api::HttpPostProviderFactory* http_bridge_factory; sync_api::HttpPostProviderFactory* auth_http_bridge_factory; std::string lsid; @@ -321,19 +307,13 @@ class SyncBackendHost : public browser_sync::ModelSafeWorkerRegistrar { // last known user (since it will fail in test mode) and does some extra // setup to nudge the syncapi into a useable state. void DoInitializeForTest(const std::wstring& test_user, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, sync_api::HttpPostProviderFactory* factory, sync_api::HttpPostProviderFactory* auth_factory, bool delete_sync_data_folder, NotificationMethod notification_method) { - DoInitialize( - DoInitializeOptions(GURL(), false, - network_change_notifier_thread, - factory, auth_factory, - std::string(), delete_sync_data_folder, - false, false, - notification_method)); + DoInitialize(DoInitializeOptions(GURL(), false, factory, auth_factory, + std::string(), delete_sync_data_folder, + false, false, notification_method)); syncapi_->SetupForTestMode(test_user); } #endif diff --git a/chrome/browser/sync/net/network_change_notifier_io_thread.cc b/chrome/browser/sync/net/network_change_notifier_io_thread.cc deleted file mode 100644 index c2cd2b4..0000000 --- a/chrome/browser/sync/net/network_change_notifier_io_thread.cc +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/sync/net/network_change_notifier_io_thread.h" - -#include "base/logging.h" -#include "chrome/browser/io_thread.h" - -NetworkChangeNotifierIOThread::NetworkChangeNotifierIOThread( - IOThread* io_thread) : io_thread_(io_thread) { - DCHECK(io_thread_); -} - -NetworkChangeNotifierIOThread::~NetworkChangeNotifierIOThread() {} - -MessageLoop* NetworkChangeNotifierIOThread::GetMessageLoop() const { - return io_thread_->message_loop(); -} - -net::NetworkChangeNotifier* -NetworkChangeNotifierIOThread::GetNetworkChangeNotifier() const { - return io_thread_->globals()->network_change_notifier.get(); -} diff --git a/chrome/browser/sync/net/network_change_notifier_io_thread.h b/chrome/browser/sync/net/network_change_notifier_io_thread.h deleted file mode 100644 index c15156a..0000000 --- a/chrome/browser/sync/net/network_change_notifier_io_thread.h +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_SYNC_NET_NETWORK_CHANGE_NOTIFIER_IO_THREAD_H_ -#define CHROME_BROWSER_SYNC_NET_NETWORK_CHANGE_NOTIFIER_IO_THREAD_H_ - -// This is a simple NetworkChangeNotifierThread wrapper around an -// IOThread and its NetworkChangeNotifier. - -#include "base/basictypes.h" -#include "chrome/common/net/network_change_notifier_thread.h" - -class IOThread; -class MessageLoop; - -class NetworkChangeNotifierIOThread - : public chrome_common_net::NetworkChangeNotifierThread { - public: - // Does not take ownership of |io_thread|. This instance must live - // no longer than |io_thread|. - explicit NetworkChangeNotifierIOThread(IOThread* io_thread); - - virtual ~NetworkChangeNotifierIOThread(); - - // chrome_common_net::NetworkChangeNotifierThread implementation. - - virtual MessageLoop* GetMessageLoop() const; - - virtual net::NetworkChangeNotifier* GetNetworkChangeNotifier() const; - - private: - IOThread* const io_thread_; - - DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifierIOThread); -}; - -#endif // CHROME_BROWSER_SYNC_NET_NETWORK_CHANGE_NOTIFIER_IO_THREAD_H_ diff --git a/chrome/browser/sync/net/network_change_notifier_io_thread_unittest.cc b/chrome/browser/sync/net/network_change_notifier_io_thread_unittest.cc deleted file mode 100644 index e2b4e91..0000000 --- a/chrome/browser/sync/net/network_change_notifier_io_thread_unittest.cc +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/sync/net/network_change_notifier_io_thread.h" - -#include "base/basictypes.h" -#include "base/message_loop.h" -#include "base/scoped_ptr.h" -#include "base/task.h" -#include "chrome/browser/io_thread.h" -#include "chrome/common/net/thread_blocker.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace { - -class NetworkChangeNotifierIOThreadTest : public testing::Test { - protected: - NetworkChangeNotifierIOThreadTest() {} - - virtual ~NetworkChangeNotifierIOThreadTest() {} - - virtual void SetUp() { - // We need to set the message loop type explicitly because - // IOThread doesn't do it for us and the Linux - // NetworkChangeNotifier expects it. - base::Thread::Options options; - options.message_loop_type = MessageLoop::TYPE_IO; - EXPECT_TRUE(io_thread_.StartWithOptions(options)); - thread_blocker_.reset(new chrome_common_net::ThreadBlocker(&io_thread_)); - thread_blocker_->Block(); - network_change_notifier_io_thread_.reset( - new NetworkChangeNotifierIOThread(&io_thread_)); - } - - virtual void TearDown() { - network_change_notifier_io_thread_.reset(); - // Nothing should be posted on |io_thread_| at this point; - // otherwise, it may try to access - // network_change_notifier_io_thread_, which now NULL - thread_blocker_->Unblock(); - thread_blocker_.reset(); - io_thread_.Stop(); - } - - IOThread io_thread_; - scoped_ptr<chrome_common_net::ThreadBlocker> thread_blocker_; - scoped_ptr<NetworkChangeNotifierIOThread> - network_change_notifier_io_thread_; - - private: - DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifierIOThreadTest); -}; - -void CompareNetworkChangeNotifiers( - IOThread* io_thread, - NetworkChangeNotifierIOThread* network_change_notifier_io_thread) { - EXPECT_EQ(network_change_notifier_io_thread->GetMessageLoop(), - MessageLoop::current()); - EXPECT_EQ(io_thread->globals()->network_change_notifier.get(), - network_change_notifier_io_thread->GetNetworkChangeNotifier()); -} - -TEST_F(NetworkChangeNotifierIOThreadTest, Basic) { - EXPECT_EQ(io_thread_.message_loop(), - network_change_notifier_io_thread_->GetMessageLoop()); - ASSERT_TRUE( - io_thread_.PostTask(ChromeThread::IO, - FROM_HERE, - NewRunnableFunction( - &CompareNetworkChangeNotifiers, - &io_thread_, - network_change_notifier_io_thread_.get()))); - // Pump the thread to make sure the task we just posted is run - // before this test ends. - thread_blocker_->Unblock(); - thread_blocker_->Block(); -} - -} // namespace diff --git a/chrome/browser/sync/notifier/server_notifier_thread.cc b/chrome/browser/sync/notifier/server_notifier_thread.cc index fbfc999..093adb4 100644 --- a/chrome/browser/sync/notifier/server_notifier_thread.cc +++ b/chrome/browser/sync/notifier/server_notifier_thread.cc @@ -18,10 +18,7 @@ namespace sync_notifier { -ServerNotifierThread::ServerNotifierThread( - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread) - : notifier::MediatorThreadImpl(network_change_notifier_thread) {} +ServerNotifierThread::ServerNotifierThread() {} ServerNotifierThread::~ServerNotifierThread() {} diff --git a/chrome/browser/sync/notifier/server_notifier_thread.h b/chrome/browser/sync/notifier/server_notifier_thread.h index 9f079e2..021095c 100644 --- a/chrome/browser/sync/notifier/server_notifier_thread.h +++ b/chrome/browser/sync/notifier/server_notifier_thread.h @@ -20,10 +20,6 @@ #include "chrome/common/net/notifier/listener/mediator_thread_impl.h" #include "google/cacheinvalidation/invalidation-client.h" -namespace chrome_common_net { -class NetworkChangeNotifierThread; -} // namespace chrome_common_net - namespace sync_notifier { class ChromeInvalidationClient; @@ -32,9 +28,7 @@ class ServerNotifierThread : public notifier::MediatorThreadImpl, public invalidation::InvalidationListener { public: - explicit ServerNotifierThread( - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread); + ServerNotifierThread(); virtual ~ServerNotifierThread(); diff --git a/chrome/browser/sync/profile_sync_factory_impl.cc b/chrome/browser/sync/profile_sync_factory_impl.cc index b70d112..1a707ec 100644 --- a/chrome/browser/sync/profile_sync_factory_impl.cc +++ b/chrome/browser/sync/profile_sync_factory_impl.cc @@ -61,23 +61,15 @@ using browser_sync::TypedUrlDataTypeController; using browser_sync::TypedUrlModelAssociator; using browser_sync::UnrecoverableErrorHandler; -ProfileSyncFactoryImpl::ProfileSyncFactoryImpl( - Profile* profile, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, - CommandLine* command_line) +ProfileSyncFactoryImpl::ProfileSyncFactoryImpl(Profile* profile, + CommandLine* command_line) : profile_(profile), - network_change_notifier_thread_(network_change_notifier_thread), command_line_(command_line) { - DCHECK(network_change_notifier_thread_); } ProfileSyncService* ProfileSyncFactoryImpl::CreateProfileSyncService() { - ProfileSyncService* pss = - new ProfileSyncService(this, - profile_, - network_change_notifier_thread_, - browser_defaults::kBootstrapSyncAuthentication); + ProfileSyncService* pss = new ProfileSyncService( + this, profile_, browser_defaults::kBootstrapSyncAuthentication); // Autofill sync is enabled by default. Register unless explicitly // disabled. diff --git a/chrome/browser/sync/profile_sync_factory_impl.h b/chrome/browser/sync/profile_sync_factory_impl.h index c26ba4f..31c0dea 100644 --- a/chrome/browser/sync/profile_sync_factory_impl.h +++ b/chrome/browser/sync/profile_sync_factory_impl.h @@ -11,17 +11,9 @@ class CommandLine; class Profile; -namespace chrome_common_net { -class NetworkChangeNotifierThread; -} - class ProfileSyncFactoryImpl : public ProfileSyncFactory { public: - ProfileSyncFactoryImpl( - Profile* profile, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, - CommandLine* command_line); + ProfileSyncFactoryImpl(Profile* profile, CommandLine* command_line); virtual ~ProfileSyncFactoryImpl() {} // ProfileSyncFactory interface. @@ -65,8 +57,6 @@ class ProfileSyncFactoryImpl : public ProfileSyncFactory { private: Profile* profile_; - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread_; CommandLine* command_line_; DISALLOW_COPY_AND_ASSIGN(ProfileSyncFactoryImpl); diff --git a/chrome/browser/sync/profile_sync_factory_impl_unittest.cc b/chrome/browser/sync/profile_sync_factory_impl_unittest.cc index 0034228..b63c23a 100644 --- a/chrome/browser/sync/profile_sync_factory_impl_unittest.cc +++ b/chrome/browser/sync/profile_sync_factory_impl_unittest.cc @@ -13,7 +13,6 @@ #include "chrome/browser/sync/profile_sync_service.h" #include "chrome/browser/sync/profile_sync_factory_impl.h" #include "chrome/common/chrome_switches.h" -#include "chrome/common/net/fake_network_change_notifier_thread.h" #include "chrome/test/testing_profile.h" using browser_sync::DataTypeController; @@ -28,17 +27,13 @@ class ProfileSyncFactoryImplTest : public testing::Test { FilePath program_path(FILE_PATH_LITERAL("chrome.exe")); command_line_.reset(new CommandLine(program_path)); profile_sync_service_factory_.reset( - new ProfileSyncFactoryImpl(profile_.get(), - &fake_network_change_notifier_thread_, - command_line_.get())); + new ProfileSyncFactoryImpl(profile_.get(), command_line_.get())); } MessageLoop message_loop_; ChromeThread ui_thread_; scoped_ptr<Profile> profile_; scoped_ptr<CommandLine> command_line_; - chrome_common_net::FakeNetworkChangeNotifierThread - fake_network_change_notifier_thread_; scoped_ptr<ProfileSyncFactoryImpl> profile_sync_service_factory_; }; diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc index 7b4f3fb..f20c1e3 100644 --- a/chrome/browser/sync/profile_sync_service.cc +++ b/chrome/browser/sync/profile_sync_service.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -51,16 +51,12 @@ const char* ProfileSyncService::kSyncServerUrl = const char* ProfileSyncService::kDevServerUrl = "https://clients4.google.com/chrome-sync/dev"; -ProfileSyncService::ProfileSyncService( - ProfileSyncFactory* factory, - Profile* profile, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, - bool bootstrap_sync_authentication) +ProfileSyncService::ProfileSyncService(ProfileSyncFactory* factory, + Profile* profile, + bool bootstrap_sync_authentication) : last_auth_error_(AuthError::None()), factory_(factory), profile_(profile), - network_change_notifier_thread_(network_change_notifier_thread), bootstrap_sync_authentication_(bootstrap_sync_authentication), sync_service_url_(kDevServerUrl), backend_initialized_(false), @@ -72,7 +68,6 @@ ProfileSyncService::ProfileSyncService( ALLOW_THIS_IN_INITIALIZER_LIST(scoped_runnable_method_factory_(this)) { DCHECK(factory); DCHECK(profile); - DCHECK(network_change_notifier_thread_); registrar_.Add(this, NotificationType::SYNC_CONFIGURE_START, NotificationService::AllSources()); @@ -110,7 +105,6 @@ ProfileSyncService::ProfileSyncService() : last_auth_error_(AuthError::None()), factory_(NULL), profile_(NULL), - network_change_notifier_thread_(NULL), bootstrap_sync_authentication_(false), sync_service_url_(kSyncServerUrl), backend_initialized_(false), @@ -273,7 +267,6 @@ void ProfileSyncService::InitializeBackend(bool delete_sync_data_folder) { GetPreferredDataTypes(&types); backend_->Initialize(sync_service_url_, types, - network_change_notifier_thread_, profile_->GetRequestContext(), GetLsidForAuthBootstraping(), delete_sync_data_folder, diff --git a/chrome/browser/sync/profile_sync_service.h b/chrome/browser/sync/profile_sync_service.h index 929d8bd..b496b12 100644 --- a/chrome/browser/sync/profile_sync_service.h +++ b/chrome/browser/sync/profile_sync_service.h @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -31,10 +31,6 @@ class NotificationType; class Profile; class ProfileSyncFactory; -namespace chrome_common_net { -class NetworkChangeNotifierThread; -} - // Various UI components such as the New Tab page can be driven by observing // the ProfileSyncService through this interface. class ProfileSyncServiceObserver { @@ -128,8 +124,6 @@ class ProfileSyncService : public browser_sync::SyncFrontend, ProfileSyncService(ProfileSyncFactory* factory_, Profile* profile, - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread, bool bootstrap_sync_authentication); virtual ~ProfileSyncService(); @@ -382,9 +376,6 @@ class ProfileSyncService : public browser_sync::SyncFrontend, // The profile whose data we are synchronizing. Profile* profile_; - chrome_common_net::NetworkChangeNotifierThread* - network_change_notifier_thread_; - // True if the profile sync service should attempt to use an LSID // cookie for authentication. This is typically set to true in // ChromiumOS since we want to use the system level authentication diff --git a/chrome/browser/sync/sync_setup_wizard_unittest.cc b/chrome/browser/sync/sync_setup_wizard_unittest.cc index ca63f97..7d2fa769f 100644 --- a/chrome/browser/sync/sync_setup_wizard_unittest.cc +++ b/chrome/browser/sync/sync_setup_wizard_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -14,7 +14,6 @@ #include "chrome/browser/sync/profile_sync_factory_mock.h" #include "chrome/browser/sync/profile_sync_service.h" #include "chrome/browser/sync/sync_setup_flow.h" -#include "chrome/common/net/fake_network_change_notifier_thread.h" #include "chrome/common/pref_names.h" #include "chrome/test/browser_with_test_window_test.h" #include "chrome/test/testing_profile.h" @@ -32,9 +31,7 @@ typedef GoogleServiceAuthError AuthError; class ProfileSyncServiceForWizardTest : public ProfileSyncService { public: ProfileSyncServiceForWizardTest(ProfileSyncFactory* factory, Profile* profile) - : ProfileSyncService(factory, profile, - &fake_network_change_notifier_thread_, - false), + : ProfileSyncService(factory, profile, false), user_accepted_merge_and_sync_(false), user_cancelled_dialog_(false) { RegisterPreferences(); @@ -81,9 +78,6 @@ class ProfileSyncServiceForWizardTest : public ProfileSyncService { bool user_cancelled_dialog_; private: - chrome_common_net::FakeNetworkChangeNotifierThread - fake_network_change_notifier_thread_; - DISALLOW_COPY_AND_ASSIGN(ProfileSyncServiceForWizardTest); }; diff --git a/chrome/browser/sync/test_profile_sync_service.h b/chrome/browser/sync/test_profile_sync_service.h index 6e04d0e..f795998 100644 --- a/chrome/browser/sync/test_profile_sync_service.h +++ b/chrome/browser/sync/test_profile_sync_service.h @@ -11,7 +11,6 @@ #include "chrome/browser/profile.h" #include "chrome/browser/sync/profile_sync_factory.h" #include "chrome/browser/sync/profile_sync_service.h" -#include "chrome/common/net/fake_network_change_notifier_thread.h" #include "chrome/test/sync/test_http_bridge_factory.h" class TestProfileSyncService : public ProfileSyncService { @@ -20,33 +19,21 @@ class TestProfileSyncService : public ProfileSyncService { Profile* profile, bool bootstrap_sync_authentication, bool synchronous_backend_initialization) - : ProfileSyncService(factory, profile, - &fake_network_change_notifier_thread_, - bootstrap_sync_authentication), + : ProfileSyncService(factory, profile, bootstrap_sync_authentication), synchronous_backend_initialization_( synchronous_backend_initialization) { - fake_network_change_notifier_thread_.Start(); RegisterPreferences(); SetSyncSetupCompleted(); } - virtual ~TestProfileSyncService() { - // This needs to happen before - // |fake_network_change_notifier_thread_| is stopped. This is - // also called again in ProfileSyncService's destructor, but - // calling it multiple times is okay. - Shutdown(false); - fake_network_change_notifier_thread_.Stop(); - } + virtual ~TestProfileSyncService() { } virtual void InitializeBackend(bool delete_sync_data_folder) { browser_sync::TestHttpBridgeFactory* factory = new browser_sync::TestHttpBridgeFactory(); browser_sync::TestHttpBridgeFactory* factory2 = new browser_sync::TestHttpBridgeFactory(); - backend()->InitializeForTestMode( - L"testuser", &fake_network_change_notifier_thread_, - factory, factory2, delete_sync_data_folder, - browser_sync::kDefaultNotificationMethod); + backend()->InitializeForTestMode(L"testuser", factory, factory2, + delete_sync_data_folder, browser_sync::kDefaultNotificationMethod); // TODO(akalin): Figure out a better way to do this. if (synchronous_backend_initialization_) { // The SyncBackend posts a task to the current loop when @@ -74,8 +61,6 @@ class TestProfileSyncService : public ProfileSyncService { } bool synchronous_backend_initialization_; - chrome_common_net::FakeNetworkChangeNotifierThread - fake_network_change_notifier_thread_; }; #endif // CHROME_BROWSER_SYNC_TEST_PROFILE_SYNC_SERVICE_H_ |