// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_SYNC_ENGINE_SYNC_STATUS_TRACKER_H_ #define COMPONENTS_SYNC_ENGINE_SYNC_STATUS_TRACKER_H_ #include <map> #include <string> #include "base/compiler_specific.h" #include "base/functional/callback.h" #include "base/sequence_checker.h" #include "components/sync/base/data_type.h" #include "components/sync/engine/sync_engine_event_listener.h" #include "components/sync/engine/sync_status.h" namespace sync_pb { class NigoriSpecifics_TrustedVaultDebugInfo; } // namespace sync_pb namespace syncer { struct SyncCycleEvent; // This class watches various sync engine components, updating its internal // state upon change and firing the callback injected on construction. // // Most of this data ends up on the chrome://sync-internals page. But the page // is only 'pinged' to update itself at the end of a sync cycle. A user could // refresh manually, but unless their timing is excellent it's unlikely that a // user will see any state in mid-sync cycle. We have no plans to change this. // However, we will continue to collect data and update state mid-sync-cycle in // case we need to debug slow or stuck sync cycles. class SyncStatusTracker : public SyncEngineEventListener { … }; } // namespace syncer #endif // COMPONENTS_SYNC_ENGINE_SYNC_STATUS_TRACKER_H_