#include "components/sync/invalidations/fcm_handler.h"
#include <map>
#include <utility>
#include "base/functional/callback_helpers.h"
#include "base/logging.h"
#include "base/metrics/histogram_functions.h"
#include "base/observer_list.h"
#include "components/gcm_driver/gcm_driver.h"
#include "components/gcm_driver/instance_id/instance_id_driver.h"
#include "components/sync/invalidations/fcm_registration_token_observer.h"
#include "components/sync/invalidations/invalidations_listener.h"
namespace syncer {
const int kTokenValidationPeriodMinutesDefault = …;
const int kInstanceIDTokenTTLSeconds = …;
const size_t kMaxBufferedLastFcmMessages = …;
FCMHandler::FCMHandler(gcm::GCMDriver* gcm_driver,
instance_id::InstanceIDDriver* instance_id_driver,
const std::string& sender_id,
const std::string& app_id)
: … { … }
FCMHandler::~FCMHandler() { … }
void FCMHandler::StartListening() { … }
void FCMHandler::StopListening() { … }
void FCMHandler::StopListeningPermanently() { … }
const std::optional<std::string>& FCMHandler::GetFCMRegistrationToken() const { … }
void FCMHandler::ShutdownHandler() { … }
void FCMHandler::AddListener(InvalidationsListener* listener) { … }
bool FCMHandler::HasListener(InvalidationsListener* listener) { … }
void FCMHandler::RemoveListener(InvalidationsListener* listener) { … }
void FCMHandler::OnStoreReset() { … }
void FCMHandler::AddTokenObserver(FCMRegistrationTokenObserver* observer) { … }
void FCMHandler::RemoveTokenObserver(FCMRegistrationTokenObserver* observer) { … }
void FCMHandler::OnMessage(const std::string& app_id,
const gcm::IncomingMessage& message) { … }
void FCMHandler::OnMessagesDeleted(const std::string& app_id) { … }
void FCMHandler::OnSendError(const std::string& app_id,
const gcm::GCMClient::SendErrorDetails& details) { … }
void FCMHandler::OnSendAcknowledged(const std::string& app_id,
const std::string& message_id) { … }
bool FCMHandler::IsListening() const { … }
void FCMHandler::DidRetrieveToken(base::TimeTicks fetch_time_for_metrics,
bool is_validation,
const std::string& subscription_token,
instance_id::InstanceID::Result result) { … }
void FCMHandler::ScheduleNextTokenValidation() { … }
void FCMHandler::StartTokenValidation() { … }
void FCMHandler::StartTokenFetch(bool is_validation) { … }
}