#include "chrome/browser/ui/webui/password_manager/promo_card.h"
#include "base/functional/bind.h"
#include "base/json/values_util.h"
#include "base/memory/weak_ptr.h"
#include "base/metrics/histogram_functions.h"
#include "base/notreached.h"
#include "build/build_config.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sync/sync_service_factory.h"
#include "chrome/browser/user_education/user_education_service.h"
#include "chrome/browser/user_education/user_education_service_factory.h"
#include "chrome/browser/web_applications/web_app_helpers.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/branded_strings.h"
#include "chrome/grit/generated_resources.h"
#include "components/password_manager/core/browser/password_manager_constants.h"
#include "components/password_manager/core/browser/password_sync_util.h"
#include "components/password_manager/core/common/password_manager_pref_names.h"
#include "components/prefs/scoped_user_pref_update.h"
#include "components/sync/service/sync_service.h"
#include "ui/base/l10n/l10n_util.h"
namespace password_manager {
namespace {
constexpr char kIdKey[] = …;
constexpr char kLastTimeShownKey[] = …;
constexpr char kNumberOfTimesShownKey[] = …;
constexpr char kWasDismissedKey[] = …;
base::Value::Dict CreatePromoCardPrefEntry(const std::string& id) { … }
}
PasswordPromoCardBase::PasswordPromoCardBase(const std::string& id,
PrefService* prefs)
: … { … }
PasswordPromoCardBase::~PasswordPromoCardBase() = default;
std::u16string PasswordPromoCardBase::GetActionButtonText() const { … }
void PasswordPromoCardBase::OnPromoCardDismissed() { … }
void PasswordPromoCardBase::OnPromoCardShown() { … }
}