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#include "chrome/browser/sync/glue/extension_setting_data_type_controller.h" 6 7#include "base/bind.h" 8#include "base/metrics/histogram.h" 9#include "chrome/browser/extensions/extension_service.h" 10#include "chrome/browser/extensions/extension_system.h" 11#include "chrome/browser/profiles/profile.h" 12#include "chrome/browser/sync/glue/generic_change_processor.h" 13#include "chrome/browser/sync/profile_sync_components_factory.h" 14#include "content/public/browser/browser_thread.h" 15#include "sync/api/syncable_service.h" 16 17using content::BrowserThread; 18 19namespace browser_sync { 20 21ExtensionSettingDataTypeController::ExtensionSettingDataTypeController( 22 syncer::ModelType type, 23 ProfileSyncComponentsFactory* profile_sync_factory, 24 Profile* profile, 25 ProfileSyncService* profile_sync_service) 26 : NonUIDataTypeController(profile_sync_factory, 27 profile, 28 profile_sync_service), 29 type_(type), 30 profile_(profile), 31 profile_sync_service_(profile_sync_service) { 32 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 33 DCHECK(type == syncer::EXTENSION_SETTINGS || type == syncer::APP_SETTINGS); 34} 35 36syncer::ModelType ExtensionSettingDataTypeController::type() const { 37 return type_; 38} 39 40syncer::ModelSafeGroup 41ExtensionSettingDataTypeController::model_safe_group() const { 42 return syncer::GROUP_FILE; 43} 44 45ExtensionSettingDataTypeController::~ExtensionSettingDataTypeController() {} 46 47bool ExtensionSettingDataTypeController::PostTaskOnBackendThread( 48 const tracked_objects::Location& from_here, 49 const base::Closure& task) { 50 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 51 return BrowserThread::PostTask(BrowserThread::FILE, from_here, task); 52} 53 54bool ExtensionSettingDataTypeController::StartModels() { 55 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 56 extensions::ExtensionSystem::Get(profile_)->InitForRegularProfile(true); 57 return true; 58} 59 60} // namespace browser_sync 61