Make //content have no baseline permissions policy for isolated apps [chromium/src : main]

0 views
Skip to first unread message

Zgroza (Luke) Klimek (Gerrit)

unread,
Mar 4, 2026, 9:30:18 AMMar 4
to Andrew Rayskiy, Simon Hangl, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, Peter Beverloo, blink-revie...@chromium.org, devtools-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org, alexmo...@chromium.org
Attention needed from Andrew Rayskiy

Zgroza (Luke) Klimek added 2 comments

Commit Message
Line 13, Patchset 17 (Latest):Allowing it to be optional (and falling back to how regular pages
Zgroza (Luke) Klimek . unresolved

Sooo do I see it right that after this change an IWA that does not specify the `permissions_policy` field within the manifest at all Chrome will just rely 100% on the headers? Effectively creating a bypass for a whole permissions-in-the-manifest mechanism? If so, that would be a strong -1 from me.

File chrome/browser/chrome_content_browser_client.cc
Line 2334, Patchset 17 (Latest): return std::vector<blink::mojom::IsolatedAppPermissionPolicyEntryPtr>();
Zgroza (Luke) Klimek . unresolved

There's another aspect to this though. There is an explicit difference between the following situations:

  • We don't have permissions policies cached for this IWA at all.
  • We have the permissions policy but it's just empty.

Usually the former is a sign of a grave error somewhere (e.g. manifest parsing failure)—while the latter is perfectly okay.

Also, this is the main real use case of this being `optional`. If this is changed, the method should just return a vector (and only make it empty sometimes).

Open in Gerrit

Related details

Attention is currently required from:
  • Andrew Rayskiy
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: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
Gerrit-Change-Number: 7594805
Gerrit-PatchSet: 17
Gerrit-Owner: Andrew Rayskiy <green...@google.com>
Gerrit-Reviewer: Andrew Rayskiy <green...@google.com>
Gerrit-Reviewer: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-CC: Peter Beverloo <pe...@chromium.org>
Gerrit-CC: Simon Hangl <sim...@google.com>
Gerrit-Attention: Andrew Rayskiy <green...@google.com>
Gerrit-Comment-Date: Wed, 04 Mar 2026 14:29:58 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Zgroza (Luke) Klimek (Gerrit)

unread,
Mar 4, 2026, 9:47:57 AMMar 4
to Andrew Rayskiy, Simon Hangl, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, Peter Beverloo, blink-revie...@chromium.org, devtools-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org, alexmo...@chromium.org
Attention needed from Andrew Rayskiy

Zgroza (Luke) Klimek voted and added 2 comments

Votes added by Zgroza (Luke) Klimek

Code-Review+1

2 comments

Commit Message
Line 13, Patchset 17 (Latest):Allowing it to be optional (and falling back to how regular pages
Zgroza (Luke) Klimek . resolved

Sooo do I see it right that after this change an IWA that does not specify the `permissions_policy` field within the manifest at all Chrome will just rely 100% on the headers? Effectively creating a bypass for a whole permissions-in-the-manifest mechanism? If so, that would be a strong -1 from me.

Zgroza (Luke) Klimek

Okay, I reevaluated it, the behavior here makes sense.

File chrome/browser/chrome_content_browser_client.cc
Line 2334, Patchset 17 (Latest): return std::vector<blink::mojom::IsolatedAppPermissionPolicyEntryPtr>();
Zgroza (Luke) Klimek . resolved

There's another aspect to this though. There is an explicit difference between the following situations:

  • We don't have permissions policies cached for this IWA at all.
  • We have the permissions policy but it's just empty.

Usually the former is a sign of a grave error somewhere (e.g. manifest parsing failure)—while the latter is perfectly okay.

Also, this is the main real use case of this being `optional`. If this is changed, the method should just return a vector (and only make it empty sometimes).

Zgroza (Luke) Klimek

Nevermind, after discussing offline and re-reading things here it does make sense.

Open in Gerrit

Related details

Attention is currently required from:
  • Andrew Rayskiy
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: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
    Gerrit-Change-Number: 7594805
    Gerrit-PatchSet: 17
    Gerrit-Owner: Andrew Rayskiy <green...@google.com>
    Gerrit-Reviewer: Andrew Rayskiy <green...@google.com>
    Gerrit-Reviewer: Zgroza (Luke) Klimek <zgr...@chromium.org>
    Gerrit-CC: Peter Beverloo <pe...@chromium.org>
    Gerrit-CC: Simon Hangl <sim...@google.com>
    Gerrit-Attention: Andrew Rayskiy <green...@google.com>
    Gerrit-Comment-Date: Wed, 04 Mar 2026 14:47:39 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Zgroza (Luke) Klimek <zgr...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Andrew Rayskiy (Gerrit)

    unread,
    Mar 4, 2026, 11:08:58 AMMar 4
    to Camille Lamy, Zgroza (Luke) Klimek, Simon Hangl, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, Peter Beverloo, blink-revie...@chromium.org, devtools-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org, alexmo...@chromium.org
    Attention needed from Camille Lamy

    Andrew Rayskiy added 1 comment

    Patchset-level comments
    File-level comment, Patchset 19 (Latest):
    Andrew Rayskiy . resolved

    Hey Camille, PTAL at `//content` files. Ideally the change should be a no-op for `//chrome` IWAs :)

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Camille Lamy
    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: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
    Gerrit-Change-Number: 7594805
    Gerrit-PatchSet: 19
    Gerrit-Owner: Andrew Rayskiy <green...@google.com>
    Gerrit-Reviewer: Andrew Rayskiy <green...@google.com>
    Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
    Gerrit-Reviewer: Zgroza (Luke) Klimek <zgr...@chromium.org>
    Gerrit-CC: Peter Beverloo <pe...@chromium.org>
    Gerrit-CC: Simon Hangl <sim...@google.com>
    Gerrit-Attention: Camille Lamy <cl...@chromium.org>
    Gerrit-Comment-Date: Wed, 04 Mar 2026 16:08:44 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Camille Lamy (Gerrit)

    unread,
    Mar 4, 2026, 12:09:03 PMMar 4
    to Andrew Rayskiy, Zgroza (Luke) Klimek, Simon Hangl, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, Peter Beverloo, blink-revie...@chromium.org, devtools-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org, alexmo...@chromium.org
    Attention needed from Andrew Rayskiy

    Camille Lamy added 5 comments

    Patchset-level comments
    Camille Lamy . resolved

    Thanks! A few comments below.

    File chrome/browser/chrome_content_browser_client.cc
    Line 2317, Patchset 19 (Latest): // This function intentionally returns an empty vector (which is equal to a
    Camille Lamy . unresolved

    Ok so that I understand correctly: in regular operations this will always return a non-optional vector, but we're keeping the optional return value because we don't want a value in content/browsertests. Is that correct?

    If so, it feels a bit annoying that we're having a less optimal return type just for tests. I wonder if it would make sense to split this into two functions, one which checks whether we need to query for a baseline or not, and one which checks what the baseline actually is when we know we need to look for a baseline. Or maybe we can have a test only function that just overrides prevent the ask for a baseline in tests, with a ForTesting suffix that ensures it's only used in testing code.

    File content/browser/direct_sockets/direct_sockets_test_utils.h
    Line 171, Patchset 19 (Latest):class UrlBuilder {
    Camille Lamy . unresolved

    Since this is exposed in the general content::testing namespace, could we maybe name it something a bit more specific?

    File content/shell/browser/shell_content_browser_client.cc
    Line 486, Patchset 8:bool ShellContentBrowserClient::ShouldUrlUseApplicationIsolationLevel(
    Andrew Rayskiy . resolved

    Web platform tests run on a known origin with an unknown port; this origin is passed to `GetIsolatedContextOriginSetFromFlag()` via cmdline.

    `IsIsolatedContextAllowedForUrl()` (on the left) uses `ProcessLock().GetProcessLockURL()` which strips the port, whereas `ShouldUrlUseApplicationIsolationLevel()` includes it -> hence the tweak.

    Camille Lamy

    Ah yes this an issue for a bunch of tests that hard code isolated contexts.

    Line 490, Patchset 19 (Latest): auto url_without_port = GURL(
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Andrew Rayskiy
    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: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
    Gerrit-Change-Number: 7594805
    Gerrit-PatchSet: 19
    Gerrit-Owner: Andrew Rayskiy <green...@google.com>
    Gerrit-Reviewer: Andrew Rayskiy <green...@google.com>
    Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
    Gerrit-Reviewer: Zgroza (Luke) Klimek <zgr...@chromium.org>
    Gerrit-CC: Peter Beverloo <pe...@chromium.org>
    Gerrit-CC: Simon Hangl <sim...@google.com>
    Gerrit-Attention: Andrew Rayskiy <green...@google.com>
    Gerrit-Comment-Date: Wed, 04 Mar 2026 17:08:45 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Andrew Rayskiy <green...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Andrew Rayskiy (Gerrit)

    unread,
    Mar 4, 2026, 12:36:51 PMMar 4
    to Camille Lamy, Zgroza (Luke) Klimek, Simon Hangl, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, Peter Beverloo, blink-revie...@chromium.org, devtools-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org, alexmo...@chromium.org
    Attention needed from Camille Lamy

    Andrew Rayskiy added 1 comment

    File chrome/browser/chrome_content_browser_client.cc
    Line 2317, Patchset 19 (Latest): // This function intentionally returns an empty vector (which is equal to a
    Camille Lamy . unresolved

    Ok so that I understand correctly: in regular operations this will always return a non-optional vector, but we're keeping the optional return value because we don't want a value in content/browsertests. Is that correct?

    If so, it feels a bit annoying that we're having a less optimal return type just for tests. I wonder if it would make sense to split this into two functions, one which checks whether we need to query for a baseline or not, and one which checks what the baseline actually is when we know we need to look for a baseline. Or maybe we can have a test only function that just overrides prevent the ask for a baseline in tests, with a ForTesting suffix that ensures it's only used in testing code.

    Andrew Rayskiy

    Yes, that's correct! I guess I'll split it, this sounds more than reasonable.
    One minor correction: web platform tests run on top of `content_shell`, but the `content_shell` itself isn't a test-only target.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Camille Lamy
    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: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
    Gerrit-Change-Number: 7594805
    Gerrit-PatchSet: 19
    Gerrit-Owner: Andrew Rayskiy <green...@google.com>
    Gerrit-Reviewer: Andrew Rayskiy <green...@google.com>
    Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
    Gerrit-Reviewer: Zgroza (Luke) Klimek <zgr...@chromium.org>
    Gerrit-CC: Peter Beverloo <pe...@chromium.org>
    Gerrit-CC: Simon Hangl <sim...@google.com>
    Gerrit-Attention: Camille Lamy <cl...@chromium.org>
    Gerrit-Comment-Date: Wed, 04 Mar 2026 17:36:32 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Camille Lamy <cl...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Andrew Rayskiy (Gerrit)

    unread,
    Mar 5, 2026, 8:48:44 AMMar 5
    to Camille Lamy, Zgroza (Luke) Klimek, Simon Hangl, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, Peter Beverloo, blink-revie...@chromium.org, devtools-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org, alexmo...@chromium.org
    Attention needed from Camille Lamy

    Andrew Rayskiy voted and added 3 comments

    Votes added by Andrew Rayskiy

    Auto-Submit+1

    3 comments

    File chrome/browser/chrome_content_browser_client.cc
    Line 2317, Patchset 19: // This function intentionally returns an empty vector (which is equal to a
    Camille Lamy . resolved

    Ok so that I understand correctly: in regular operations this will always return a non-optional vector, but we're keeping the optional return value because we don't want a value in content/browsertests. Is that correct?

    If so, it feels a bit annoying that we're having a less optimal return type just for tests. I wonder if it would make sense to split this into two functions, one which checks whether we need to query for a baseline or not, and one which checks what the baseline actually is when we know we need to look for a baseline. Or maybe we can have a test only function that just overrides prevent the ask for a baseline in tests, with a ForTesting suffix that ensures it's only used in testing code.

    Andrew Rayskiy

    Yes, that's correct! I guess I'll split it, this sounds more than reasonable.
    One minor correction: web platform tests run on top of `content_shell`, but the `content_shell` itself isn't a test-only target.

    Andrew Rayskiy

    Done

    File content/browser/direct_sockets/direct_sockets_test_utils.h
    Line 171, Patchset 19:class UrlBuilder {
    Camille Lamy . resolved

    Since this is exposed in the general content::testing namespace, could we maybe name it something a bit more specific?

    Andrew Rayskiy

    Done

    File content/shell/browser/shell_content_browser_client.cc
    Line 490, Patchset 19: auto url_without_port = GURL(
    Camille Lamy . resolved
    Andrew Rayskiy

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Camille Lamy
    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: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
      Gerrit-Change-Number: 7594805
      Gerrit-PatchSet: 22
      Gerrit-Owner: Andrew Rayskiy <green...@google.com>
      Gerrit-Reviewer: Andrew Rayskiy <green...@google.com>
      Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
      Gerrit-Reviewer: Zgroza (Luke) Klimek <zgr...@chromium.org>
      Gerrit-CC: Peter Beverloo <pe...@chromium.org>
      Gerrit-CC: Simon Hangl <sim...@google.com>
      Gerrit-Attention: Camille Lamy <cl...@chromium.org>
      Gerrit-Comment-Date: Thu, 05 Mar 2026 13:48:26 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Camille Lamy <cl...@chromium.org>
      Comment-In-Reply-To: Andrew Rayskiy <green...@google.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Camille Lamy (Gerrit)

      unread,
      Mar 5, 2026, 11:12:53 AMMar 5
      to Andrew Rayskiy, Zgroza (Luke) Klimek, Simon Hangl, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, Peter Beverloo, blink-revie...@chromium.org, devtools-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org, alexmo...@chromium.org
      Attention needed from Andrew Rayskiy

      Camille Lamy voted and added 2 comments

      Votes added by Camille Lamy

      Code-Review+1

      2 comments

      Patchset-level comments
      File-level comment, Patchset 23 (Latest):
      Camille Lamy . resolved

      Thanks! Lgtm % comment addressed.

      File content/browser/renderer_host/render_frame_host_impl.cc
      Line 12535, Patchset 23 (Latest): auto* cbc = GetContentClient()->browser();
      Camille Lamy . unresolved

      Let's avoid calling this cbc. I think it is fine to just call both methods directly on GetContentClient()->browser(), and more in style with the rest of the file.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Andrew Rayskiy
      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: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
      Gerrit-Change-Number: 7594805
      Gerrit-PatchSet: 23
      Gerrit-Owner: Andrew Rayskiy <green...@google.com>
      Gerrit-Reviewer: Andrew Rayskiy <green...@google.com>
      Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
      Gerrit-Reviewer: Zgroza (Luke) Klimek <zgr...@chromium.org>
      Gerrit-CC: Peter Beverloo <pe...@chromium.org>
      Gerrit-CC: Simon Hangl <sim...@google.com>
      Gerrit-Attention: Andrew Rayskiy <green...@google.com>
      Gerrit-Comment-Date: Thu, 05 Mar 2026 16:12:33 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Andrew Rayskiy (Gerrit)

      unread,
      Mar 5, 2026, 4:52:10 PMMar 5
      to Camille Lamy, Zgroza (Luke) Klimek, Simon Hangl, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, Peter Beverloo, blink-revie...@chromium.org, devtools-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org, alexmo...@chromium.org

      Andrew Rayskiy voted and added 1 comment

      Votes added by Andrew Rayskiy

      Auto-Submit+1
      Commit-Queue+2

      1 comment

      File content/browser/renderer_host/render_frame_host_impl.cc
      Line 12535, Patchset 23: auto* cbc = GetContentClient()->browser();
      Camille Lamy . resolved

      Let's avoid calling this cbc. I think it is fine to just call both methods directly on GetContentClient()->browser(), and more in style with the rest of the file.

      Andrew Rayskiy

      Done

      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: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
        Gerrit-Change-Number: 7594805
        Gerrit-PatchSet: 24
        Gerrit-Owner: Andrew Rayskiy <green...@google.com>
        Gerrit-Reviewer: Andrew Rayskiy <green...@google.com>
        Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
        Gerrit-Reviewer: Zgroza (Luke) Klimek <zgr...@chromium.org>
        Gerrit-CC: Peter Beverloo <pe...@chromium.org>
        Gerrit-CC: Simon Hangl <sim...@google.com>
        Gerrit-Comment-Date: Thu, 05 Mar 2026 21:51:49 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        Comment-In-Reply-To: Camille Lamy <cl...@chromium.org>
        satisfied_requirement
        open
        diffy

        Chromium LUCI CQ (Gerrit)

        unread,
        Mar 5, 2026, 4:58:41 PMMar 5
        to Andrew Rayskiy, Camille Lamy, Zgroza (Luke) Klimek, Simon Hangl, AyeAye, chromium...@chromium.org, Peter Beverloo, blink-revie...@chromium.org, devtools-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org, alexmo...@chromium.org

        Chromium LUCI CQ submitted the change with unreviewed changes

        Unreviewed changes

        23 is the latest approved patch-set.
        The change was submitted with unreviewed changes in the following files:

        ```
        The name of the file: content/browser/renderer_host/render_frame_host_impl.cc
        Insertions: 17, Deletions: 10.

        @@ -12532,16 +12532,19 @@
        DCHECK_EQ(this, navigation_request->GetRenderFrameHost());
        AssertBrowserContextShutdownHasntStarted();

        - auto* cbc = GetContentClient()->browser();
        if (IsOutermostMainFrame() &&
        GetSiteInstance()
        ->GetWebExposedIsolationInfo()
        .is_isolated_application() &&
        - cbc->SupportsBaselinePermissionsPolicyForIsolatedApp()) {
        + GetContentClient()
        + ->browser()
        + ->SupportsBaselinePermissionsPolicyForIsolatedApp()) {
        commit_params->isolated_app_policy =
        - cbc->GetBaselinePermissionsPolicyForIsolatedApp(
        - GetBrowserContext(),
        - url::Origin::Create(navigation_request->GetURL()));
        + GetContentClient()
        + ->browser()
        + ->GetBaselinePermissionsPolicyForIsolatedApp(
        + GetBrowserContext(),
        + url::Origin::Create(navigation_request->GetURL()));
        }

        bool is_same_document =
        @@ -14296,14 +14299,18 @@
        // Interpretation of the permission policies and merging is done in the
        // renderer. However, as it is untrusted, we perform a sanity check whether
        // it did not add any new policies which would mean it's been compromised.
        - auto* cbc = GetContentClient()->browser();
        if (!header_policy.empty() &&
        - cbc->SupportsBaselinePermissionsPolicyForIsolatedApp() &&
        + GetContentClient()
        + ->browser()
        + ->SupportsBaselinePermissionsPolicyForIsolatedApp() &&
        !VerifyHeaderPermissionsPolicyAgainstBaseline(
        header_policy,
        - cbc->GetBaselinePermissionsPolicyForIsolatedApp(
        - GetBrowserContext(),
        - GetSiteInstance()->GetWebExposedIsolationInfo().origin()))) {
        + GetContentClient()
        + ->browser()
        + ->GetBaselinePermissionsPolicyForIsolatedApp(
        + GetBrowserContext(), GetSiteInstance()
        + ->GetWebExposedIsolationInfo()
        + .origin()))) {
        bad_message::ReceivedBadMessage(
        GetProcess(), bad_message::BadMessageReason::
        RFH_NEW_ISOLATED_WEB_APP_PERMISSION_POLICIES);
        ```

        Change information

        Commit message:
        Make //content have no baseline permissions policy for isolated apps

        Baseline permissions policy (aka high-watermark permissions policy) is
        strictly an Isolated Web Apps concept for the //chrome layer -- it's not
        exactly spec-ed and isn't a hard requirement for other embedders.

        Allowing it to be optional outside of //chrome (and falling back to how
        regular pages behave) eliminates the need to define approximate baseline
        policies in WPTs and //content browser tests.

        In addition this CL opts WPTs relying on isolated-context-origins into
        proper process-level isolation instead of pretending that they're
        running in embedder-defined IsolatedContext.
        Bug: 340886976
        Change-Id: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
        Reviewed-by: Zgroza (Luke) Klimek <zgr...@chromium.org>
        Reviewed-by: Camille Lamy <cl...@chromium.org>
        Commit-Queue: Andrew Rayskiy <green...@google.com>
        Auto-Submit: Andrew Rayskiy <green...@google.com>
        Cr-Commit-Position: refs/heads/main@{#1594940}
        Files:
        • M chrome/browser/chrome_content_browser_client.cc
        • M chrome/browser/chrome_content_browser_client.h
        • M content/browser/direct_sockets/direct_sockets_open_browsertest.cc
        • M content/browser/direct_sockets/direct_sockets_tcp_browsertest.cc
        • M content/browser/direct_sockets/direct_sockets_test_utils.cc
        • M content/browser/direct_sockets/direct_sockets_test_utils.h
        • M content/browser/direct_sockets/direct_sockets_udp_browsertest.cc
        • M content/browser/renderer_host/isolated_web_app_permissions_policy_unittest.cc
        • M content/browser/renderer_host/isolated_web_app_throttle_browsertest.cc
        • M content/browser/renderer_host/isolated_web_app_throttle_unittest.cc
        • M content/browser/renderer_host/render_frame_host_impl.cc
        • M content/browser/renderer_host/render_frame_host_impl.h
        • M content/browser/renderer_host/render_frame_host_impl_browsertest.cc
        • M content/browser/smart_card/smart_card_browsertest.cc
        • M content/public/browser/content_browser_client.cc
        • M content/public/browser/content_browser_client.h
        • M content/shell/browser/shell_content_browser_client.cc
        • M content/shell/browser/shell_content_browser_client.h
        • M content/test/content_test_bundle_data.filelist
        • D content/test/data/direct_sockets/open.html.mock-http-headers
        • D content/test/data/direct_sockets/tcp.html.mock-http-headers
        • D content/test/data/direct_sockets/udp.html.mock-http-headers
        • M third_party/blink/web_tests/external/wpt/direct-sockets/tcp_socket.https.html.headers
        • M third_party/blink/web_tests/external/wpt/direct-sockets/udp_socket.https.html.headers
        • M third_party/blink/web_tests/http/tests/inspector-protocol/network/direct-sockets/resources/socket-default.php
        • M third_party/blink/web_tests/http/tests/inspector-protocol/network/direct-sockets/resources/tcp-socket-success.php
        • M third_party/blink/web_tests/http/tests/inspector-protocol/network/direct-sockets/resources/udp-socket-success.php
        Change size: L
        Delta: 27 files changed, 313 insertions(+), 298 deletions(-)
        Branch: refs/heads/main
        Submit Requirements:
        • requirement satisfiedCode-Review: +1 by Zgroza (Luke) Klimek, +1 by Camille Lamy
        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: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
        Gerrit-Change-Number: 7594805
        Gerrit-PatchSet: 25
        Gerrit-Owner: Andrew Rayskiy <green...@google.com>
        Gerrit-Reviewer: Andrew Rayskiy <green...@google.com>
        Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: Zgroza (Luke) Klimek <zgr...@chromium.org>
        open
        diffy
        satisfied_requirement

        Blink W3C Test Autoroller (Gerrit)

        unread,
        Mar 5, 2026, 6:46:19 PMMar 5
        to Chromium LUCI CQ, Andrew Rayskiy, Camille Lamy, Zgroza (Luke) Klimek, Simon Hangl, AyeAye, chromium...@chromium.org, Peter Beverloo, blink-revie...@chromium.org, devtools-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, navigation...@chromium.org, alexmo...@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/58303

        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: Ia893e61efb372088228bd9bed3da2be4a7d2e17f
        Gerrit-Change-Number: 7594805
        Gerrit-PatchSet: 25
        Gerrit-Owner: Andrew Rayskiy <green...@google.com>
        Gerrit-Reviewer: Andrew Rayskiy <green...@google.com>
        Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: Zgroza (Luke) Klimek <zgr...@chromium.org>
        Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
        Gerrit-CC: Peter Beverloo <pe...@chromium.org>
        Gerrit-CC: Simon Hangl <sim...@google.com>
        Gerrit-Comment-Date: Thu, 05 Mar 2026 23:46:13 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: No
        satisfied_requirement
        open
        diffy
        Reply all
        Reply to author
        Forward
        0 new messages