1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// found in the LICENSE file. 4effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/sync/sync_error_controller.h" 6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 7effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/sync/profile_sync_service.h" 8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/sync/profile_sync_service_factory.h" 9effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 10effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochSyncErrorController::SyncErrorController(ProfileSyncService* service) 11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch : service_(service) { 12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch DCHECK(service_); 13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 15effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochSyncErrorController::~SyncErrorController() { 16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 18effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochbool SyncErrorController::HasError() { 19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return service_->HasSyncSetupCompleted() && 20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch service_->IsPassphraseRequired() && 21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch service_->IsPassphraseRequiredForDecryption(); 22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid SyncErrorController::AddObserver(Observer* observer) { 25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch observer_list_.AddObserver(observer); 26effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid SyncErrorController::RemoveObserver(Observer* observer) { 29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch observer_list_.RemoveObserver(observer); 30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 31effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid SyncErrorController::OnStateChanged() { 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch FOR_EACH_OBSERVER(Observer, 34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch observer_list_, 35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch OnErrorChanged()); 36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 37