@@ -1826,6 +1826,7 @@ void NavigationControllerImpl::UpdateNavigationEntryDetails(
18261826 params.method , params.post_id , nullptr /* blob_url_loader_factory */ ,
18271827 ComputePolicyContainerPoliciesForFrameEntry (
18281828 rfh, request && request->IsSameDocument (),
1829+ request ? request->DidEncounterError () : false ,
18291830 request ? request->common_params ().url : params.url ));
18301831
18311832 if (rfh->GetParent ()) {
@@ -2288,6 +2289,7 @@ void NavigationControllerImpl::RendererDidNavigateNewSubframe(
22882289 }
22892290 std::unique_ptr<PolicyContainerPolicies> policy_container_policies =
22902291 ComputePolicyContainerPoliciesForFrameEntry (rfh, is_same_document,
2292+ request->DidEncounterError (),
22912293 request->GetURL ());
22922294 bool protect_url_in_navigation_api = false ;
22932295 if (is_same_document) {
@@ -4474,7 +4476,14 @@ std::unique_ptr<PolicyContainerPolicies>
44744476NavigationControllerImpl::ComputePolicyContainerPoliciesForFrameEntry (
44754477 RenderFrameHostImpl* rfh,
44764478 bool is_same_document,
4479+ bool navigation_encountered_error,
44774480 const GURL& url) {
4481+ if (navigation_encountered_error) {
4482+ // We should never reload the policy container of an error page from
4483+ // history, see https://crbug.com/364773822.
4484+ return nullptr ;
4485+ }
4486+
44784487 if (is_same_document) {
44794488 DCHECK (GetLastCommittedEntry ());
44804489 FrameNavigationEntry* previous_frame_entry =
0 commit comments