blob: 54eed524411585e3fc58a175a05969405dd45551 [file]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/sharing_message/sharing_message_data_type_controller.h"
#include <utility>
SharingMessageDataTypeController::SharingMessageDataTypeController(
std::unique_ptr<syncer::DataTypeControllerDelegate>
delegate_for_full_sync_mode,
std::unique_ptr<syncer::DataTypeControllerDelegate>
delegate_for_transport_mode)
: syncer::DataTypeController(syncer::SHARING_MESSAGE,
std::move(delegate_for_full_sync_mode),
std::move(delegate_for_transport_mode)) {}
SharingMessageDataTypeController::~SharingMessageDataTypeController() =
default;
void SharingMessageDataTypeController::Stop(syncer::SyncStopMetadataFate fate,
StopCallback callback) {
DCHECK(CalledOnValidThread());
// Clear sync metadata regardless of incoming fate even when sync gets paused
// (e.g. persistent auth error). This is needed because
// SharingMessageBridgeImpl uses the processor's IsTrackingMetadata() bit to
// determine whether sharing messages can be sent (they can't if sync is
// paused).
DataTypeController::Stop(syncer::SyncStopMetadataFate::CLEAR_METADATA,
std::move(callback));
}