[IWA] Dynamic feature flags for Isolated Web Apps [chromium/src : main]

0 views
Skip to first unread message

Simon Hangl (Gerrit)

unread,
Dec 12, 2025, 4:40:06 AM (5 days ago) Dec 12
to Zgroza (Luke) Klimek, chromium...@chromium.org, Andrew Rayskiy, Nate Chapin, Luna Lu, alexmo...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, dibyapal+wa...@chromium.org, dmurph+watc...@chromium.org, gavinp...@chromium.org, iclella...@chromium.org, ipc-securi...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kuragin+web-ap...@chromium.org, loading...@chromium.org, loyso...@chromium.org, mgiuca...@chromium.org, navigation...@chromium.org, philli...@chromium.org, rmcelra...@chromium.org, webap...@microsoft.com, zelin+watch-we...@chromium.org
Attention needed from Zgroza (Luke) Klimek

Simon Hangl added 4 comments

File chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.cc
Line 45, Patchset 4 (Latest):// Maximum size of the manifest file. 1MB.
Simon Hangl . unresolved

is that speced somewhere?

Line 122, Patchset 4 (Latest): manifest_loader_ = network::SimpleURLLoader::Create(
Simon Hangl . unresolved

will you also clean this up once the loading is complete?

Line 147, Patchset 4 (Latest): return;
Simon Hangl . unresolved

if we end up here and the user data at the bottom of this function was set before, we'd still stick with the old data, wouldn't we?

Line 150, Patchset 4 (Latest): // Yes, this parses untrusted data in the browser process. But it's Rust JSON
Simon Hangl . unresolved

is this something we can make sure to be true even when the parser code evolves?

Open in Gerrit

Related details

Attention is currently required from:
  • Zgroza (Luke) Klimek
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: I293ae453f6b25e346a90c12f36f11d85738d12e3
Gerrit-Change-Number: 7253350
Gerrit-PatchSet: 4
Gerrit-Owner: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-CC: Andrew Rayskiy <green...@google.com>
Gerrit-CC: Luna Lu <loon...@chromium.org>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-CC: Simon Hangl <sim...@google.com>
Gerrit-Attention: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-Comment-Date: Fri, 12 Dec 2025 09:39:52 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Zgroza (Luke) Klimek (Gerrit)

unread,
Dec 12, 2025, 9:05:10 AM (5 days ago) Dec 12
to chromium...@chromium.org, Andrew Rayskiy, Nate Chapin, Luna Lu, Simon Hangl, alexmo...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, dibyapal+wa...@chromium.org, dmurph+watc...@chromium.org, gavinp...@chromium.org, iclella...@chromium.org, ipc-securi...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kuragin+web-ap...@chromium.org, loading...@chromium.org, loyso...@chromium.org, mgiuca...@chromium.org, navigation...@chromium.org, philli...@chromium.org, rmcelra...@chromium.org, webap...@microsoft.com, zelin+watch-we...@chromium.org
Attention needed from Simon Hangl

Zgroza (Luke) Klimek added 4 comments

File chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.cc
Line 45, Patchset 4 (Latest):// Maximum size of the manifest file. 1MB.
Simon Hangl . unresolved

is that speced somewhere?

Zgroza (Luke) Klimek

Not really, though there's already a place where this is the expectation: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/apps/app_service/app_install/web_app_installer.cc;drc=e8b169d1e8ed51cc6e49a169f10c4876e5a9e30f;l=37

Where do You think a nice place for specing this could be? Explainer of the IWAs themselves?

Line 122, Patchset 4 (Latest): manifest_loader_ = network::SimpleURLLoader::Create(
Simon Hangl . unresolved

will you also clean this up once the loading is complete?

Zgroza (Luke) Klimek

Once the navigation is resumed this object is destroyed along with its members. So this should be automatic.

Simon Hangl . unresolved

if we end up here and the user data at the bottom of this function was set before, we'd still stick with the old data, wouldn't we?

Zgroza (Luke) Klimek

I think this is impossible. The only place that can set this data for a navigation handle is here and handle is not reused for multiple navigations.
Not to mention that I have no idea what scenario could lead to this, considering that IWA without manifest shouldn't be installable. Idk, someone would have to quickly remove some of the internal Chromium files? I'm even wondering whether not to put a `CHECK` in here.

Line 150, Patchset 4 (Latest): // Yes, this parses untrusted data in the browser process. But it's Rust JSON
Simon Hangl . unresolved

is this something we can make sure to be true even when the parser code evolves?

Zgroza (Luke) Klimek

The assumption of this parser is that it's memory safe. I recall it being used in other places that have such constraints as well. I'll investigate whether there is any `CHECK` or something I could place here.

Open in Gerrit

Related details

Attention is currently required from:
  • Simon Hangl
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: I293ae453f6b25e346a90c12f36f11d85738d12e3
Gerrit-Change-Number: 7253350
Gerrit-PatchSet: 4
Gerrit-Owner: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-CC: Andrew Rayskiy <green...@google.com>
Gerrit-CC: Luna Lu <loon...@chromium.org>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-CC: Simon Hangl <sim...@google.com>
Gerrit-Attention: Simon Hangl <sim...@google.com>
Gerrit-Comment-Date: Fri, 12 Dec 2025 14:04:53 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Simon Hangl <sim...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Zgroza (Luke) Klimek (Gerrit)

unread,
Dec 12, 2025, 9:08:35 AM (5 days ago) Dec 12
to chromium...@chromium.org, Andrew Rayskiy, Nate Chapin, Luna Lu, Simon Hangl, alexmo...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, dibyapal+wa...@chromium.org, dmurph+watc...@chromium.org, gavinp...@chromium.org, iclella...@chromium.org, ipc-securi...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kuragin+web-ap...@chromium.org, loading...@chromium.org, loyso...@chromium.org, mgiuca...@chromium.org, navigation...@chromium.org, philli...@chromium.org, rmcelra...@chromium.org, webap...@microsoft.com, zelin+watch-we...@chromium.org
Attention needed from Simon Hangl

Zgroza (Luke) Klimek added 1 comment

File chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.cc
Line 45, Patchset 4 (Latest):// Maximum size of the manifest file. 1MB.
Simon Hangl . unresolved

is that speced somewhere?

Zgroza (Luke) Klimek

Not really, though there's already a place where this is the expectation: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/apps/app_service/app_install/web_app_installer.cc;drc=e8b169d1e8ed51cc6e49a169f10c4876e5a9e30f;l=37

Where do You think a nice place for specing this could be? Explainer of the IWAs themselves?

Zgroza (Luke) Klimek

Maybe just setting a boundary that no one will reasonably ever surpass like 10MB or something would be a good idea?

Gerrit-Comment-Date: Fri, 12 Dec 2025 14:08:21 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Simon Hangl <sim...@google.com>
Comment-In-Reply-To: Zgroza (Luke) Klimek <zgr...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Matthew Riley (Gerrit)

unread,
Dec 12, 2025, 5:45:39 PM (4 days ago) Dec 12
to Zgroza (Luke) Klimek, chromium...@chromium.org, Andrew Rayskiy, Nate Chapin, Luna Lu, Simon Hangl, alexmo...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, dibyapal+wa...@chromium.org, dmurph+watc...@chromium.org, gavinp...@chromium.org, iclella...@chromium.org, ipc-securi...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kuragin+web-ap...@chromium.org, loading...@chromium.org, loyso...@chromium.org, mgiuca...@chromium.org, navigation...@chromium.org, philli...@chromium.org, rmcelra...@chromium.org, webap...@microsoft.com, zelin+watch-we...@chromium.org
Attention needed from Simon Hangl and Zgroza (Luke) Klimek

Matthew Riley added 1 comment

File chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.cc
Line 150, Patchset 4 (Latest): // Yes, this parses untrusted data in the browser process. But it's Rust JSON
Simon Hangl . unresolved

is this something we can make sure to be true even when the parser code evolves?

Zgroza (Luke) Klimek

The assumption of this parser is that it's memory safe. I recall it being used in other places that have such constraints as well. I'll investigate whether there is any `CHECK` or something I could place here.

Matthew Riley

Hi, yes, the JSON decoder in Chrome is now memory-safety by spec.

Open in Gerrit

Related details

Attention is currently required from:
  • Simon Hangl
  • Zgroza (Luke) Klimek
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: I293ae453f6b25e346a90c12f36f11d85738d12e3
Gerrit-Change-Number: 7253350
Gerrit-PatchSet: 4
Gerrit-Owner: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-CC: Andrew Rayskiy <green...@google.com>
Gerrit-CC: Luna Lu <loon...@chromium.org>
Gerrit-CC: Matthew Riley <mat...@google.com>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-CC: Simon Hangl <sim...@google.com>
Gerrit-Attention: Simon Hangl <sim...@google.com>
Gerrit-Attention: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-Comment-Date: Fri, 12 Dec 2025 22:45:27 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Zgroza (Luke) Klimek (Gerrit)

unread,
Dec 15, 2025, 10:37:57 AM (2 days ago) Dec 15
to Matthew Riley, chromium...@chromium.org, Andrew Rayskiy, Nate Chapin, Luna Lu, Simon Hangl, alexmo...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, dibyapal+wa...@chromium.org, dmurph+watc...@chromium.org, gavinp...@chromium.org, iclella...@chromium.org, ipc-securi...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kuragin+web-ap...@chromium.org, loading...@chromium.org, loyso...@chromium.org, mgiuca...@chromium.org, navigation...@chromium.org, philli...@chromium.org, rmcelra...@chromium.org, webap...@microsoft.com, zelin+watch-we...@chromium.org
Attention needed from Simon Hangl

Zgroza (Luke) Klimek added 1 comment

File chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.cc
Line 147, Patchset 4: return;
Simon Hangl . resolved

if we end up here and the user data at the bottom of this function was set before, we'd still stick with the old data, wouldn't we?

Zgroza (Luke) Klimek

I think this is impossible. The only place that can set this data for a navigation handle is here and handle is not reused for multiple navigations.
Not to mention that I have no idea what scenario could lead to this, considering that IWA without manifest shouldn't be installable. Idk, someone would have to quickly remove some of the internal Chromium files? I'm even wondering whether not to put a `CHECK` in here.

Zgroza (Luke) Klimek

This is not relevant anymore, as I switched to the caching approach.

Open in Gerrit

Related details

Attention is currently required from:
  • Simon Hangl
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: I293ae453f6b25e346a90c12f36f11d85738d12e3
Gerrit-Change-Number: 7253350
Gerrit-PatchSet: 5
Gerrit-Owner: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-CC: Andrew Rayskiy <green...@google.com>
Gerrit-CC: Luna Lu <loon...@chromium.org>
Gerrit-CC: Matthew Riley <mat...@google.com>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-CC: Simon Hangl <sim...@google.com>
Gerrit-Attention: Simon Hangl <sim...@google.com>
Gerrit-Comment-Date: Mon, 15 Dec 2025 15:37:45 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Simon Hangl (Gerrit)

unread,
Dec 15, 2025, 11:01:18 AM (2 days ago) Dec 15
to Zgroza (Luke) Klimek, Matthew Riley, chromium...@chromium.org, Andrew Rayskiy, Nate Chapin, Luna Lu, alexmo...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, dibyapal+wa...@chromium.org, dmurph+watc...@chromium.org, gavinp...@chromium.org, iclella...@chromium.org, ipc-securi...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kuragin+web-ap...@chromium.org, loading...@chromium.org, loyso...@chromium.org, mgiuca...@chromium.org, navigation...@chromium.org, philli...@chromium.org, rmcelra...@chromium.org, webap...@microsoft.com, zelin+watch-we...@chromium.org
Attention needed from Simon Hangl and Zgroza (Luke) Klimek

Simon Hangl added 6 comments

Commit Message
Line 15, Patchset 4:- Cache permissions policies somewhere with the preferred lifetime of
Simon Hangl . unresolved

it would be useful to describe how the cache behaves. from a high-level, is it correct to assume that the cache (and hence the parsed permissions policies for a specific IWA) will remain constant until the session is restarted?

File chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.h
Line 44, Patchset 6 (Latest): raw_ptr<IwaPermissionsPolicyCache> cache_ = nullptr;
Simon Hangl . unresolved

nit: can we make this const?

File chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.cc
Line 103, Patchset 6 (Latest): if (!is_isolated_web_app_navigation() || !cache_) {
Simon Hangl . unresolved

can the cache be null?

Line 112, Patchset 6 (Latest): const url::Origin iwa_origin =
Simon Hangl . unresolved

we technically only need this inside the if, don't we?

Line 115, Patchset 6 (Latest): if (cache_) {
Simon Hangl . unresolved

dito

File chrome/browser/web_applications/isolated_web_apps/iwa_permissions_policy_cache.h
Line 31, Patchset 6 (Latest):class IwaPermissionsPolicyCache : public KeyedService,
Simon Hangl . unresolved

is the cache volatile or will it preserve state across browser restarts? one may argue that the lazy reviewer should check that in the code, but it also doesn't hurt to provide that key information in a comment above 😊.

Open in Gerrit

Related details

Attention is currently required from:
  • Simon Hangl
  • Zgroza (Luke) Klimek
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: I293ae453f6b25e346a90c12f36f11d85738d12e3
Gerrit-Change-Number: 7253350
Gerrit-PatchSet: 4
Gerrit-Owner: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-CC: Andrew Rayskiy <green...@google.com>
Gerrit-CC: Luna Lu <loon...@chromium.org>
Gerrit-CC: Matthew Riley <mat...@google.com>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-CC: Simon Hangl <sim...@google.com>
Gerrit-Attention: Simon Hangl <sim...@google.com>
Gerrit-Attention: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 16:01:02 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Zgroza (Luke) Klimek (Gerrit)

unread,
Dec 15, 2025, 12:23:37 PM (2 days ago) Dec 15
to Matthew Riley, chromium...@chromium.org, Andrew Rayskiy, Nate Chapin, Luna Lu, Simon Hangl, alexmo...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, dibyapal+wa...@chromium.org, dmurph+watc...@chromium.org, gavinp...@chromium.org, iclella...@chromium.org, ipc-securi...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kuragin+web-ap...@chromium.org, loading...@chromium.org, loyso...@chromium.org, mgiuca...@chromium.org, navigation...@chromium.org, philli...@chromium.org, rmcelra...@chromium.org, webap...@microsoft.com, zelin+watch-we...@chromium.org
Attention needed from Simon Hangl

Zgroza (Luke) Klimek added 6 comments

Commit Message
Line 15, Patchset 4:- Cache permissions policies somewhere with the preferred lifetime of
Simon Hangl . unresolved

it would be useful to describe how the cache behaves. from a high-level, is it correct to assume that the cache (and hence the parsed permissions policies for a specific IWA) will remain constant until the session is restarted?

Zgroza (Luke) Klimek

Or the IWA gets uninstalled/updated, yes. I added a comment on the class itself, do You think adding this to the commit message also would make sense?

File chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.h
Line 44, Patchset 6: raw_ptr<IwaPermissionsPolicyCache> cache_ = nullptr;
Simon Hangl . resolved

nit: can we make this const?

Zgroza (Luke) Klimek

Done

File chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.cc
Line 103, Patchset 6: if (!is_isolated_web_app_navigation() || !cache_) {
Simon Hangl . resolved

can the cache be null?

Zgroza (Luke) Klimek

In fact it cannot, changed.

Line 112, Patchset 6: const url::Origin iwa_origin =
Simon Hangl . resolved

we technically only need this inside the if, don't we?

Zgroza (Luke) Klimek

Yes, sorry, this is still a bit messy.

Line 115, Patchset 6: if (cache_) {
Simon Hangl . resolved

dito

Zgroza (Luke) Klimek

Done

File chrome/browser/web_applications/isolated_web_apps/iwa_permissions_policy_cache.h
Line 31, Patchset 6:class IwaPermissionsPolicyCache : public KeyedService,
Simon Hangl . resolved

is the cache volatile or will it preserve state across browser restarts? one may argue that the lazy reviewer should check that in the code, but it also doesn't hurt to provide that key information in a comment above 😊.

Zgroza (Luke) Klimek

Yes, I'll add a comment, sorry.

TL;DR it's volatile as the manifest itself already stores it in a persistent way.

Open in Gerrit

Related details

Attention is currently required from:
  • Simon Hangl
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: I293ae453f6b25e346a90c12f36f11d85738d12e3
Gerrit-Change-Number: 7253350
Gerrit-PatchSet: 8
Gerrit-Owner: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-CC: Andrew Rayskiy <green...@google.com>
Gerrit-CC: Luna Lu <loon...@chromium.org>
Gerrit-CC: Matthew Riley <mat...@google.com>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-CC: Simon Hangl <sim...@google.com>
Gerrit-Attention: Simon Hangl <sim...@google.com>
Gerrit-Comment-Date: Mon, 15 Dec 2025 17:23:17 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Simon Hangl <sim...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Andrew Rayskiy (Gerrit)

unread,
Dec 15, 2025, 12:29:55 PM (2 days ago) Dec 15
to Zgroza (Luke) Klimek, Matthew Riley, chromium...@chromium.org, Nate Chapin, Luna Lu, Simon Hangl, alexmo...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, dibyapal+wa...@chromium.org, dmurph+watc...@chromium.org, gavinp...@chromium.org, iclella...@chromium.org, ipc-securi...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kuragin+web-ap...@chromium.org, loading...@chromium.org, loyso...@chromium.org, mgiuca...@chromium.org, navigation...@chromium.org, philli...@chromium.org, rmcelra...@chromium.org, webap...@microsoft.com, zelin+watch-we...@chromium.org
Attention needed from Simon Hangl and Zgroza (Luke) Klimek

Andrew Rayskiy added 4 comments

File chrome/browser/chrome_content_browser_client.h
File chrome/browser/web_applications/isolated_web_apps/update/isolated_web_app_update_manager.cc
Line 718, Patchset 8 (Latest): if (status.has_value()) {
Andrew Rayskiy . unresolved

-1 for this. Use the existing `OnWebAppManifestUpdated()` similar to install/uninstall routines

File chrome/browser/web_applications/web_app_provider_factory.cc
Line 61, Patchset 8 (Latest): DependsOn(IwaPermissionsPolicyCacheFactory::GetInstance());
Andrew Rayskiy . unresolved

It's the reverse dependency, no?

File content/browser/renderer_host/render_frame_host_impl.cc
Line 12350, Patchset 8 (Latest): !!iwa_policy) {
Andrew Rayskiy . unresolved

nit: if (auto*) already checks everything

Open in Gerrit

Related details

Attention is currently required from:
  • Simon Hangl
  • Zgroza (Luke) Klimek
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: I293ae453f6b25e346a90c12f36f11d85738d12e3
Gerrit-Change-Number: 7253350
Gerrit-PatchSet: 8
Gerrit-Owner: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-CC: Andrew Rayskiy <green...@google.com>
Gerrit-CC: Luna Lu <loon...@chromium.org>
Gerrit-CC: Matthew Riley <mat...@google.com>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-CC: Simon Hangl <sim...@google.com>
Gerrit-Attention: Simon Hangl <sim...@google.com>
Gerrit-Attention: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 17:29:37 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Zgroza (Luke) Klimek (Gerrit)

unread,
Dec 16, 2025, 11:07:02 AM (14 hours ago) Dec 16
to Chromium Metrics Reviews, AyeAye, Matthew Riley, chromium...@chromium.org, Andrew Rayskiy, Nate Chapin, Luna Lu, Simon Hangl, asvitkine...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, dibyapal+wa...@chromium.org, dmurph+watc...@chromium.org, gavinp...@chromium.org, iclella...@chromium.org, ipc-securi...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kuragin+web-ap...@chromium.org, loading...@chromium.org, loyso...@chromium.org, mgiuca...@chromium.org, navigation...@chromium.org, philli...@chromium.org, rmcelra...@chromium.org, webap...@microsoft.com, zelin+watch-we...@chromium.org
Attention needed from Andrew Rayskiy, Matthew Riley and Simon Hangl

Zgroza (Luke) Klimek added 6 comments

File chrome/browser/chrome_content_browser_client.h
File chrome/browser/web_applications/isolated_web_apps/isolated_web_app_throttle.cc
Line 122, Patchset 4: manifest_loader_ = network::SimpleURLLoader::Create(
Simon Hangl . resolved

will you also clean this up once the loading is complete?

Zgroza (Luke) Klimek

Once the navigation is resumed this object is destroyed along with its members. So this should be automatic.

Zgroza (Luke) Klimek

Done

Line 150, Patchset 4: // Yes, this parses untrusted data in the browser process. But it's Rust JSON
Simon Hangl . resolved

is this something we can make sure to be true even when the parser code evolves?

Zgroza (Luke) Klimek

The assumption of this parser is that it's memory safe. I recall it being used in other places that have such constraints as well. I'll investigate whether there is any `CHECK` or something I could place here.

Matthew Riley

Hi, yes, the JSON decoder in Chrome is now memory-safety by spec.

Zgroza (Luke) Klimek

Done

File chrome/browser/web_applications/isolated_web_apps/update/isolated_web_app_update_manager.cc
Line 718, Patchset 8: if (status.has_value()) {
Andrew Rayskiy . resolved

-1 for this. Use the existing `OnWebAppManifestUpdated()` similar to install/uninstall routines

Zgroza (Luke) Klimek

Huh, idk why I did it like this. Refactored a bit.

File chrome/browser/web_applications/web_app_provider_factory.cc
Line 61, Patchset 8: DependsOn(IwaPermissionsPolicyCacheFactory::GetInstance());
Andrew Rayskiy . resolved

It's the reverse dependency, no?

Zgroza (Luke) Klimek

Yes. Idk how this even worked, really. Now it should be alright.

File content/browser/renderer_host/render_frame_host_impl.cc
Line 12350, Patchset 8: !!iwa_policy) {
Andrew Rayskiy . resolved

nit: if (auto*) already checks everything

Zgroza (Luke) Klimek

Ah, forgot about this, thanks!

Open in Gerrit

Related details

Attention is currently required from:
  • Andrew Rayskiy
  • Matthew Riley
  • Simon Hangl
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: I293ae453f6b25e346a90c12f36f11d85738d12e3
Gerrit-Change-Number: 7253350
Gerrit-PatchSet: 11
Gerrit-Owner: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-CC: Andrew Rayskiy <green...@google.com>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-CC: Luna Lu <loon...@chromium.org>
Gerrit-CC: Matthew Riley <mat...@google.com>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-CC: Simon Hangl <sim...@google.com>
Gerrit-Attention: Simon Hangl <sim...@google.com>
Gerrit-Attention: Andrew Rayskiy <green...@google.com>
Gerrit-Attention: Matthew Riley <mat...@google.com>
Gerrit-Comment-Date: Tue, 16 Dec 2025 16:06:48 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Simon Hangl <sim...@google.com>
Comment-In-Reply-To: Andrew Rayskiy <green...@google.com>
Comment-In-Reply-To: Matthew Riley <mat...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Robbie McElrath (Gerrit)

unread,
Dec 16, 2025, 2:46:18 PM (10 hours ago) Dec 16
to Zgroza (Luke) Klimek, Chromium Metrics Reviews, AyeAye, Matthew Riley, chromium...@chromium.org, Andrew Rayskiy, Nate Chapin, Luna Lu, Simon Hangl, asvitkine...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, creis...@chromium.org, dibyapal+wa...@chromium.org, dmurph+watc...@chromium.org, gavinp...@chromium.org, iclella...@chromium.org, ipc-securi...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kuragin+web-ap...@chromium.org, loading...@chromium.org, loyso...@chromium.org, mgiuca...@chromium.org, navigation...@chromium.org, philli...@chromium.org, rmcelra...@chromium.org, webap...@microsoft.com, zelin+watch-we...@chromium.org
Attention needed from Andrew Rayskiy and Simon Hangl

Robbie McElrath added 3 comments

File content/public/browser/content_browser_client.h
Line 698, Patchset 8: GetIwaPermissionPolicy(BrowserContext* browser_context,
Robbie McElrath . unresolved

Does this need to be different than the previous function? If so, can you explain why in the description? When would callers use one vs the other?

Also, can you make the names have a similar naming convention?

File third_party/blink/renderer/core/execution_context/security_context_init.cc
Line 206, Patchset 8: isolated_app_policy, permissions_policy_header_,
Robbie McElrath . unresolved

Does this mean that if you create a bundle with different Permissions-Policy headers for different pages, that we'll cache the resolved policy for the first page that gets loaded and not respect the potentially different header for other pages?

File third_party/blink/renderer/core/permissions_policy/permissions_policy_parser.h
Line 54, Patchset 8: static network::ParsedPermissionsPolicy ParseIWAPermissionsPolicy(
Robbie McElrath . unresolved

Can you explain here why IWAs have different parsing behavior?

Open in Gerrit

Related details

Attention is currently required from:
  • Andrew Rayskiy
  • Simon Hangl
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: I293ae453f6b25e346a90c12f36f11d85738d12e3
Gerrit-Change-Number: 7253350
Gerrit-PatchSet: 8
Gerrit-Owner: Zgroza (Luke) Klimek <zgr...@chromium.org>
Gerrit-CC: Andrew Rayskiy <green...@google.com>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-CC: Luna Lu <loon...@chromium.org>
Gerrit-CC: Matthew Riley <mat...@google.com>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-CC: Robbie McElrath <rmce...@chromium.org>
Gerrit-CC: Simon Hangl <sim...@google.com>
Gerrit-Attention: Simon Hangl <sim...@google.com>
Gerrit-Attention: Andrew Rayskiy <green...@google.com>
Gerrit-Comment-Date: Tue, 16 Dec 2025 19:46:08 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy
Reply all
Reply to author
Forward
0 new messages