LGTM1 This is a very specific API just on ChromeOS, and the global variables are only visible to IWAs explicitly opted into it via controls on that OS. It doesn't set a new precedent.
This also aligns with the plan of action discussed on blink-api-owners-dsicuss. On Mon, Jul 13, 2026 at 1:05 PM 'Edman Anjos' via blink-dev < [email protected]> wrote: > Hi Alex, thanks a lot for your reply, > there's some additional context I can share about this feature: > > * This feature is designed as a ChromeOS-specific Blink extension > exclusively for Isolated Web Apps (IWAs). It is not a general web standard > or cross-platform web API, and will not become one. Access is further > restricted to allowlisted applications. Because the target audience and > platform scope are so narrow, standardization is not a goal in this feature. > > * We first proposed this style of APIs on blink-api-owners-discuss > <https://groups.google.com/a/chromium.org/g/blink-api-owners-discuss/c/q_bRRc_RxBo/m/iAaMUIbOAAAJ>. > `setShape` is our first (and currently only planned) API following this > proposal. The use of `chromeos.isolatedWebApp.*` comes from the need of a > namespace that won't pollute standard web or IWA API surfaces, or > potentially other ChromeOS-only APIs. > > * The API signature and behavior comes from the existing > `chrome.app.window.setShape` API for Chrome Apps on ChromeOS. Partners are > already familiar with the Chrome App API, so mirroring it for the IWA API > greatly simplifies adoption. > > I hope this clarifies things. > > Thanks again, > Edman > > On Monday, July 13, 2026 at 8:44:21 PM UTC+2 Alex Russell wrote: > >> Hey folks, >> >> I'm *very* excited to see this capability coming to the web! >> >> At the same time, the shape of this proposal is not going to pass muster >> in current form. >> >> First, we can't be embedding the name `chromeos` into APIs that can be >> used across platforms. We should hope and expect for a day when IWAs are >> lit up more broadly, so putting this in a CrOS-specific namespace is a bad >> smell. It also isn't clear that this should be prefixed with an >> IWA-specific namespace. >> >> Second, it isn't clear that this making format is common to other masking >> formats on the web. I don't see a list of considered design alternatives >> for these (and other) API shape concerns in the Explainer, which in and of >> itself is concerning. Can you please reach out to a current or former TAG >> memeber in your org to get guidance on API shape? >> >> Best, >> >> Alex >> >> On Wednesday, July 8, 2026 at 9:58:26 AM UTC-7 Chromestatus wrote: >> >>> *Contact emails* >>> [email protected], [email protected] >>> >>> *Explainer* >>> >>> https://github.com/explainers-by-googlers/chromeos-iwa-apis/blob/main/window-shape-explainer.md >>> >>> *Specification* >>> https://explainers-by-googlers.github.io/chromeos-iwa-apis >>> >>> *Design docs* >>> >>> >>> https://docs.google.com/document/d/1zPr1QgS-bXsJE7nrO44zx9RBopR4gHuvHxfcqxsX5Ag/edit?tab=t.0#heading=h.pcgro84kqnh3 >>> >>> *Summary* >>> Window Shape API enables allowlisted [Isolated Web Apps]( >>> https://chromeos.dev/en/web/isolated-web-apps) on ChromeOS to customize >>> their window shape. By enabling non-rectangular and non-contiguous window >>> layouts, developers can implement unique user experiences (such as widgets, >>> floating panels, and overlays) that match the look-and-feel of native >>> applications. The API `window.chromeos.isolatedWebApp.setShape` requires >>> the window to be in the unframed display mode and requires the >>> window-management permission to be granted. Administrators can manage this >>> feature with existing policies for window management: - >>> [DefaultWindowManagementSetting]( >>> https://chromeenterprise.google/policies/#DefaultWindowManagementSetting) >>> configures the default state for the window management for all apps. The >>> policies below can override this default. - >>> [WindowManagementAllowedForUrls]( >>> https://chromeenterprise.google/policies/#WindowManagementAllowedForUrls) >>> allows IWAs with specified origins to enter unframed mode and set custom >>> window shapes without any user interaction. - >>> [WindowManagementBlockedForUrls]( >>> https://chromeenterprise.google/policies/#WindowManagementBlockedForUrls) >>> blocks the permission for specified origins, forcing Chrome to remove any >>> custom window shapes and fallback to other available display modes. >>> >>> *Blink component* >>> UI>Browser>WebAppInstalls>Isolated >>> <https://issues.chromium.org/issues?q=customfield1222907:%22UI%3EBrowser%3EWebAppInstalls%3EIsolated%22> >>> >>> *Web Feature ID* >>> Missing feature >>> >>> *Motivation* >>> *No information provided* >>> >>> *Initial public proposal* >>> *No information provided* >>> >>> *TAG review* >>> N/A - TAG review is not needed for IWA APIs >>> https://crsrc.org/c/docs/website/site/blink/launching-features/isolated-web-apps/index.md;l=73;drc=a5459539e0dfc093d8dc137fb9f8a72ddf5dcbb3 >>> >>> *TAG review status* >>> Not applicable >>> >>> *Goals for experimentation* >>> None >>> >>> *Risks* >>> >>> >>> *Interoperability and Compatibility* >>> N/A, this feature is not meant to be implemented by other browsers. >>> >>> *Gecko*: No signal >>> >>> *WebKit*: No signal >>> >>> *Web developers*: No signals >>> >>> *Other signals*: >>> >>> *Ergonomics* >>> N/A >>> >>> *Activation* >>> N/A, the feature is a single JS API that follows the same behavior as a >>> pre-existing Chrome App API. Developers already know how to use it. >>> >>> *Security* >>> See >>> https://github.com/explainers-by-googlers/chromeos-iwa-apis/blob/main/window-shape-explainer.md#security--privacy-considerations >>> In summary: The custom shape can be used to create a hidden window, or for >>> clickjacking. We mitigate this by requiring a minimum shape size of 10x10 >>> pixels, and by enforcing an allowlist of partners that can use this API. >>> >>> *WebView application risks* >>> >>> Does this intent deprecate or change behavior of existing APIs, such >>> that it has potentially high risk for Android WebView-based applications? >>> N/A >>> >>> >>> *Debuggability* >>> N/A >>> >>> *Will this feature be supported on all six Blink platforms (Windows, >>> Mac, Linux, ChromeOS, Android, and Android WebView)?* >>> No >>> This feature is implemented as a Blink extensions for Chrome on >>> ChromeOS. It will not be available in any other platform. >>> >>> *Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?* >>> No >>> >>> >>> *Flag name on about://flags* >>> enable-chromeos-isolated-web-app-set-shape >>> >>> *Finch feature name* >>> *No information provided* >>> >>> *Non-finch justification* >>> *No information provided* >>> >>> *Rollout plan* >>> Will ship enabled for all users >>> >>> *Requires code in //chrome?* >>> False >>> >>> *Availability expectation* >>> Feature is available only in Chrome on ChromeOS, and only for >>> allowlisted IWAs. >>> >>> *Adoption expectation* >>> Feature is used by allowlisted IWAs within 12 months of launch in Chrome. >>> >>> *Adoption plan* >>> Work with partners: The feature is currently available behind a feature >>> flag in ChromeOS, and two partners already use it to develop new IWAs. The >>> target release of their IWAs is 26Q4. >>> >>> *Non-OSS dependencies* >>> >>> Does the feature depend on any code or APIs outside the Chromium open >>> source repository and its open-source dependencies to function? >>> N/A >>> >>> *Estimated milestones* >>> Shipping on desktop 152 >>> >>> *Anticipated spec changes* >>> >>> Open questions about a feature may be a source of future web compat or >>> interop issues. Please list open issues (e.g. links to known github issues >>> in the project for the feature specification) whose resolution may >>> introduce web compat/interop risk (e.g., changing to naming or structure of >>> the API in a non-backward-compatible way). >>> N/A >>> >>> *Link to entry on the Chrome Platform Status* >>> https://chromestatus.com/feature/5075144470036480?gate=6125215051546624 >>> >>> This intent message was generated by Chrome Platform Status >>> <https://chromestatus.com>. >>> >> -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a2a7f5c3-e2f2-4c6e-97b3-79ecf2c040b0n%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a2a7f5c3-e2f2-4c6e-97b3-79ecf2c040b0n%40chromium.org?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw9vF8eew04g%3DBuwiGD2TCPhWCPLn3fT2PRRx_uHpxmGkA%40mail.gmail.com.
