From 284d95720702af2772d9fa9363150e412823635a Mon Sep 17 00:00:00 2001
From: Yoav Weiss <yoavweiss@chromium.org>
Date: Wed, 7 May 2025 07:30:11 -0700
Subject: [PATCH] Speculative fix to Document::GetExecutionContext crash

Bug: 416213973
Change-Id: If0789827218a7e9049529ca97104ac5ad5bd43a2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6519754
Commit-Queue: Yoav Weiss (@Shopify) <yoavweiss@chromium.org>
Reviewed-by: Antonio Sartori <antoniosartori@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1456983}
---
 third_party/blink/renderer/core/frame/integrity_policy.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/third_party/blink/renderer/core/frame/integrity_policy.cc b/third_party/blink/renderer/core/frame/integrity_policy.cc
index 06adeeb76a698..ad8a8525247ce 100644
--- a/third_party/blink/renderer/core/frame/integrity_policy.cc
+++ b/third_party/blink/renderer/core/frame/integrity_policy.cc
@@ -69,12 +69,16 @@ bool IntegrityPolicy::AllowRequest(
     network::mojom::RequestMode request_mode,
     const IntegrityMetadataSet& integrity_metadata,
     const KURL& url) {
-  if ((!integrity_metadata.empty() &&
+  if (!context ||
+      (!integrity_metadata.empty() &&
        request_mode != network::mojom::RequestMode::kNoCors) ||
       url.ProtocolIsData() || url.ProtocolIs("blob")) {
     return true;
   }
   PolicyContainer* policy_container = context->GetPolicyContainer();
+  if (!policy_container) {
+    return true;
+  }
   const network::IntegrityPolicy& integrity_policy =
       policy_container->GetPolicies().integrity_policy;
   const network::IntegrityPolicy& integrity_policy_report_only =