[Connection-Allowlist] Redirects blocked for navigations [chromium/src : main]

0 views
Skip to first unread message

Mike West (Gerrit)

unread,
Feb 23, 2026, 3:53:36 AM (5 days ago) Feb 23
to Shivani Sharma, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org
Attention needed from Shivani Sharma

Mike West added 4 comments

File content/browser/renderer_host/navigation_request.h
Line 3447, Patchset 4 (Latest): bool is_redirect_allowed_ = true;
Mike West . unresolved

Optional nit: I'd prefer something more specific to Connection Allowlist (as redirects might be disallowed for other reasons, including the request's `mode`). Perhaps invert this to something like `connection_allowlists_blocks_redirect_ = false`?

File content/browser/renderer_host/navigation_request.cc
Line 3553, Patchset 4 (Latest): network::URLLoaderCompletionStatus(net::ERR_NETWORK_ACCESS_REVOKED);
Mike West . unresolved

Nit for a future CL: We should make this an error more specific to connection allowlists. Or `ERR_UNSAFE_REDIRECT`?

Line 3559, Patchset 4 (Latest): return;
Mike West . unresolved

Should we set `error_navigation_trigger_ = ErrorNavigationTrigger::kRedirectNotAllowed;`?

Line 3782, Patchset 4 (Latest): false /* is_response_check */);
Mike West . unresolved

I wonder whether it might make sense to follow CSP's implementation here by centralizing the redirect check in the Connection Allowlist matching logic and passing in a boolean noting the redirect status. Since you'll end up holding a boolean on the policy object once we're parsing it out of the header, that might make more sense than holding the additional boolean on the NavigationRequest.

Open in Gerrit

Related details

Attention is currently required from:
  • Shivani Sharma
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
Gerrit-Change-Number: 7599175
Gerrit-PatchSet: 4
Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
Gerrit-Reviewer: Mike West <mk...@chromium.org>
Gerrit-CC: Andrew Verge <ave...@chromium.org>
Gerrit-Attention: Shivani Sharma <shiva...@chromium.org>
Gerrit-Comment-Date: Mon, 23 Feb 2026 08:53:21 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Shivani Sharma (Gerrit)

unread,
Feb 23, 2026, 10:49:10 AM (5 days ago) Feb 23
to Mike West, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org
Attention needed from Mike West

Shivani Sharma added 4 comments

File content/browser/renderer_host/navigation_request.h
Line 3447, Patchset 4: bool is_redirect_allowed_ = true;
Mike West . resolved

Optional nit: I'd prefer something more specific to Connection Allowlist (as redirects might be disallowed for other reasons, including the request's `mode`). Perhaps invert this to something like `connection_allowlists_blocks_redirect_ = false`?

Shivani Sharma

Done

File content/browser/renderer_host/navigation_request.cc
Line 3553, Patchset 4: network::URLLoaderCompletionStatus(net::ERR_NETWORK_ACCESS_REVOKED);
Mike West . resolved

Nit for a future CL: We should make this an error more specific to connection allowlists. Or `ERR_UNSAFE_REDIRECT`?

Shivani Sharma

Updating in this CL to ERR_UNSAFE_REDIRECT so we can also use the same in the subresource redirect behavior

Line 3559, Patchset 4: return;
Mike West . resolved

Should we set `error_navigation_trigger_ = ErrorNavigationTrigger::kRedirectNotAllowed;`?

Shivani Sharma

Done

Line 3782, Patchset 4: false /* is_response_check */);
Mike West . resolved

I wonder whether it might make sense to follow CSP's implementation here by centralizing the redirect check in the Connection Allowlist matching logic and passing in a boolean noting the redirect status. Since you'll end up holding a boolean on the policy object once we're parsing it out of the header, that might make more sense than holding the additional boolean on the NavigationRequest.

Shivani Sharma

I've added the check in NavigationRequest::IsAllowedByConnectionAllowlist() as that will allow for a single point for reporting, but still kept it as a boolean on NavigationRequest so we don't have to look into the policy during redirect. Added a TODO to possibly change that when we add the support for the parameter.

Open in Gerrit

Related details

