| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/ash/policy/skyvault/local_files_cleanup.h" |
| |
| #include <optional> |
| #include <string> |
| |
| #include "base/logging.h" |
| #include "base/metrics/histogram_macros.h" |
| #include "chrome/browser/ash/policy/skyvault/policy_utils.h" |
| |
| namespace policy::local_user_files { |
| |
| constexpr char kCleanupCountHistogram[] = "SkyVault.LocalUserFilesCleanupCount"; |
| |
| LocalFilesCleanup::LocalFilesCleanup() = default; |
| |
| LocalFilesCleanup::~LocalFilesCleanup() = default; |
| |
| void LocalFilesCleanup::OnLocalUserFilesPolicyChanged() { |
| if (!LocalUserFilesAllowed() && !in_progress_) { |
| UMA_HISTOGRAM_CUSTOM_COUNTS(kCleanupCountHistogram, ++cleanups_count_, 1, |
| 50, 50); |
| in_progress_ = true; |
| cleanup_handler_.Cleanup(base::BindOnce(&LocalFilesCleanup::CleanupDone, |
| weak_factory_.GetWeakPtr())); |
| } |
| } |
| |
| void LocalFilesCleanup::CleanupDone( |
| const std::optional<std::string>& error_message) { |
| in_progress_ = false; |
| if (error_message.has_value()) { |
| LOG(ERROR) << "Local files cleanup failed: " << error_message.value(); |
| } else { |
| VLOG(1) << "Local files cleanup done"; |
| } |
| } |
| |
| } // namespace policy::local_user_files |