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.
5 #ifndef CHROME_BROWSER_SYNC_GLUE_EXTENSION_SETTING_DATA_TYPE_CONTROLLER_H__
6 #define CHROME_BROWSER_SYNC_GLUE_EXTENSION_SETTING_DATA_TYPE_CONTROLLER_H__
10 #include "base/compiler_specific.h"
11 #include "chrome/browser/sync/glue/non_ui_data_type_controller.h"
14 class ProfileSyncComponentsFactory;
15 class ProfileSyncService;
18 class SyncableService;
21 namespace extensions {
22 class SettingsFrontend;
25 namespace browser_sync {
27 class ExtensionSettingDataTypeController
28 : public NonUIDataTypeController {
30 ExtensionSettingDataTypeController(
31 // Either EXTENSION_SETTINGS or APP_SETTINGS.
32 syncer::ModelType type,
33 ProfileSyncComponentsFactory* profile_sync_factory,
35 ProfileSyncService* profile_sync_service);
37 // NonFrontendDataTypeController implementation
38 virtual syncer::ModelType type() const OVERRIDE;
39 virtual syncer::ModelSafeGroup model_safe_group() const OVERRIDE;
42 virtual ~ExtensionSettingDataTypeController();
44 // NonFrontendDataTypeController implementation.
45 virtual bool PostTaskOnBackendThread(
46 const tracked_objects::Location& from_here,
47 const base::Closure& task) OVERRIDE;
48 virtual bool StartModels() OVERRIDE;
50 // Either EXTENSION_SETTINGS or APP_SETTINGS.
51 syncer::ModelType type_;
53 // These only used on the UI thread.
55 ProfileSyncService* profile_sync_service_;
57 DISALLOW_COPY_AND_ASSIGN(ExtensionSettingDataTypeController);
60 } // namespace browser_sync
62 #endif // CHROME_BROWSER_SYNC_GLUE_EXTENSION_SETTING_DATA_TYPE_CONTROLLER_H__