#include "content/browser/security/coop/cross_origin_opener_policy_access_report_manager.h"
#include <utility>
#include "base/values.h"
#include "content/browser/renderer_host/frame_tree_node.h"
#include "content/browser/renderer_host/render_frame_host_delegate.h"
#include "content/browser/renderer_host/render_frame_host_impl.h"
#include "content/browser/renderer_host/render_frame_proxy_host.h"
#include "content/public/browser/site_instance.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/mojom/network_context.mojom.h"
#include "services/network/public/mojom/source_location.mojom.h"
#include "url/origin.h"
namespace content {
namespace {
std::map<int, int>& GetVirtualBrowsingContextGroupToCoopRelatedGroupMap() { … }
std::optional<blink::FrameToken> GetFrameToken(
FrameTreeNode* frame,
SiteInstanceGroup* site_instance_group) { … }
std::vector<std::pair<FrameTreeNode*, bool>> CollectOtherWindowForCoopAccess(
FrameTreeNode* frame) { … }
}
CrossOriginOpenerPolicyAccessReportManager::
CrossOriginOpenerPolicyAccessReportManager() = default;
CrossOriginOpenerPolicyAccessReportManager::
~CrossOriginOpenerPolicyAccessReportManager() = default;
void CrossOriginOpenerPolicyAccessReportManager::InstallAccessMonitorsIfNeeded(
FrameTreeNode* frame) { … }
void CrossOriginOpenerPolicyAccessReportManager::MonitorAccesses(
FrameTreeNode* accessing_node,
FrameTreeNode* accessed_node,
bool is_in_same_virtual_coop_related_group) { … }
int CrossOriginOpenerPolicyAccessReportManager::
GetNewVirtualBrowsingContextGroup() { … }
int CrossOriginOpenerPolicyAccessReportManager::GetVirtualBrowsingContextGroup(
CoopSwapResult enforce_result,
CoopSwapResult report_only_result,
int current_virtual_browsing_context_group) { … }
int CrossOriginOpenerPolicyAccessReportManager::
NextVirtualBrowsingContextGroup() { … }
int CrossOriginOpenerPolicyAccessReportManager::NextVirtualCoopRelatedGroup() { … }
}