Thanks for kicking this off Dan.
To set timeline expectations – we are just starting our planning for next semester and hope to make this work part of it. Ideally this will mean having a PRD ready this calendar year, with enough open discussion that it’s ready to start moving forward by the end of the calendar year.
To set scope expectations – though a natural goal of this work is PWA adoption, we aim to start with targeting a (to be determined) API the browser would benefit from leveraging directly, along with an architecture designed to grow to all the functionality that may be desired. We haven’t formed a proposal yet of which API would be best to start with, but if there are any “modern” APIs you’ve been particularly wishing you could call that would be great to know. (e.g. pinning, push, notifications/toasts, background tasks)
-Hoch
To our current understanding this should *not* require Microsoft Store integration, as an appx package may be signed with a certificate by any trusted root authority.
The desire to avoid unneeded dependencies / infrastructure is shared. We’ll be aiming for a proposal with minimal dependencies and right-size infrastructure.
Hi Robert,
The list of default trusted root authorities is extensive, and available in multiple formats here: https://learn.microsoft.com/en-us/security/trusted-root/participants-list
-Hoch
From: Robert Liao <rob...@chromium.org>
Sent: Wednesday, October 9, 2024 12:26 PM
To: Hoch Hochkeppel (HE/HIM) <mho...@microsoft.com>
Cc: Daniel Murphy <dmu...@chromium.org>; pwa-dev <pwa...@chromium.org>; David Bienvenu <davidb...@chromium.org>; jessem...@google.com; Vincent Scheib <sch...@chromium.org>; Reilly Grant <rei...@chromium.org>; Rob Kochman <ro...@chromium.org>;
Stanley Hon <sta...@microsoft.com>; Howard Wolosky <Howard....@microsoft.com>; Natasha Gaitonde <naga...@microsoft.com>
Subject: Re: [EXTERNAL] FYI / Public Project Thread: Windows Identity (AppX), Chromium, PWAs
Hi Hoch,
Thanks for the details. Do you happen to know what trusted root authorities can sign in Windows?
Robert
Hi Robert,
This is starting to dive into details we will certainly flush out in the proposal, so my answers at the moment may seem a little high-level/fuzzy.
The package ID is effectively decided by the app, but is a little more restricted than the App User Model ID you linked.
https://learn.microsoft.com/en-us/windows/apps/desktop/modernize/package-identity-overview
As far as modern APIs that rely on this ID, they will “just work”, but only when called from within the packaged app context. This article walks through how a normal Win32 app could be updated to run in this app context, simply by installing a small appx package alongside the app:
https://learn.microsoft.com/en-us/windows/apps/desktop/modernize/grant-identity-to-nonpackaged-apps
The gotcha for Chromium is that even in “Win32App” mode, packaged app containers have some limitations that are expected to be deal breakers for adopting the minimal solution in the article above. Instead, the proposal is to roughly:
There are at least a couple APIs that require an ICoreWindow, but can be satisfied by temporarily creating a hidden instance for the duration of the call.
-Hoch
From: Robert Liao <rob...@chromium.org>
Sent: Thursday, October 10, 2024 9:49 AM
To: Hoch Hochkeppel (HE/HIM) <mho...@microsoft.com>
Cc: Daniel Murphy <dmu...@chromium.org>; pwa-dev <pwa...@chromium.org>; David Bienvenu <davidb...@chromium.org>; jessem...@google.com; Vincent Scheib <sch...@chromium.org>; Reilly Grant <rei...@chromium.org>; Rob Kochman <ro...@chromium.org>;
Stanley Hon <sta...@microsoft.com>; Howard Wolosky <Howard....@microsoft.com>; Natasha Gaitonde <naga...@microsoft.com>
Subject: Re: [EXTERNAL] FYI / Public Project Thread: Windows Identity (AppX), Chromium, PWAs
Hi Hoch,
To make sure I understand, in this new world, Apps will decide their own IDs (presumably through App User Model IDs?), sign their app via a trusted root authority (where Google Trust Services LLC is a trusted authority and so we can continue signing), and then these APIs will just work?
Are there any APIs that require an ICoreWindow that may not work?
Thanks!
Robert
Hi all,
I want to share that we’re refocusing efforts on the Microsoft side to contribute Windows Identity support to Chromium. We’ve begun some technical investigations and we’re working towards a formal project proposal.
The first step in this system is introducing identity for Chromium itself – which will allow Chromium to utilize new and advanced windows features. This opens the door for Chromium itself to implement features it previously could not without Identity. This will be a significant undertaking, but I believe leveraging our experience implementing this in Microsoft Edge will give us an advantage when building it in Chromium.
While this work is an essential step for PWAs with identity – Our plan is to create a proposal for the initial Identity infrastructure and a non-PWA API/feature that utilizes it first. Given the PWA audience in this thread so far; there is further work required to allow Chromium PWAs to utilize advanced windows APIs/features beyond the work I am proposing here.
While we keep working towards documents to share, we’ve got a few questions for the you all right now:
Significant parts of this work would be in deployment (setup.exe / installer) and updating Chromium (or even Google Chrome’s) release pipelines to correctly sign required components for windows to recognize the browser’s identity.
Secondly, we plan to ship a feature/API utilizing the new infrastructure. We’d like to know:
We’re completely open to discussion here but our suggestion would be:
1. Notification grouping / attribution; ability for notifications to be grouped and attributed to websites.
Some other ideas, but not an exhaustive list:
2. Better site pinning with deeper integration with Windows (such as enabling numerical “badges” on pinned sites)
3. “real” Push Notifications (Push notifications FAQ | Articles | web.dev)
As always, please feel free to ask us any questions you may have.
Thanks!
Stanley
Hey Dan,
I’m still looking for anyone who may be particularly invested in features that would rely on the identity system or may want to weigh in on what we want to do first feature wise. That said, neither of these are blocking. I’m still working towards a proposal and documentation to share.
I made this crbug to track the whole system / project all up: Implement Windows Identity for Chromium [398904320] - Chromium
Please feel free to use it as you see fit.