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 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_SYNC_GLUE_PASSWORD_DATA_TYPE_CONTROLLER_H__ 6#define CHROME_BROWSER_SYNC_GLUE_PASSWORD_DATA_TYPE_CONTROLLER_H__ 7 8#include <string> 9 10#include "base/memory/ref_counted.h" 11#include "components/sync_driver/non_ui_data_type_controller.h" 12 13class Profile; 14class ProfileSyncComponentsFactory; 15 16namespace password_manager { 17class PasswordStore; 18} 19 20namespace browser_sync { 21 22// A class that manages the startup and shutdown of password sync. 23class PasswordDataTypeController : public sync_driver::NonUIDataTypeController { 24 public: 25 PasswordDataTypeController( 26 ProfileSyncComponentsFactory* profile_sync_factory, 27 Profile* profile); 28 29 // NonFrontendDataTypeController implementation 30 virtual syncer::ModelType type() const OVERRIDE; 31 virtual syncer::ModelSafeGroup model_safe_group() const OVERRIDE; 32 33 protected: 34 virtual ~PasswordDataTypeController(); 35 36 // NonUIDataTypeController interface. 37 virtual bool PostTaskOnBackendThread( 38 const tracked_objects::Location& from_here, 39 const base::Closure& task) OVERRIDE; 40 virtual bool StartModels() OVERRIDE; 41 42 private: 43 Profile* const profile_; 44 scoped_refptr<password_manager::PasswordStore> password_store_; 45 46 DISALLOW_COPY_AND_ASSIGN(PasswordDataTypeController); 47}; 48 49} // namespace browser_sync 50 51#endif // CHROME_BROWSER_SYNC_GLUE_PASSWORD_DATA_TYPE_CONTROLLER_H__ 52