Contact emails
edm...@google.com,
swetha...@google.com
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
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.
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
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