Attention is currently required from:
  • Mike West
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
    Gerrit-Change-Number: 7599175
    Gerrit-PatchSet: 6
    Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
    Gerrit-Reviewer: Mike West <mk...@chromium.org>
    Gerrit-CC: Andrew Verge <ave...@chromium.org>
    Gerrit-Attention: Mike West <mk...@chromium.org>
    Gerrit-Comment-Date: Mon, 23 Feb 2026 15:49:05 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Mike West <mk...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Mike West (Gerrit)

    unread,
    Feb 24, 2026, 7:57:50 AM (4 days ago) Feb 24
    to Shivani Sharma, Chromium LUCI CQ, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org
    Attention needed from Shivani Sharma

    Mike West voted and added 1 comment

    Votes added by Mike West

    Code-Review+1

    1 comment

    Patchset-level comments
    File-level comment, Patchset 6 (Latest):
    Mike West . resolved

    LGTM, thanks for taking another pass.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Shivani Sharma
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
      Gerrit-Change-Number: 7599175
      Gerrit-PatchSet: 6
      Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
      Gerrit-Reviewer: Mike West <mk...@chromium.org>
      Gerrit-Reviewer: Shivani Sharma <shiva...@chromium.org>
      Gerrit-CC: Andrew Verge <ave...@chromium.org>
      Gerrit-Attention: Shivani Sharma <shiva...@chromium.org>
      Gerrit-Comment-Date: Tue, 24 Feb 2026 12:57:37 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Alex Moshchuk (Gerrit)

      unread,
      Feb 27, 2026, 1:29:39 PM (13 hours ago) Feb 27
      to Shivani Sharma, Mike West, Chromium LUCI CQ, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org
      Attention needed from Shivani Sharma

      Alex Moshchuk added 3 comments

      Patchset-level comments
      Alex Moshchuk . resolved

      Thanks!

      File content/browser/renderer_host/navigation_request.cc
      Line 7340, Patchset 6 (Latest): if (has_followed_redirect && connection_allowlists_blocks_redirect_) {
      Alex Moshchuk . unresolved

      Should we move this below the `base::FeatureList::IsEnabled(network::features::kConnectionAllowlists)` check, just to be safe?

      Line 7410, Patchset 6 (Latest): connection_allowlists_blocks_redirect_ = true;
      Alex Moshchuk . unresolved

      Is this more of a bool for "Connection allowlists are in use, and were checked when this navigation started", to distinguish it from all the other early returns? And then we assume that redirects in all navigations that were subjected to connection allowlists should fail for now? Could we clarify that in the comment for the definition of this field?

      This is a bit unfortunate, as I wouldn't expect IsAllowedByConnectionAllowlist() to make state changes on NavigationRequest. Would it be worth it if BeginNavigationImpl would set this state on NavigationRequest after it checks IsAllowedByConnectionAllowlist() (which could return an additional bool for it)? Might depend on whether you plan to address the TODO in the short vs long term.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Shivani Sharma
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
        Gerrit-Change-Number: 7599175
        Gerrit-PatchSet: 6
        Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
        Gerrit-Reviewer: Alex Moshchuk <ale...@chromium.org>
        Gerrit-Reviewer: Mike West <mk...@chromium.org>
        Gerrit-Reviewer: Shivani Sharma <shiva...@chromium.org>
        Gerrit-CC: Andrew Verge <ave...@chromium.org>
        Gerrit-Attention: Shivani Sharma <shiva...@chromium.org>
        Gerrit-Comment-Date: Fri, 27 Feb 2026 18:29:32 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Shivani Sharma (Gerrit)

        unread,
        Feb 27, 2026, 4:37:42 PM (9 hours ago) Feb 27
        to Alex Moshchuk, Mike West, Chromium LUCI CQ, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org
        Attention needed from Alex Moshchuk

        Shivani Sharma added 3 comments

        Patchset-level comments
        File-level comment, Patchset 7 (Latest):
        Shivani Sharma . resolved

        Thanks!

        File content/browser/renderer_host/navigation_request.cc
        Line 7340, Patchset 6: if (has_followed_redirect && connection_allowlists_blocks_redirect_) {
        Alex Moshchuk . resolved

        Should we move this below the `base::FeatureList::IsEnabled(network::features::kConnectionAllowlists)` check, just to be safe?

        Shivani Sharma

        Done

        Line 7410, Patchset 6: connection_allowlists_blocks_redirect_ = true;
        Alex Moshchuk . unresolved

        Is this more of a bool for "Connection allowlists are in use, and were checked when this navigation started", to distinguish it from all the other early returns? And then we assume that redirects in all navigations that were subjected to connection allowlists should fail for now? Could we clarify that in the comment for the definition of this field?

        This is a bit unfortunate, as I wouldn't expect IsAllowedByConnectionAllowlist() to make state changes on NavigationRequest. Would it be worth it if BeginNavigationImpl would set this state on NavigationRequest after it checks IsAllowedByConnectionAllowlist() (which could return an additional bool for it)? Might depend on whether you plan to address the TODO in the short vs long term.

        Shivani Sharma

        Is this more of a bool for "Connection allowlists are in use, and were checked when this navigation started", to distinguish it from all the other early returns? And then we assume that redirects in all navigations that were subjected to connection allowlists should fail for now? Could we clarify that in the comment for the definition of this field?

        done

        This is a bit unfortunate, as I wouldn't expect IsAllowedByConnectionAllowlist() to make state changes on NavigationRequest. Would it be worth it if BeginNavigationImpl would set this state on NavigationRequest after it checks IsAllowedByConnectionAllowlist() (which could return an additional bool for it)? Might depend on whether you plan to address the TODO in the short vs long term.

        The next CL with the attribute for redirect will be a fast follow.
        The TODO was added based on the thread here: https://chromium-review.googlesource.com/c/chromium/src/+/7599175/4..6/content/browser/renderer_host/navigation_request.cc#b3782
        Although maybe continuing to keep the field could be simpler to not have to worry about testing the other early returns again for the redirect path or figuring which of them should be tested for redirect vs not which could introduce bugs.

        I am not too sure of the out param though as I don't see many similar out booleans but I added a side effect comment on the function definition similar to how CheckContentSecurityPolicy() does. Does that sound ok to you or would you rather have the out param?

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Alex Moshchuk
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
        Gerrit-Change-Number: 7599175
        Gerrit-PatchSet: 7
        Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
        Gerrit-Reviewer: Alex Moshchuk <ale...@chromium.org>
        Gerrit-Reviewer: Mike West <mk...@chromium.org>
        Gerrit-Reviewer: Shivani Sharma <shiva...@chromium.org>
        Gerrit-CC: Andrew Verge <ave...@chromium.org>
        Gerrit-Attention: Alex Moshchuk <ale...@chromium.org>
        Gerrit-Comment-Date: Fri, 27 Feb 2026 21:37:35 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Alex Moshchuk <ale...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Alex Moshchuk (Gerrit)

        unread,
        Feb 27, 2026, 5:36:22 PM (8 hours ago) Feb 27
        to Shivani Sharma, Mike West, Chromium LUCI CQ, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org
        Attention needed from Shivani Sharma

        Alex Moshchuk voted and added 2 comments

        Votes added by Alex Moshchuk

        Code-Review+1

        2 comments

        Patchset-level comments
        Alex Moshchuk . resolved

        LGTM, thanks!

        File content/browser/renderer_host/navigation_request.cc
        Line 7410, Patchset 6: connection_allowlists_blocks_redirect_ = true;
        Alex Moshchuk . resolved

        Is this more of a bool for "Connection allowlists are in use, and were checked when this navigation started", to distinguish it from all the other early returns? And then we assume that redirects in all navigations that were subjected to connection allowlists should fail for now? Could we clarify that in the comment for the definition of this field?

        This is a bit unfortunate, as I wouldn't expect IsAllowedByConnectionAllowlist() to make state changes on NavigationRequest. Would it be worth it if BeginNavigationImpl would set this state on NavigationRequest after it checks IsAllowedByConnectionAllowlist() (which could return an additional bool for it)? Might depend on whether you plan to address the TODO in the short vs long term.

        Shivani Sharma

        Is this more of a bool for "Connection allowlists are in use, and were checked when this navigation started", to distinguish it from all the other early returns? And then we assume that redirects in all navigations that were subjected to connection allowlists should fail for now? Could we clarify that in the comment for the definition of this field?

        done

        This is a bit unfortunate, as I wouldn't expect IsAllowedByConnectionAllowlist() to make state changes on NavigationRequest. Would it be worth it if BeginNavigationImpl would set this state on NavigationRequest after it checks IsAllowedByConnectionAllowlist() (which could return an additional bool for it)? Might depend on whether you plan to address the TODO in the short vs long term.

        The next CL with the attribute for redirect will be a fast follow.
        The TODO was added based on the thread here: https://chromium-review.googlesource.com/c/chromium/src/+/7599175/4..6/content/browser/renderer_host/navigation_request.cc#b3782
        Although maybe continuing to keep the field could be simpler to not have to worry about testing the other early returns again for the redirect path or figuring which of them should be tested for redirect vs not which could introduce bugs.

        I am not too sure of the out param though as I don't see many similar out booleans but I added a side effect comment on the function definition similar to how CheckContentSecurityPolicy() does. Does that sound ok to you or would you rather have the out param?

        Alex Moshchuk

        I guess we can keep it for now and try to revisit when reporting and redirect handling are more fleshed out - thanks for adding the comments about side effects, which helps.

        For the out bool, a couple of existing examples are RFHI::ShouldBypassSecurityChecksForErrorPage() and MixedContentChecker::ShouldBlockInternal().

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Shivani Sharma
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
        Gerrit-Change-Number: 7599175
        Gerrit-PatchSet: 7
        Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
        Gerrit-Reviewer: Alex Moshchuk <ale...@chromium.org>
        Gerrit-Reviewer: Mike West <mk...@chromium.org>
        Gerrit-Reviewer: Shivani Sharma <shiva...@chromium.org>
        Gerrit-CC: Andrew Verge <ave...@chromium.org>
        Gerrit-Attention: Shivani Sharma <shiva...@chromium.org>
        Gerrit-Comment-Date: Fri, 27 Feb 2026 22:36:15 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        Comment-In-Reply-To: Alex Moshchuk <ale...@chromium.org>
        Comment-In-Reply-To: Shivani Sharma <shiva...@chromium.org>
        satisfied_requirement
        open
        diffy

        Blink W3C Test Autoroller (Gerrit)

        unread,
        Feb 27, 2026, 5:56:35 PM (8 hours ago) Feb 27
        to Shivani Sharma, Alex Moshchuk, Mike West, Chromium LUCI CQ, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org
        Attention needed from Shivani Sharma

        Message from Blink W3C Test Autoroller

        Exportable changes to web-platform-tests were detected in this CL and a pull request in the upstream repo has been made: https://github.com/web-platform-tests/wpt/pull/58123.

        When this CL lands, the bot will automatically merge the PR on GitHub if the required GitHub checks pass; otherwise, ecosystem-infra@ team will triage the failures and may contact you.

        WPT Export docs:
        https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md#Automatic-export-process

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Shivani Sharma
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
        Gerrit-Change-Number: 7599175
        Gerrit-PatchSet: 7
        Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
        Gerrit-Reviewer: Alex Moshchuk <ale...@chromium.org>
        Gerrit-Reviewer: Mike West <mk...@chromium.org>
        Gerrit-Reviewer: Shivani Sharma <shiva...@chromium.org>
        Gerrit-CC: Andrew Verge <ave...@chromium.org>
        Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
        Gerrit-Attention: Shivani Sharma <shiva...@chromium.org>
        Gerrit-Comment-Date: Fri, 27 Feb 2026 22:56:28 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: No
        satisfied_requirement
        open
        diffy

        Shivani Sharma (Gerrit)

        unread,
        Feb 27, 2026, 6:00:33 PM (8 hours ago) Feb 27
        to Blink W3C Test Autoroller, Alex Moshchuk, Mike West, Chromium LUCI CQ, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org

        Shivani Sharma added 3 comments

        Shivani Sharma . resolved

        Thanks!

        File content/browser/renderer_host/navigation_request.cc
        Line 3551, Patchset 8 (Latest): if (!was_redirected_ &&
        Shivani Sharma . unresolved

        @ale...@chromium.org: I just added this since we should only be checking at the first redirect, since Connection Allowlists will either allow all redirects or disallow all.

        Line 7410, Patchset 6: connection_allowlists_blocks_redirect_ = true;
        Alex Moshchuk . resolved

        Is this more of a bool for "Connection allowlists are in use, and were checked when this navigation started", to distinguish it from all the other early returns? And then we assume that redirects in all navigations that were subjected to connection allowlists should fail for now? Could we clarify that in the comment for the definition of this field?

        This is a bit unfortunate, as I wouldn't expect IsAllowedByConnectionAllowlist() to make state changes on NavigationRequest. Would it be worth it if BeginNavigationImpl would set this state on NavigationRequest after it checks IsAllowedByConnectionAllowlist() (which could return an additional bool for it)? Might depend on whether you plan to address the TODO in the short vs long term.

        Shivani Sharma

        Is this more of a bool for "Connection allowlists are in use, and were checked when this navigation started", to distinguish it from all the other early returns? And then we assume that redirects in all navigations that were subjected to connection allowlists should fail for now? Could we clarify that in the comment for the definition of this field?

        done

        This is a bit unfortunate, as I wouldn't expect IsAllowedByConnectionAllowlist() to make state changes on NavigationRequest. Would it be worth it if BeginNavigationImpl would set this state on NavigationRequest after it checks IsAllowedByConnectionAllowlist() (which could return an additional bool for it)? Might depend on whether you plan to address the TODO in the short vs long term.

        The next CL with the attribute for redirect will be a fast follow.
        The TODO was added based on the thread here: https://chromium-review.googlesource.com/c/chromium/src/+/7599175/4..6/content/browser/renderer_host/navigation_request.cc#b3782
        Although maybe continuing to keep the field could be simpler to not have to worry about testing the other early returns again for the redirect path or figuring which of them should be tested for redirect vs not which could introduce bugs.

        I am not too sure of the out param though as I don't see many similar out booleans but I added a side effect comment on the function definition similar to how CheckContentSecurityPolicy() does. Does that sound ok to you or would you rather have the out param?

        Alex Moshchuk

        I guess we can keep it for now and try to revisit when reporting and redirect handling are more fleshed out - thanks for adding the comments about side effects, which helps.

        For the out bool, a couple of existing examples are RFHI::ShouldBypassSecurityChecksForErrorPage() and MixedContentChecker::ShouldBlockInternal().

        Shivani Sharma

        ack, thanks!
        cc @ave...@chromium.org who might be adding the redirect attribute handling.

        Open in Gerrit

        Related details

        Attention set is empty
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement satisfiedCode-Owners
          • requirement satisfiedCode-Review
          • requirement is not satisfiedNo-Unresolved-Comments
          • requirement satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
          Gerrit-Change-Number: 7599175
          Gerrit-PatchSet: 8
          Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
          Gerrit-Reviewer: Alex Moshchuk <ale...@chromium.org>
          Gerrit-Reviewer: Mike West <mk...@chromium.org>
          Gerrit-Reviewer: Shivani Sharma <shiva...@chromium.org>
          Gerrit-CC: Andrew Verge <ave...@chromium.org>
          Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
          Gerrit-Comment-Date: Fri, 27 Feb 2026 23:00:19 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Alex Moshchuk (Gerrit)

          unread,
          Feb 27, 2026, 6:05:43 PM (8 hours ago) Feb 27
          to Shivani Sharma, Blink W3C Test Autoroller, Mike West, Chromium LUCI CQ, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org
          Attention needed from Alex Moshchuk and Shivani Sharma

          Alex Moshchuk voted and added 1 comment

          Votes added by Alex Moshchuk

          Code-Review+1

          1 comment

          File content/browser/renderer_host/navigation_request.cc
          Line 3551, Patchset 8 (Latest): if (!was_redirected_ &&
          Shivani Sharma . resolved

          @ale...@chromium.org: I just added this since we should only be checking at the first redirect, since Connection Allowlists will either allow all redirects or disallow all.

          Alex Moshchuk

          SGTM

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Alex Moshchuk
          • Shivani Sharma
          Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
            Gerrit-Change-Number: 7599175
            Gerrit-PatchSet: 8
            Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
            Gerrit-Reviewer: Alex Moshchuk <ale...@chromium.org>
            Gerrit-Reviewer: Mike West <mk...@chromium.org>
            Gerrit-Reviewer: Shivani Sharma <shiva...@chromium.org>
            Gerrit-CC: Andrew Verge <ave...@chromium.org>
            Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
            Gerrit-Attention: Alex Moshchuk <ale...@chromium.org>
            Gerrit-Attention: Shivani Sharma <shiva...@chromium.org>
            Gerrit-Comment-Date: Fri, 27 Feb 2026 23:05:36 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            Comment-In-Reply-To: Shivani Sharma <shiva...@chromium.org>
            satisfied_requirement
            open
            diffy

            Shivani Sharma (Gerrit)

            unread,
            Feb 27, 2026, 9:52:11 PM (4 hours ago) Feb 27
            to Blink W3C Test Autoroller, Alex Moshchuk, Mike West, Chromium LUCI CQ, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org

            Shivani Sharma voted Commit-Queue+2

            Commit-Queue+2
            Open in Gerrit

            Related details

            Attention set is empty
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
            Gerrit-Change-Number: 7599175
            Gerrit-PatchSet: 8
            Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
            Gerrit-Reviewer: Alex Moshchuk <ale...@chromium.org>
            Gerrit-Reviewer: Mike West <mk...@chromium.org>
            Gerrit-Reviewer: Shivani Sharma <shiva...@chromium.org>
            Gerrit-CC: Andrew Verge <ave...@chromium.org>
            Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
            Gerrit-Comment-Date: Sat, 28 Feb 2026 02:52:05 +0000
            Gerrit-HasComments: No
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            open
            diffy

            Chromium LUCI CQ (Gerrit)

            unread,
            Feb 27, 2026, 9:58:48 PM (4 hours ago) Feb 27
            to Shivani Sharma, Blink W3C Test Autoroller, Alex Moshchuk, Mike West, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org

            Chromium LUCI CQ submitted the change

            Change information

            Commit message:
            [Connection-Allowlist] Redirects blocked for navigations

            This CL implements blocking server-side redirects for navigations
            that were allowed via connection allowlist. Follow up CLs will ensure
            the same behavior for subresources and worker scripts.

            Note that a follow up CL will also implement the redirection-allowed
            attribute to allow redirects.
            This behavior is in discussion in the issue:
            https://github.com/WICG/connection-allowlists/issues/7

            Bug: 447954811
            Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
            Reviewed-by: Mike West <mk...@chromium.org>
            Reviewed-by: Alex Moshchuk <ale...@chromium.org>
            Commit-Queue: Shivani Sharma <shiva...@chromium.org>
            Cr-Commit-Position: refs/heads/main@{#1591950}
            Files:
            • M content/browser/renderer_host/navigation_request.cc
            • M content/browser/renderer_host/navigation_request.h
            • A third_party/blink/web_tests/external/wpt/connection-allowlist/tentative/navigation-redirect.sub.window.js
            • A third_party/blink/web_tests/external/wpt/connection-allowlist/tentative/navigation-redirect.sub.window.js.headers
            Change size: M
            Delta: 4 files changed, 113 insertions(+), 10 deletions(-)
            Branch: refs/heads/main
            Submit Requirements:
            • requirement satisfiedCode-Review: +1 by Alex Moshchuk, +1 by Mike West
            Open in Gerrit
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: merged
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
            Gerrit-Change-Number: 7599175
            Gerrit-PatchSet: 9
            Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
            Gerrit-Reviewer: Alex Moshchuk <ale...@chromium.org>
            Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
            Gerrit-Reviewer: Mike West <mk...@chromium.org>
            Gerrit-Reviewer: Shivani Sharma <shiva...@chromium.org>
            Gerrit-CC: Andrew Verge <ave...@chromium.org>
            Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
            open
            diffy
            satisfied_requirement

            Blink W3C Test Autoroller (Gerrit)

            unread,
            12:54 AM (1 hour ago) 12:54 AM
            to Shivani Sharma, Chromium LUCI CQ, Alex Moshchuk, Mike West, Andrew Verge, chromium...@chromium.org, alexmo...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org

            Message from Blink W3C Test Autoroller

            The WPT PR for this CL has been merged upstream! https://github.com/web-platform-tests/wpt/pull/58123

            Open in Gerrit

            Related details

            Attention set is empty
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: Iee7342145c989f76313fd97ef60f52f1fb64a22a
            Gerrit-Change-Number: 7599175
            Gerrit-PatchSet: 9
            Gerrit-Owner: Shivani Sharma <shiva...@chromium.org>
            Gerrit-Reviewer: Alex Moshchuk <ale...@chromium.org>
            Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
            Gerrit-Reviewer: Mike West <mk...@chromium.org>
            Gerrit-Reviewer: Shivani Sharma <shiva...@chromium.org>
            Gerrit-CC: Andrew Verge <ave...@chromium.org>
            Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
            Gerrit-Comment-Date: Sat, 28 Feb 2026 05:54:36 +0000
            Gerrit-HasComments: No
            Gerrit-Has-Labels: No
            satisfied_requirement
            open
            diffy
            Reply all
            Reply to author
            Forward
            0 new messages