#include "chrome/browser/dips/dips_storage.h"
#include <memory>
#include "base/files/file_path.h"
#include "base/functional/bind.h"
#include "base/metrics/histogram_functions.h"
#include "base/strings/strcat.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/thread_pool.h"
#include "base/threading/thread_restrictions.h"
#include "chrome/browser/dips/dips_utils.h"
#include "content/public/common/content_features.h"
#include "content/public/common/dips_utils.h"
#include "services/network/public/mojom/clear_data_filter.mojom.h"
#include "services/network/public/mojom/network_context.mojom.h"
#include "url/gurl.h"
DIPSStorage::DIPSStorage(const std::optional<base::FilePath>& path)
: … { … }
DIPSStorage::~DIPSStorage() { … }
DIPSState DIPSStorage::Read(const GURL& url) { … }
DIPSState DIPSStorage::ReadSite(std::string site) { … }
void DIPSStorage::Write(const DIPSState& state) { … }
std::optional<PopupsStateValue> DIPSStorage::ReadPopup(
const std::string& first_party_site,
const std::string& tracking_site) { … }
std::vector<PopupWithTime> DIPSStorage::ReadRecentPopupsWithInteraction(
const base::TimeDelta& lookback) { … }
bool DIPSStorage::WritePopup(const std::string& first_party_site,
const std::string& tracking_site,
const uint64_t access_id,
const base::Time& popup_time,
bool is_current_interaction) { … }
void DIPSStorage::RemoveEvents(base::Time delete_begin,
base::Time delete_end,
network::mojom::ClearDataFilterPtr filter,
const DIPSEventRemovalType type) { … }
void DIPSStorage::RemoveRows(const std::vector<std::string>& sites) { … }
void DIPSStorage::RemoveRowsWithoutProtectiveEvent(
const std::set<std::string>& sites) { … }
void DIPSStorage::RecordStorage(const GURL& url,
base::Time time,
DIPSCookieMode mode) { … }
void DIPSStorage::RecordInteraction(const GURL& url,
base::Time time,
DIPSCookieMode mode) { … }
void DIPSStorage::RecordWebAuthnAssertion(const GURL& url,
base::Time time,
DIPSCookieMode mode) { … }
void DIPSStorage::RecordBounce(const GURL& url,
base::Time time,
bool stateful) { … }
std::set<std::string> DIPSStorage::FilterSitesWithoutProtectiveEvent(
std::set<std::string> sites) const { … }
std::vector<std::string> DIPSStorage::GetSitesThatBounced(
base::TimeDelta grace_period) const { … }
std::vector<std::string> DIPSStorage::GetSitesThatBouncedWithState(
base::TimeDelta grace_period) const { … }
std::vector<std::string> DIPSStorage::GetSitesThatUsedStorage(
base::TimeDelta grace_period) const { … }
std::vector<std::string> DIPSStorage::GetSitesToClear(
std::optional<base::TimeDelta> custom_period) const { … }
bool DIPSStorage::DidSiteHaveInteractionSince(const GURL& url,
base::Time bound) { … }
std::optional<base::Time> DIPSStorage::LastInteractionTime(const GURL& url) { … }
void DIPSStorage::DeleteDatabaseFiles(base::FilePath path,
base::OnceClosure on_complete) { … }
std::optional<base::Time> DIPSStorage::GetTimerLastFired() { … }
bool DIPSStorage::SetTimerLastFired(base::Time time) { … }