1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "supervised_user_sync_data_type_controller.h" 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/profiles/profile.h" 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/sync/glue/chrome_report_unrecoverable_error.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "content/public/browser/browser_thread.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 11116680a4aac90f2aa7413d9095a592090648e557Ben MurdochSupervisedUserSyncDataTypeController::SupervisedUserSyncDataTypeController( 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch syncer::ModelType type, 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) sync_driver::SyncApiComponentFactory* sync_factory, 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch Profile* profile) 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) : sync_driver::UIDataTypeController( 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::BrowserThread::GetMessageLoopProxyForThread( 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::BrowserThread::UI), 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch base::Bind(&browser_sync::ChromeReportUnrecoverableError), 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch type, 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sync_factory), 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch profile_(profile) { 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DCHECK(type == syncer::SUPERVISED_USERS || 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch type == syncer::SUPERVISED_USER_SETTINGS || 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch type == syncer::SUPERVISED_USER_SHARED_SETTINGS); 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 27116680a4aac90f2aa7413d9095a592090648e557Ben MurdochSupervisedUserSyncDataTypeController::~SupervisedUserSyncDataTypeController() {} 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool SupervisedUserSyncDataTypeController::ReadyForStart() const { 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch switch (type()) { 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch case syncer::SUPERVISED_USERS: 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return !profile_->IsSupervised(); 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch case syncer::SUPERVISED_USER_SETTINGS: 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return profile_->IsSupervised(); 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch case syncer::SUPERVISED_USER_SHARED_SETTINGS: 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return true; 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch default: 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch NOTREACHED(); 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch } 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return false; 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 42