#ifndef COMPONENTS_BROWSER_SYNC_SYNC_INTERNALS_MESSAGE_HANDLER_H_
#define COMPONENTS_BROWSER_SYNC_SYNC_INTERNALS_MESSAGE_HANDLER_H_
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "base/containers/flat_map.h"
#include "base/containers/span.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/scoped_observation.h"
#include "base/scoped_observation_traits.h"
#include "base/values.h"
#include "components/sync/engine/events/protocol_event_observer.h"
#include "components/sync/invalidations/invalidations_listener.h"
#include "components/sync/invalidations/sync_invalidations_service.h"
#include "components/sync/service/sync_service.h"
#include "components/sync/service/sync_service_observer.h"
namespace signin {
class IdentityManager;
}
namespace syncer {
class UserEventService;
struct TypeEntitiesCount;
}
namespace browser_sync {
class SyncInternalsMessageHandler : public syncer::SyncServiceObserver,
public syncer::ProtocolEventObserver,
public syncer::InvalidationsListener { … };
}
namespace base {
template <>
struct ScopedObservationTraits<syncer::SyncService,
syncer::ProtocolEventObserver> { … };
template <>
struct ScopedObservationTraits<syncer::SyncInvalidationsService,
syncer::InvalidationsListener> { … };
}
#endif