#include "components/content_settings/core/browser/content_settings_origin_value_map.h"
#include <memory>
#include <tuple>
#include "base/auto_reset.h"
#include "base/check_op.h"
#include "base/compiler_specific.h"
#include "base/feature_list.h"
#include "base/memory/scoped_refptr.h"
#include "base/synchronization/lock.h"
#include "base/time/default_clock.h"
#include "base/values.h"
#include "components/content_settings/core/browser/content_settings_rule.h"
#include "components/content_settings/core/common/content_settings_rules.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/content_settings/core/common/features.h"
#include "components/content_settings/core/common/host_indexed_content_settings.h"
#include "url/gurl.h"
namespace content_settings {
namespace {
template <class Iterator>
class RuleIteratorImpl : public RuleIterator { … };
}
std::unique_ptr<RuleIterator> OriginValueMap::GetRuleIterator(
ContentSettingsType content_type) const NO_THREAD_SAFETY_ANALYSIS { … }
std::unique_ptr<Rule> OriginValueMap::GetRule(
const GURL& primary_url,
const GURL& secondary_url,
ContentSettingsType content_type) const { … }
size_t OriginValueMap::size() const { … }
std::vector<ContentSettingsType> OriginValueMap::types() const { … }
OriginValueMap::OriginValueMap(base::Clock* clock) : … { … }
OriginValueMap::OriginValueMap()
: … { … }
OriginValueMap::~OriginValueMap() = default;
const base::Value* OriginValueMap::GetValue(
const GURL& primary_url,
const GURL& secondary_url,
ContentSettingsType content_type) const { … }
bool OriginValueMap::SetValue(
const ContentSettingsPattern& primary_pattern,
const ContentSettingsPattern& secondary_pattern,
ContentSettingsType content_type,
base::Value value,
const RuleMetaData& metadata) { … }
bool OriginValueMap::DeleteValue(
const ContentSettingsPattern& primary_pattern,
const ContentSettingsPattern& secondary_pattern,
ContentSettingsType content_type) { … }
void OriginValueMap::DeleteValues(ContentSettingsType content_type) { … }
void OriginValueMap::clear() { … }
void OriginValueMap::SetClockForTesting(base::Clock* clock) { … }
}