blob: 0d6274047a3404d645c4a5b1725a7b80cfccde7a [file] [log] [blame]
// Copyright 2025 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/invalidation/legacy_topics_cleaner.h"
#include <array>
#include <utility>
#include "base/memory/scoped_refptr.h"
#include "components/invalidation/impl/per_user_topic_subscription_manager.h"
#include "components/invalidation/public/identity_provider.h"
#include "components/prefs/pref_service.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
namespace invalidation {
namespace {
// Legacy Sender IDs of FCM (Firebase Cloud Messaging).
constexpr std::array kLegacyProjectNumbers = {"1013309121859", "947318989803"};
} // namespace
LegacyTopicsCleaner::LegacyTopicsCleaner(
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
std::unique_ptr<IdentityProvider> identity_provider,
PrefService* pref_service)
: identity_provider_(std::move(identity_provider)) {
for (const auto* project_number : kLegacyProjectNumbers) {
auto subscription_manager = PerUserTopicSubscriptionManager::Create(
url_loader_factory.get(), identity_provider_.get(), pref_service,
project_number);
subscription_manager->Init();
subscription_manager->UpdateSubscribedTopics(/*topics=*/{});
topic_subscription_managers_.emplace_back(std::move(subscription_manager));
}
}
LegacyTopicsCleaner::~LegacyTopicsCleaner() = default;
} // namespace invalidation