#include "base/bind.h"
#include "base/metrics/histogram.h"
-#include "chrome/browser/password_manager/password_store.h"
#include "chrome/browser/password_manager/password_store_factory.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/sync/glue/password_change_processor.h"
-#include "chrome/browser/sync/profile_sync_service.h"
+#include "chrome/browser/sync/glue/chrome_report_unrecoverable_error.h"
+#include "chrome/browser/sync/profile_sync_components_factory.h"
+#include "components/password_manager/core/browser/password_store.h"
#include "content/public/browser/browser_thread.h"
-#include "sync/api/sync_error.h"
using content::BrowserThread;
PasswordDataTypeController::PasswordDataTypeController(
ProfileSyncComponentsFactory* profile_sync_factory,
- Profile* profile,
- ProfileSyncService* sync_service)
- : NonFrontendDataTypeController(profile_sync_factory,
- profile,
- sync_service) {
+ Profile* profile)
+ : NonUIDataTypeController(
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
+ base::Bind(&ChromeReportUnrecoverableError),
+ profile_sync_factory),
+ profile_(profile) {
}
syncer::ModelType PasswordDataTypeController::type() const {
const tracked_objects::Location& from_here,
const base::Closure& task) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (!password_store_)
+ if (!password_store_.get())
return false;
return password_store_->ScheduleTask(task);
}
bool PasswordDataTypeController::StartModels() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- DCHECK_EQ(state(), MODEL_STARTING);
+ DCHECK_EQ(MODEL_STARTING, state());
password_store_ = PasswordStoreFactory::GetForProfile(
- profile(), Profile::EXPLICIT_ACCESS);
- return password_store_.get() != NULL;
-}
-
-ProfileSyncComponentsFactory::SyncComponents
-PasswordDataTypeController::CreateSyncComponents() {
- DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::UI));
- DCHECK_EQ(state(), ASSOCIATING);
- return profile_sync_factory()->CreatePasswordSyncComponents(
- profile_sync_service(),
- password_store_.get(),
- this);
-}
-
-void PasswordDataTypeController::DisconnectProcessor(
- ChangeProcessor* processor) {
- static_cast<PasswordChangeProcessor*>(processor)->Disconnect();
+ profile_, Profile::EXPLICIT_ACCESS);
+ return !!password_store_.get();
}
} // namespace browser_sync