)]}'
{"id": 5551475195904000, "name": "Unframed display mode for IWAs", "summary": "Unframed display mode allows Isolated Web Apps [IWAs](https://chromeos.dev/en/web/isolated-web-apps) to occupy the entire browser window, which optimizes the workspace available. By removing standard window borders and title bars, developers can implement unique user experiences with branding and menu hierarchies that match the look-and-feel of device-installed applications. \n\nAdministrators can manage this feature with existing policies for window management:  \n- [DefaultWindowManagementSetting](https://chromeenterprise.google/policies/#DefaultWindowManagementSetting) configures the default state for the window management for all apps. The policies below can override this default.  \n- [WindowManagementAllowedForUrls](https://chromeenterprise.google/policies/#WindowManagementAllowedForUrls) allows  IWAs with specified origins to enter unframed mode without any user interaction.  \n- [WindowManagementBlockedForUrls](https://chromeenterprise.google/policies/#WindowManagementBlockedForUrls) blocks unframed mode for IWAs with specified origins, forcing Chrome to fallback to other available display modes.", "markdown_fields": ["summary"], "blink_components": ["UI>Browser>WebAppInstalls>Isolated"], "star_count": 127, "search_tags": ["unframed", "display mode", "display override"], "created": {"by": "laurila@chromium.org", "when": "2022-07-20 11:49:54.809061"}, "updated": {"by": "edmanp@google.com", "when": "2026-08-24 12:58:27.050633"}, "category": "Isolated Web Apps-specific API", "category_int": 22, "feature_notes": "Umbrella bug b/477025171", "web_feature": null, "is_official_web_feature": null, "webdx_usecounter_enum": null, "enterprise_feature_categories": ["2"], "enterprise_product_category": 0, "is_releasenotes_content_reviewed": true, "is_releasenotes_publish_ready": true, "stages": [{"id": 4794241000144896, "created": "2022-07-20 11:49:54.809061", "feature_id": 5551475195904000, "stage_type": 110, "display_name": null, "intent_stage": 7, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5628018578423808, "created": "2022-07-20 11:49:54.809061", "feature_id": 5551475195904000, "stage_type": 120, "display_name": null, "intent_stage": 1, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": "https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4ad86ea7-a144-4f95-b66f-7d457448143en%40chromium.org", "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5818172612018176, "created": "2022-07-20 11:49:54.809061", "feature_id": 5551475195904000, "stage_type": 130, "display_name": null, "intent_stage": 2, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": 146, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5916504820809728, "created": "2022-07-20 11:49:54.809061", "feature_id": 5551475195904000, "stage_type": 140, "display_name": null, "intent_stage": 4, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 6098915967893504, "created": "2022-07-20 11:49:54.809061", "feature_id": 5551475195904000, "stage_type": 150, "display_name": null, "intent_stage": 3, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": "", "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5111566538637312, "created": "2022-07-20 11:49:54.809061", "feature_id": 5551475195904000, "stage_type": 160, "display_name": null, "intent_stage": 5, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": "https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a57980d.712dbee4.e31b3.029c.GAE%40google.com", "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": 152, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5159574391881728, "created": "2026-07-13 20:55:20.577445", "feature_id": 5551475195904000, "stage_type": 1061, "display_name": null, "intent_stage": 10, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": 152, "rollout_platforms": ["3"], "rollout_details": "", "rollout_impact": 2, "rollout_stage_plan": 0, "enterprise_policies": [], "desktop_first": 152, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}], "accurate_as_of": "2026-08-24 12:58:27.050633", "creator_email": "laurila@chromium.org", "updater_email": "edmanp@google.com", "owner_emails": ["edmanp@google.com", "swethasivaram@google.com"], "editor_emails": [], "cc_emails": [], "spec_mentor_emails": ["dmurph@chromium.org"], "unlisted": false, "deleted": false, "editors": [], "cc_recipients": [], "spec_mentors": ["dmurph@chromium.org"], "creator": "laurila@chromium.org", "feature_type": "New or changed feature", "feature_type_int": 0, "intent_stage": "Dev trials", "intent_stage_int": 2, "active_stage_id": 6221361786781696, "bug_url": "https://crbug.com/477512407", "launch_bug_url": "https://launch.corp.google.com/launch/4211065", "new_crbug_url": "https://bugs.chromium.org/p/chromium/issues/entry?components=UI>Browser>WebAppInstalls>Isolated&blocking=477512407&cc=edmanp@google.com,swethasivaram@google.com", "screenshot_links": [], "first_enterprise_notification_milestone": 145, "enterprise_impact": 2, "breaking_change": false, "confidential": false, "shipping_year": 2026, "flag_name": "enable-unframed-iwa", "finch_name": "UnframedIwa", "non_finch_justification": "", "ongoing_constraints": "", "rollout_plan": 0, "rollout_plan_displayname": "Will ship enabled for all users", "motivation": "Standard window decorations, including the title bar and system control buttons, impose fixed UI constraints that restrict available screen real estate and visual integration. Without unframed mode, developers are forced to design around standard operating system frames that often conflict with an application\u2019s specific branding or functional layout requirements. While the Window Controls Overlay API provides a lot of flexibility, it still enforces system-drawn regions for window controls, which prevents a fully bespoke interface.\n\nUnframed mode enables Isolated Web Apps to occupy the entire window surface, bridging the gap between web and native application experiences. This level of control is essential for immersive software - such as virtual desktop clients - that requires a unique visual hierarchy or a maximized workspace. By removing standard window borders and title bars, developers can implement unique user experiences with branding that matches the feel of native applications.", "devtrial_instructions": "https://github.com/edman/unframed-demo", "activation_risks": "N/A", "measurement": "UseCounter(WebFeature::kUnframedIwa) https://chromestatus.com/metrics/feature/timeline/popularity/5764", "availability_expectation": "Feature is available only in Chromium browsers in ChromeOS for the foreseeable future.", "adoption_expectation": "Feature is used by at least two partners within 12 months of launch in Chrome.", "adoption_plan": "Work with partners: The feature is currently available behind a feature flag in Chrome, and two partners already use it to develop new IWAs. The target release of their IWAs is 26Q4.\n\nPublic documentation: We intend to write articles for the feature in https://developer.chrome.com/docs/iwa/.", "initial_public_proposal_url": "https://github.com/WICG/manifest-incubations/issues/118", "explainer_links": ["https://github.com/WICG/manifest-incubations/tree/gh-pages/unframed-explainer.md"], "requires_embedder_support": true, "spec_link": "https://wicg.github.io/manifest-incubations/index.html#dfn-unframed", "api_spec": true, "automation_spec": false, "interop_compat_risks": "The interoperability risk is low for the standard web, as this feature is restricted to Isolated Web Apps (IWAs). The primary risk is that other browser engines may choose not to implement this specific display mode due to long-standing security concerns regarding system UI impersonation (phishing) when an application can hide all host-provided frames. IWAs mitigate these concerns through an enhanced trust and installation model that is not available to standard web origins.\n\nCompatibility risk is negligible. \"Unframed\" is an opt-in value within the display_override manifest field. Browsers that do not recognize the \"unframed\" value will ignore it and fall back to the next supported display mode in the list (typically \"standalone\" or \"minimal-ui\"), ensuring the application remains functional.", "all_platforms": false, "all_platforms_descr": "This feature is only supported in ChromeOS. The title bar includes privacy-relevant information. In ChromeOS we can make them available in other parts of the OS UI, but we can't do the same in other platforms.", "non_oss_deps": "N/A", "anticipated_spec_changes": "N/A", "security_risks": "The primary security risk of unframed mode is UI spoofing. By removing the user-agent title bar and window controls, a rogue application could attempt to impersonate operating system UI, browser chrome, or the interface of a different application to perform phishing attacks.\n\nThis risk is mitigated by restricting the feature to IWAs, and relying on the IWA trust model.", "ergonomics_risks": "N/A", "wpt": false, "wpt_descr": "There are Web Platform Tests to verify the display mode exists. Browser tests and unit tests verify the feature in more detail.", "webview_risks": "N/A", "devrel_emails": [], "debuggability": "N/A", "doc_links": ["https://github.com/WICG/manifest-incubations/blob/gh-pages/unframed-explainer.md"], "sample_links": ["https://github.com/edman/unframed-demo"], "prefixed": false, "tags": ["unframed", "display mode", "display override"], "tag_review": "TAG review is not required for IWA features, see https://chromium.googlesource.com/website/+/HEAD/site/blink/launching-features/isolated-web-apps/index.md#who-do-i-request-feedback-from-for-iwa_specific-apis", "tag_review_status": "Not applicable", "tag_review_status_int": 4, "security_review_status": "Issues addressed", "security_review_status_int": 3, "privacy_review_status": "Issues addressed", "privacy_review_status_int": 3, "security_continuity_id": null, "security_launch_issue_id": null, "updated_display": null, "resources": {"samples": ["https://github.com/edman/unframed-demo"], "docs": ["https://github.com/WICG/manifest-incubations/blob/gh-pages/unframed-explainer.md"]}, "comments": "Umbrella bug b/477025171", "ff_views": 5, "safari_views": 9, "web_dev_views": 1, "browsers": {"chrome": {"bug": "https://crbug.com/477512407", "blink_components": ["UI>Browser>WebAppInstalls>Isolated"], "devrel": [], "owners": ["edmanp@google.com", "swethasivaram@google.com"], "origintrial": false, "prefixed": false, "flag": true, "status": {"text": "In developer trial (Behind a flag)", "val": 4, "milestone_str": "152"}, "announced": true, "desktop": 152, "android": null, "webview": null, "ios": null}, "ff": {"view": {"url": null, "notes": "", "text": "No signal", "val": 5}}, "safari": {"view": {"url": null, "notes": "", "text": "N/A", "val": 9}}, "webdev": {"view": {"text": "Strongly positive", "val": 1, "url": null, "notes": "This feature is crucial for our VDI partners."}}, "other": {"view": {"text": null, "val": null, "url": null, "notes": ""}}}, "standards": {"spec": "https://wicg.github.io/manifest-incubations/index.html#dfn-unframed", "maturity": {"text": "Specification being incubated in a Community Group", "short_text": "Incubation", "val": 3}}, "is_released": true, "is_enterprise_feature": false, "experiment_timeline": null, "ai_test_eval_report": null, "ai_test_eval_run_status": null, "ai_test_eval_status_timestamp": null}