How can Firefox create the best support for web apps on the desktop?
connect.mozilla.org
connect.mozilla.org
Currently, developers that need a single thing they can't get from within a browser are generally forced to create an Electron app, which means they essentially bundle an outdated (and often never updated) version of a browser with their app. It would be much better if you could just use the already installed, always updated browser as the runtime for your "local" app.
That would also create an incentive to develop in the browser ecosystem, and possibly move to a PWA - or at least it would show why devs prefer "real" applications to PWAs.
I was thinking of something like `/usr/bin/firefox --webapp-mode /var/opt/path/to/approot/` (in my model, the browser would contain code to load some standard webapp format, while with Tauri it looks like the app bundles a small piece of code that loads local webkit) but that's just a detail.
The downside of Tauri is that you likely run the built-in runtime with regular (full) access, while with a browser-controlled flow, the browser could enforce a permission system.
...and we'll see a repeat of the problems it caused Microsoft back then trying to improve Windows and Internet Explorer over time while still maintaining backwards-compatibility with a surprisingly large number of already-distributed HTAs (HTAs were popular for things like magazine CD demo-disk catalogs, computer hardware driver splash-screen GUIs, kiosk apps, that kind of thing - by 1998 if you didn't care about Netscape support you could take full-advantage of Trident (MSHTML)'s hacked-on support for parts of DirectX graphics (gradients, alpha-transparency, smooth animations) - the only alternative was VB5/VB6 and I think/hope it was obvious to everyone at the time that VB's days were numbered; and don't forget that Macromedia put decent effort into making Flash work well for standalone "Flash Projectors" - and you could embed SWFs in your HTA too; so this incredibly capatable HTML+CSS or HTML+Flash-based "interactive experiences" were expected to quickly become the standard for desktop multimedia.
...well, they didn't: instead .NET's WinForms (a marginal improvement over VB6) is still dominant for Windows fixed-size-window RAD GUIs, while HTAs started to suffer decline when XP shipped in 2001 because of the breaking-changes between IE4, IE5, and IE6 (hence even more hacks like Conditional Comments) - and security-folk sensibly reminded us that it was not a good idea for magazines/trade-shows/etc to distribute CD-ROM discs with autorun HTAs containing embedded ActiveX controls running under full-trust on every Windows machine from 95 to XP.
Mozilla of 2024 needs to avoid repeating Microsoft's self-inflicted issues.
-----
As for me? For now, I'd really rather just have a fork of the Blink layout engine that can run off XML and CSS and would be driven by something like a COM interface to the DOM - which means Blink doesn't need to bring its own JavaScript engine, which makes the system more secure - and means they'll finally be able to have a Blink-based page render that doesn't require 4 separate isolated processes consuming gigabytes of RAM (looking at you, GitKraken).
I am OK with flatpaks in theory, but there are years-old bugs with flatpak permissions that simply aren't getting resolved. Something is off with the feedback loop.
I used to like them as much as I like Electron apps.
That actually already exists nowadays
https://developer.mozilla.org/en-US/docs/Web/API/File_System...
So that an update, automatic if at all possible, can break all the apps at the same time.
Since I use kwin, possibly a separate window class too, so I can easily make rules specifically for the installed app. file system access would be great, with long term storage, so i can stay authenticated for long time.
I should be able to tell file extensions to be opened by the pwa on my desktop. Notifications should be available too. A permission management window for installed pwa would be great.
Something that would be cool is some sort of storage within Firefox sync, so that installing the pwa somewhere else restores my status and settings
The caveat is that the `--class` option doesn't seem to always be reliable; sometimes the window still gets grouped with the normal firefox instances in the task bar. I haven't got around to find out whether it's the fault of firefox or kwin.
Glad Firefox is revisiting PWA/WebApps
> As you may know, we built a prototype for desktop PWAs a few years ago, and unfortunately user testing on our solution showed confusion and lack of perceived value. We didn’t release it because we didn’t have an approach that could meet the needs of power users without causing confusion among the broader user base.
For example, I have my browser set to delete cookies on exit. Others use "delete recent history". I don't know if these things also wipe PWA data, but if they do, that can be a nasty surprise.
I'm perfectly happy to have my app in a pinned tab or bookmark. Do we really need a third kind of bookmark. Why do we need yet another method for installing apps on our desktop.
On a phone I can understand the convenience of saving a bookmark on your home screen, and removing the space consuming address bar, but desktops don't have the same constraints.
I wish they would just make an Electron alternative, but try and do it better. Make it easy to carve out features you don't need to make the process smaller and lighter. Don't need WebGL or Canvas? Don't need audio or video? How small can you make a browser by cutting features?
How cool would it be to visit a website with a bunch of check boxes that allow you to select the features you want for your app runtime, then it compiles an executable for you on demand.
Make memory management more controllable for firefox, multiple tabs with bloated JS pages using 7GB of 8GB total system RAM gets.. fun (manjaro+xfce, does it on different installs, has for years)
A service level worker for push notifications with the ability to run a local push server easily for testing webapp creation. (Won't work if firefox isn't running, but not that big of a deal, but is, if firefox is using all the RAM.)
Per tab/app containers with bandwidth/resource limitations. Ability to save window sizes, volumes, etc. 'Save States'
By default, nothing outside of the browser address bar hitting 10.* 192.* 0.0.0.0 127.0.* addresses in scripts/apps without user permission/knowing.
Apps accessible only through DoH/DoT only.
Bookmarks manager shouldn't close/minimize when you click a bookmarks link.
Incentive to create FREE web applications and keep them free without micro transactions/some other hidden/rabbit hole fees.
Chrome has had this for at least 5 years, probably longer.
Firefox has had "Site Specific Browser" functionality a long, long time ago.
I was using Mozilla Prism but they went and killed it.
Mozilla had a separate XULRunner runtime to bundle with your app for it to be fully standalone, or you could invoke it with the locally installed Firefox instance. There were several, like Songbird (media player), FireFTP/FireSSH (originally began as extensions and now available as standalone software)
Easy payment processing builtin to browser.
Easy social that spans apps that we fully control. I should be able to see who my hackernews friends are and if we have both chosen what other apps we have in common.
I still can't believe we have to sign up for every single app. Enter all kinds of different payment methods across a variety of payment processors. And are trapped using big tech platforms.
The browser is the killer app but none of these browser makers take it to the next level. Its still same as it was since mid 2000's.
sign in with apple/Google/Facebook/whatever has reduced the number of signups for me.
> Enter all kinds of different payment methods across a variety of payment processors
apple pay is super convenient - merchant gets my payment and my address, but there's also PayPal and Amazon pay and Shopify pay and stripe link. there's a complaint to be had about the nunnery of choices there are, but that's different from the automation not working.
> And are trapped using big tech platforms.
can't do anything about that unless you wanna work with crypto, but then you're using crypto.
we're not still stuck in the year 2000 unless you choose to be.
That's an awfully high-risk solution to having to maintain multiple identities.
The last thing I want is to be cut off from my (business) calendar because of something I said in a forum somewhere.
Remember back when having your identity tracked across multiple websites was malicious and websites would do their best to perform the tracking surreptitiously.
Now it's all different - websites having users lining up to dox themselves.
I'm afraid if someone wants to dox many of the online pseudo-anonymous personas I use, they going to have to do all the work to dox me; I'm not lifting a finger to help them, much less actually do it for them.
> Easy privacy/identity management per app.
Now that Passkeys are a thing, browsers could theoretically create an anonymous, ephemeral account for you automatically on any site that requests that. Or alternately/additionally, maybe a "synced localstorage" feature could reduce or eliminate the need to have accounts for many cases.
> Easy payment processing builtin to browser.
This already exists on mobile and works quite well, though desktop support is a bit lacking. https://developer.mozilla.org/en-US/docs/Web/API/Payment_Req...
> Easy social that spans apps that we fully control
User-friendly decentralized social media is an unsolved problem. Maybe if Mastodon or Nostr or Matrix ever overcomes those challenges and starts to take off browsers can start integrating support.
(Admittedly a lot of people suck at making web apps.)
Now, it’s mostly a corporate canvas for economic transactions, like the rest of the human experience in the west
I would have killed for the capabilities web browsers have now back in 2000. I was forced to build Java applets to get anything close, and the user experience sucked.
"Exciting" doesn't necessarily mean "good", though!
The current trend could be just ditch desktop environments just substituting them with a WebVM (the name "browsers" should have nowadays) instance. After a bit of time this model will explode, like the widget-based GUIs model, due to it's crappyness done only to disarm the user.
WPA's and webviews are non solutions. You can't have web sandboxing and also the privileges a desktop app needs. Wasm is a failed experiment that did not result in the performance improvements promised. You still need to compile C++ modules for all kinds of things.