#include "components/browsing_topics/epoch_topics.h"
#include "base/containers/contains.h"
#include "base/hash/legacy_hash.h"
#include "base/json/values_util.h"
#include "base/logging.h"
#include "base/numerics/checked_math.h"
#include "components/browsing_topics/common/semantic_tree.h"
#include "components/browsing_topics/util.h"
#include "third_party/blink/public/common/features.h"
#include "url/gurl.h"
namespace browsing_topics {
namespace {
const char kTopTopicsAndObservingDomainsNameKey[] = …;
const char kPaddedTopTopicsStartIndexNameKey[] = …;
const char kConfigVersionNameKey[] = …;
const char kTaxonomyVersionNameKey[] = …;
const char kModelVersionNameKey[] = …;
const char kCalculationTimeNameKey[] = …;
bool ShouldUseRandomTopic(uint64_t random_or_top_topic_decision_hash) { … }
}
EpochTopics::EpochTopics(base::Time calculation_time)
: … { … }
EpochTopics::EpochTopics(base::Time calculation_time,
CalculatorResultStatus calculator_result_status)
: … { … }
EpochTopics::EpochTopics(
std::vector<TopicAndDomains> top_topics_and_observing_domains,
size_t padded_top_topics_start_index,
int config_version,
int taxonomy_version,
int64_t model_version,
base::Time calculation_time,
bool from_manually_triggered_calculation)
: … { … }
EpochTopics::EpochTopics(EpochTopics&&) = default;
EpochTopics& EpochTopics::operator=(EpochTopics&&) = default;
EpochTopics::~EpochTopics() = default;
EpochTopics EpochTopics::FromDictValue(const base::Value::Dict& dict_value) { … }
base::Value::Dict EpochTopics::ToDictValue() const { … }
CandidateTopic EpochTopics::CandidateTopicForSite(
const std::string& top_domain,
const HashedDomain& hashed_context_domain,
ReadOnlyHmacKey hmac_key) const { … }
void EpochTopics::ClearTopics() { … }
void EpochTopics::ClearTopic(Topic topic) { … }
void EpochTopics::ClearContextDomain(
const HashedDomain& hashed_context_domain) { … }
}