Notes
Testing?
UI surfaces?
name / short_name stuff
What are we 'shipping' here at least the first milestone
We can't change security sensitive fields w/o user confirmation.
full 'everything done' implementation
store everything offline
even during offline use, we can present update UX for these things to change if the user changes the system language
lots of work, not worth first milestone
first milestone - all non-security-sensitive stuff updates on language change immediately / quickly
part 1 - Using the 'localized' manifest when populating manifest -> web app install info transformation
This can be done via the job Dibyajyoti Pal wrote - ManifestToWebAppInstallInfoJob
questions?
part 2 - dynamically... updating... the non-security stuff when system language changes
future - maybe introduce pending update for sec sensitive
data storage
do we invest more in direct mirroring of the manifest?
and then choose what gets stored in the base (title/name or icons fields?)
or other stuff
GetTitle for web app title - gets that from the registry API
planning to expose the localized name
thus dynamically changing.
how to make it not dynamically changed?
Dan - we don't want to make that. We shouldn't provide an API here?
Two different states - What is in the web app database with all the localization information, and what is our actual app state based off of language
Dan - the web app system should be the one deciding what the current app looks like - name / icon / shortcuts / etc
surfaces don't need localized information, it can just get the current info from the app system
There should be a storage separation here between manifest data and 'what is the app state right now'
Dibya - so what about when syncing? Do we sync the french name to the other computer that is in english
Dan - yes
And then when the manifest is loaded, english mode, then it populated with english names, and manifest update occurs with UX
Probably we should save the 'dir' member from the manifest: https://www.w3.org/TR/appmanifest/#dir-member
Advice for project execution
Milestone 1 - update the manifest -> webappinstallinfo code to populate using the system language
Please also store the TextDirection data in the web_app.proto & add registrar method to read that - so we can use that
annoyingly we'll need to incorporate this in comparison / update - future
Also store the language used when doing manifest -> webappinstallinfo transformation
Milestone 2 - saving data so we can update offline - only for non-security-sensitive
offline: means that we can change the app dynamically if the user's language changes
Dan needs to help with database design here.
listening to system language changes - maybe just on startup?
Milestone 3 - having offline update of sec-sensitive
2 and 3 might not be necessary - dev can just serve manifest offline, and the manifest -> install info translation should register updates just fine.
I guess we can't do it when the app isn't launched, but with milestone 1 impl, apps can be localized fully if dev has offline support. and if not, still localized fully, the next time we are online to load a manifest.
Launch process here?
easy because we already standardized
just blink launch process
Don't need origin trial - already agreed upon standard.
Need to document agreement / (link to the agreements we've made over the years - TPAC with addison input, manifest bug, etc) - new spec editor…
Artifacts
spec'd already: https://www.w3.org/TR/appmanifest/#x_localized-members
agreement across vendors already - Apple and Google
File a request from Firefox if necessary
pull request with issue links & discussion: https://github.com/w3c/manifest/issues/1087
Core manifest spec issue link: https://github.com/w3c/manifest/issues/676
tpac discussions:
Also talked about as 'overrides'
TPAC 2024
TPAC 2023
TPAC 2022
Storing direction?
enum TextDirection { TEXT_DIRECTION_UNSPECIFIED, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL }
Enum from manifest.mojom: manifest.mojom - Chromium Code Search
Action items

Update DD

Send I2P from blink launch process (consolidate artifacts to reference them)

Start sending CLs