// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module blink.mojom;
import "third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom";
import "url/mojom/origin.mojom";
// This struct mirrors network.mojom.CSPSource, but excludes members not used
// in permissions policies like `path`.
struct OriginWithPossibleWildcards {
string scheme;
string host;
int32 port = -1;
bool is_host_wildcard = false;
bool is_port_wildcard = false;
};
// This struct holds permissions policy allowlist data that needs to be replicated
// between a RenderFrame and any of its associated RenderFrameProxies. A list of
// these form a ParsedPermissionsPolicy.
// NOTE: These types are used for replication frame state between processes.
struct ParsedPermissionsPolicyDeclaration {
PermissionsPolicyFeature feature;
array<OriginWithPossibleWildcards> allowed_origins;
url.mojom.Origin? self_if_matches;
bool matches_all_origins;
bool matches_opaque_src;
string? reporting_endpoint;
};