// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/send_tab_to_self/send_tab_to_self_model_type_controller.h" #include #include "base/feature_list.h" #include "components/send_tab_to_self/features.h" namespace send_tab_to_self { SendTabToSelfModelTypeController::SendTabToSelfModelTypeController( std::unique_ptr delegate_for_full_sync_mode, std::unique_ptr delegate_for_transport_mode) : ModelTypeController(syncer::SEND_TAB_TO_SELF, std::move(delegate_for_full_sync_mode), std::move(delegate_for_transport_mode)) { DCHECK(ShouldRunInTransportOnlyMode()); } SendTabToSelfModelTypeController::~SendTabToSelfModelTypeController() = default; void SendTabToSelfModelTypeController::Stop( syncer::ShutdownReason shutdown_reason, StopCallback callback) { DCHECK(CalledOnValidThread()); switch (shutdown_reason) { case syncer::ShutdownReason::STOP_SYNC_AND_KEEP_DATA: // Special case: We want to clear all data even when Sync is stopped // temporarily. This is also needed to make sure the feature stops being // offered to the user, because predicates like IsUserSyncTypeActive() // should return false upon stop. shutdown_reason = syncer::ShutdownReason::DISABLE_SYNC_AND_CLEAR_DATA; break; case syncer::ShutdownReason::DISABLE_SYNC_AND_CLEAR_DATA: case syncer::ShutdownReason::BROWSER_SHUTDOWN_AND_KEEP_DATA: break; } ModelTypeController::Stop(shutdown_reason, std::move(callback)); } } // namespace send_tab_to_self