Intent to Ship: Tabbed web apps

1,172 views
Skip to first unread message

Brett Wilson

unread,
May 3, 2024, 1:29:01 PMMay 3
to blink-dev

Contact emails

bre...@chromium.orgalanc...@chromium.orgmgi...@chromium.orgloub...@google.com

Explainer

https://github.com/WICG/manifest-incubations/blob/gh-pages/tabbed-mode-explainer.md

Specification

https://wicg.github.io/manifest-incubations/#dfn-tabbed

Summary

Allow web app windows to have a tab strip. This adds a new display mode "tabbed" and a new manifest field to allow customizations to the tab strip.



Blink component

Blink>AppManifest

TAG review

https://github.com/w3ctag/design-reviews/issues/841

TAG review status

Issues addressed

Chromium Trial Name

WebAppTabStrip

Link to origin trial feedback summary

https://github.com/WICG/manifest-incubations/issues

Origin Trial documentation link

https://github.com/WICG/manifest-incubations/blob/gh-pages/tabbed-mode-explainer.md

Risks



Interoperability and Compatibility



Gecko: Defer (https://github.com/mozilla/standards-positions/issues/811)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/195)

Web developers: Positive (https://github.com/w3c/manifest/issues/737)

Other signals:

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

chrome://web-app-internals can be used for debugging, and the new manifest field could also be added to the DevTools Application pane.



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?

No

The origin trial is available on ChromeOS only. Support for other desktop platforms is planned.



Is this feature fully tested by web-platform-tests?

Yes

https://github.com/web-platform-tests/wpt/tree/master/appmanifest/display-override-member



Flag name on chrome://flags

chrome://flags/#enable-desktop-pwas-tab-strip

Finch feature name

DesktopPWAsTabStrip

Requires code in //chrome?

True

Tracking bug

https://issuetracker.google.com/issues/40598974

Launch bug

https://launch.corp.google.com/launch/4253814

Measurement

Launch.WebAppDisplayMode: Tabbed

Availability expectation

Feature is available only on Chrome-on-ChromeOS for the foreseeable future.

Adoption expectation

Feature is used by specific partner(s) to provide functionality within 12 months of launch in Chrome. May be of interest to a handful of PWA authors primarily in the productivity space.

Adoption plan

Working with a small number of partners directly.

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

Sample links


https://paint-rightful-patch.glitch.me

Estimated milestones

Shipping on desktop126
Origin trial desktop first118
Origin trial desktop last126
Origin trial extension 1 end milestone126


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).

Chromium implementation currently does not parse string-form URL patterns as required by the spec. Marked "at risk". (https://github.com/WICG/manifest-incubations/issues/97)

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5128143454076928?gate=6176288199409664

Links to previous Intent discussions

Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/IvfIkjvQYuY/m/cixwOyEeAAAJ Intent to Experiment: https://groups.google.com/a/chromium.org/g/blink-dev/c/m16m2TEq-NM/m/0Bc10numCgAJ
Intent to Extend Experiment 1: https://groups.google.com/a/chromium.org/g/blink-dev/c/5aRDL-E9olQ/m/Pb7ECdcpAAAJ
Intent to Ship: https://groups.google.com/a/chromium.org/g/blink-dev/c/5aRDL-E9olQ/m/Pb7ECdcpAAAJ


This intent message was generated by Chrome Platform Status.

Yoav Weiss (@Shopify)

unread,
May 6, 2024, 6:03:01 AMMay 6
to Brett Wilson, blink-dev
This seems a bit contradictory with "Support for other desktop platforms is planned" above. Are there plans for support beyond CrOS?
  
--
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 blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABiGVV9MstA8bLmUTLkkfTjeYK8bb7fkhyKL_OMt_d7UzavRTA%40mail.gmail.com.

Brett Wilson

unread,
May 6, 2024, 10:30:58 AMMay 6
to yoav...@chromium.org, blink-dev
Sorry, the first part was a mistake. Chrome team has requested this not be on other platforms now.

Brett 

Daniel Herr

unread,
May 6, 2024, 6:29:32 PMMay 6
to blink-dev, Brett Wilson, blink-dev, yoav...@chromium.org
May I ask why? I've tried out the flagged implementation on Chrome OS, and I think it is a pretty nice UI paradigm. I don't see any technical reason it shouldn't be available on other platforms.

Marijn Kruisselbrink

unread,
May 6, 2024, 6:35:06 PMMay 6
to Daniel Herr, blink-dev, Brett Wilson, yoav...@chromium.org
I don't think there are major technical reasons, no. With some rough edges the flagged implementation should more or less work on other desktop platforms as well. My understanding is that this is largely a product choice and a choice not to prioritize the remaining engineering needed to clean up the rough edges on other desktop platforms.

--
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 blink-dev+...@chromium.org.

Yoav Weiss (@Shopify)

unread,
May 7, 2024, 5:24:10 AMMay 7
to Marijn Kruisselbrink, Daniel Herr, blink-dev, Brett Wilson
Can you elaborate on the cross-platform story here? What kind of fallback do we expect developers to use in non-supporting platforms?

Matt Giuca

unread,
May 7, 2024, 9:25:26 PMMay 7
to Yoav Weiss (@Shopify), Marijn Kruisselbrink, Daniel Herr, blink-dev, Brett Wilson
Hi Yoav,

The API was specifically designed to allow developers to customize the fallback, so the short answer is "whatever fallback they want".

Since the "display" Manifest member only allows for a single string, adding a new value there would break backwards compatibility for any site that used the new value. That is why we do not allow "tabbed" and other new display modes in that member; they can only be used in the new "display_override" member which is a list of display modes representing a developer-supplied fallback chain, with the final fallback being the value of the old "display" member.

So developers can generally choose between two configurations:
  1. "display_override": ["tabbed"], "display": "standalone"
  2. "display_override": ["tabbed"], "display": "browser"
If they choose #1, non-supported platforms will fall back to a standalone non-tabbed window (feeling like an app but not having a tabbed experience). If they choose #2, non-supported platforms will fall back to not having a separate window and just opening the content in the browser (giving the user a tabbed experience but not feeling like an app).

We would recommend that developers fall back to whatever they are already using. That way, tabbed mode is an additive experience (currently only on ChromeOS but automatically upgrading to that experience on any platform that supports it in the future), with a graceful degradation to the status quo.

Therefore, we don't think cross platform support for this feature is necessary, though of course it has been designed for this as a future possibility. Also there is nothing ChromeOS-specific about this design, as Marijn pointed out, it just hasn't been prioritized by the engineering team outside of ChromeOS.

Regards

Matt

Alex Russell

unread,
May 8, 2024, 11:39:35 AMMay 8
to blink-dev, Matt Giuca, Marijn Kruisselbrink, danielher...@gmail.com, blink-dev, Brett Wilson, Yoav Weiss
I'm happy for this to be CrOS first, but would like to unpack Brett's statement above a bit. If we (MSFT) were to polish this up for Windows, would patches for that be accepted?

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.

--
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 blink-dev+unsubscribe@chromium.org.

Brett Wilson

unread,
May 8, 2024, 12:19:56 PMMay 8
to Alex Russell, blink-dev, Matt Giuca, Marijn Kruisselbrink, danielher...@gmail.com, Yoav Weiss
On Wed, May 8, 2024 at 8:39 AM Alex Russell <sligh...@chromium.org> wrote:
I'm happy for this to be CrOS first, but would like to unpack Brett's statement above a bit. If we (MSFT) were to polish this up for Windows, would patches for that be accepted?

I can't speak for the browser team. But my current understanding is that the browser team likes this in principle but doesn't prioritize it high enough to work on it right now (this is a correction from my previous assertion). So I'm pretty sure patches enabling this for other platforms would be accepted.

Brett

Daniel Murphy

unread,
May 8, 2024, 9:05:54 PMMay 8
to Brett Wilson, Alex Russell, blink-dev, Matt Giuca, Marijn Kruisselbrink, danielher...@gmail.com, Yoav Weiss
We don't have an objection to this feature existing - it's actually currently in our backlog. But it is very low in our priority list. While we can review patches, we will not be able to dedicate resources for consultation or maintenance.

--
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 blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABiGVV-Zeyv3Rez%2BPQ%2B%2BfW4ihpRCwnnGN2HNxOyXTA7_uWehzw%40mail.gmail.com.

Chris Harrelson

unread,
May 9, 2024, 10:48:28 AMMay 9
to Daniel Murphy, Brett Wilson, Alex Russell, blink-dev, Matt Giuca, Marijn Kruisselbrink, danielher...@gmail.com, Yoav Weiss

Mike Taylor

unread,
May 9, 2024, 1:41:39 PMMay 9
to Chris Harrelson, Daniel Murphy, Brett Wilson, Alex Russell, blink-dev, Matt Giuca, Marijn Kruisselbrink, danielher...@gmail.com, Yoav Weiss

TAMURA, Kent

unread,
May 10, 2024, 3:59:42 AMMay 10
to Mike Taylor, Chris Harrelson, Daniel Murphy, Brett Wilson, Alex Russell, blink-dev, Matt Giuca, Marijn Kruisselbrink, danielher...@gmail.com, Yoav Weiss
LGTM3.




--
TAMURA Kent
Software Engineer, Google


Matt Giuca

unread,
May 12, 2024, 9:08:14 PMMay 12
to TAMURA, Kent, Mike Taylor, Chris Harrelson, Daniel Murphy, Brett Wilson, Alex Russell, blink-dev, Marijn Kruisselbrink, danielher...@gmail.com, Yoav Weiss
Thanks everyone. This is now enabled on ToT in 126.

Brett Wilson

unread,
May 16, 2024, 1:08:52 AMMay 16
to Matt Giuca, TAMURA, Kent, Mike Taylor, Chris Harrelson, Daniel Murphy, Alex Russell, blink-dev, Marijn Kruisselbrink, danielher...@gmail.com, Yoav Weiss
To follow up, there's a nice shout out at Google I/O about this feature and also mentions that Figma is trying it:

Jaime

unread,
Jun 14, 2024, 2:18:59 AMJun 14
to blink-dev, Brett Wilson, TAMURA, Kent, Mike Taylor, Chris Harrelson, Daniel Murphy, Alex Russell, blink-dev, Marijn Kruisselbrink, danielher...@gmail.com, Yoav Weiss, Matt Giuca
Hi everyone. I see in Tabbed web apps - Chrome Platform Status (chromestatus.com) that it says that it is shipping in Chrome 126, but I understood that it was shipping first only in ChromeOS. Are there any updates for Chrome / Edge in Windows and Mac? This feature is fantastic for web apps and can't wait to use it. Thanks!

Matt Giuca

unread,
Jun 14, 2024, 3:00:50 AMJun 14
to Jaime, blink-dev, Brett Wilson, TAMURA, Kent, Mike Taylor, Chris Harrelson, Daniel Murphy, Alex Russell, Marijn Kruisselbrink, danielher...@gmail.com, Yoav Weiss
Yes it is ChromeOS only at the moment.

The "Chrome 126" just means it's implemented as part of the Chrome browser (which runs in ChromeOS).

You received this message because you are subscribed to a topic in the Google Groups "blink-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/a/chromium.org/d/topic/blink-dev/L6AfXU0-GOc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7be3993c-f0f7-4cca-baa3-550f9c2a530an%40chromium.org.
Reply all
Reply to author
Forward
0 new messages