blob: 49982ee2f392410460f79a0048724b6b1bd9df42 [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.
#ifndef CHROME_BROWSER_ACTOR_SAFETY_LIST_H_
#define CHROME_BROWSER_ACTOR_SAFETY_LIST_H_
#include <cstddef>
#include <vector>
#include "base/values.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
class GURL;
namespace actor {
struct SafetyListPatterns {
ContentSettingsPattern source;
ContentSettingsPattern destination;
};
class SafetyList {
public:
using Patterns = std::vector<SafetyListPatterns>;
explicit SafetyList(Patterns patterns = {});
~SafetyList();
SafetyList(const SafetyList&);
SafetyList& operator=(const SafetyList&);
const Patterns& patterns() const { return patterns_; }
size_t size() const { return patterns_.size(); }
bool ContainsUrlPair(const GURL& source, const GURL& destination) const;
static SafetyList ParsePatternListFromJson(
const base::Value::List& list_data);
private:
Patterns patterns_;
};
} // namespace actor
#endif // CHROME_BROWSER_ACTOR_SAFETY_LIST_H_