// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // See `content/browser/fenced_frame/fenced_frame_config.h` for a description of // the fenced frame config information flow, including redacted configs. #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_FENCED_FRAME_REDACTED_FENCED_FRAME_CONFIG_H_ #define THIRD_PARTY_BLINK_PUBLIC_COMMON_FENCED_FRAME_REDACTED_FENCED_FRAME_CONFIG_H_ #include <optional> #include <string> #include <utility> #include <vector> #include "net/base/schemeful_site.h" #include "third_party/blink/public/common/common_export.h" #include "third_party/blink/public/mojom/fenced_frame/fenced_frame_config.mojom-forward.h" #include "third_party/blink/public/mojom/permissions_policy/permissions_policy.mojom.h" #include "ui/gfx/geometry/size.h" #include "url/gurl.h" #include "url/origin.h" namespace content { class FencedFrameConfig; class FencedFrameProperties; } // namespace content namespace blink::FencedFrame { // This is used to represent the "opaque" union variant of "PotentiallyOpaque" // mojom types. enum class Opaque { … }; enum ReportingDestination { … }; // TODO(crbug.com/1347953): Decompose this into flags that directly control the // behavior of the frame, e.g. sandbox flags. We do not want mode to exist as a // concept going forward. enum DeprecatedFencedFrameMode { … }; struct BLINK_COMMON_EXPORT AdAuctionData { … }; // The metadata for the shared storage runURLSelectionOperation's budget, // which includes the shared storage's `site` and the amount of budget to // charge when a fenced frame that originates from the URN is navigating a top // frame. Before the fenced frame results in a top navigation, this // `SharedStorageBudgetMetadata` will be stored/associated with the URN inside // the `FencedFrameURLMapping`. struct BLINK_COMMON_EXPORT SharedStorageBudgetMetadata { … }; struct BLINK_COMMON_EXPORT ParentPermissionsInfo { … }; // Represents a potentially opaque (redacted) value. // (If the value is redacted, `potentially_opaque_value` will be // `std::nullopt`.) template <class T> struct BLINK_COMMON_EXPORT RedactedFencedFrameProperty { … }; // Represents a fenced frame config that has been redacted for a particular // entity, in order to send (over mojom) to the renderer corresponding to that // entity. // This object should only be constructed using // `content::FencedFrameConfig::RedactFor(entity)`, or implicitly during // mojom deserialization with the defined type mappings. struct BLINK_COMMON_EXPORT RedactedFencedFrameConfig { … }; // Represents a set of fenced frame properties (instantiated from a config) that // have been redacted for a particular entity, in order to send (over mojom) to // the renderer corresponding to that entity. // This object should only be constructed using // `content::FencedFrameProperties::RedactFor(entity)`, or implicitly during // mojom deserialization with the defined type mappings. struct BLINK_COMMON_EXPORT RedactedFencedFrameProperties { … }; } // namespace blink::FencedFrame #endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_FENCED_FRAME_REDACTED_FENCED_FRAME_CONFIG_H_