7 ms·
WebContainers are now supported in Firefox on desktop and Android
- skykooler 4y agoDamn, I thought that this would be about firefox android finally getting multi-account container support.
- fuzzzerd 4y agoGlad I wasn't the only one having that thought. This is cool, but I'm bummed because my expectations were about multi-account containers on Android.
- butz 4y ago"Create and develop full web applications inside your browser tab". You know what would be even better? If we could add an icon for this app to the desktop and run it as standalone application, while using the same browser engine installation. We are practically at that point where OS needs only web browser installed and all applications could be web based.
- michaelmrose 4y agoWhat is the benefit of everything being web based over setting up automatic building of traditional packages for existing OS or building containerized packages EG flatpak.
- razemio 4y agoIt always depends on the use case. A good example for an application being better because it is web-based is vscode. With code-server the possibilities are almost endless. This was revolutionary for me as a developer.
- game-of-throws 4y agoThat's remote development, and you don't need a web-based UI to do it. There's also JetBrains IDEs, any terminal editor over SSH, and probably plenty of other editors I haven't looked into.
- razemio 4y agoYes and no. There are some differences which make vscode superior to tmux/screen, ssh/fuse or rdp/vnc/nomachine based solutions. - incredibly easy to setup (only a browser is needed) and use everywhere. Even management compatible. - can be automated easily with ansible and/or docker - remote pairing without a third-party cloud in between - plug-ins just work even when being used remotely - headless chrome can be proxied to the webview of vscode (a real browser running remotely in your browser) Almost everything mentioned can be done with the tools you suggested BUT IMO it is not as smooth then just using vscode. This is coming from an arch (using arch BTW) / i3 guy.
- simion314 4y agoMy opinion, I tried to make a quick side project, not for money,just to help someone. So the idea is what is the tool that takes me less of my free time and works for doing the job, fuck look and feel I need buttons and test only, I am also on Linux but the app needs to be cross platform and I will not buy Apple shit or Windows to do this, I done the project in Electron , I don't love it, I think is kind of a shit architecture, a duck-taped thing but it does the job for me.(also I personally prefer GC languages over c/c++ and Python syntax is not for me). But if you pay me tons of money I would build you native apps, on my free time and money I will use a shitty toolkit that does the work it suppose to do. IF Microsoft would not be an evil and stupid company maybe we could all have been now making cross platform C# apps but the bastards really wanted it to be Windows only, nice job MS.
- cutler 4y ago.Net MAUI?
- deleted 4y ago[deleted]
- afavour 4y agoBecause creating cross platform apps has always been really difficult. And creating web pages that work cross platform is less difficult. If your objection is that it's inefficient and sometimes leads to bad quality output, I'd agree. But it's the option with the least friction so people gravitate towards it, we might as well make it work better.
- postalrat 4y agoThe benefit to me as a user is that I don't need to basically give access to my full computer to an app I may not trust.
- mr_toad 4y agoFirefox command line has multiple options for passing a URL.
- thayne 4y agoBut none of them allow you to open the url in a new window, with minimal chrome, where clicking on a link opens in your main browser instead of a new tab in the current window. And you can't customize the appId so the window manager treats as another firefox window, not a separate app.
- solarkraft 4y ago> And you can't customize the appId so the window manager treats as another firefox window, not a separate app IIRC that's actually possible on Linux, but a big pain and, like most command line switches, pretty undocumented. But yeah, Firefox generally sucks for this use case and it's insane. It would be borderline trivial to implement, immensely useful and they've actually gone backwards on this type of stuff in many instances.
- politelemon 4y agoYou're talking about PWAs, right? It's still bizarre to be that the feature was dropped. PWAs are the top idea on their feedback site as well. I suppose while it has your attention, please vote for that feature https://connect.mozilla.org/t5/ideas/bring-back-pwa-progressive-web-apps/idi-p/35 https://connect.mozilla.org/t5/ideas/bring-back-pwa-progress...
- fuzzzerd 4y agoCrazy that they removed it. It works well on Firefox for Android, and it used to work fine in Firefox desktop too.
- vorpalhex 4y agoMozilla seems to stray further and further every day. Some stuff is great, but like we still can't install whatever extensions we want on Firefox android without deeply jumping into dev features.
- erichdongubler 4y agoI currently use the Lynket browser (which can leverage Chrome Custom Tabs to present each Firefox tab as an Android app per tab) and shortcuts to web links to get most of the feel of a PWA. Would recommend it if you're interested. :)
- Volundr 4y agoI had no idea this was removed. Ugh that's really distressing.
- culi 4y agoWhat the hell? When did this happen? PWAs are some of the most exciting developments in web development. Did they give any reasoning about this decision anywhere?
- thayne 4y agoThe reasoning was that their implementation was buggy, and added tech debt, and they didn't think that PWAs on Desktop were useful.
- sorenjan 4y agoFirefox recently removed support for SSB (Site Specific Browser) and PWA (Progressive Web Apps). That's the only reason I have Chrome installed, since I like to have different apps in different windows, and keep my browser tabs for websites. https://support.mozilla.org/en-US/questions/1348811 https://support.mozilla.org/en-US/questions/1348811
- fariszr 4y agoI think it would be better to have chromium or brave installed of chromium, since you use FireFox.
- zeorin 4y agoYou could use different Firefox profiles for this...
- solarkraft 4y agoI've tried a lot of things. Every option I'm aware of sucks. Even using multiple profiles (which would mostly break the reasons to want to use the same browser) is not really supported (lots of issues with window switching on both Linux and macOS).
- afavour 4y agoBut the icon in the task bar would always be the Firefox one. PWAs solve all the problems here.
- ReactiveJelly 4y agoI just open multiple browser windows...
- sorenjan 4y agoI don't need or want the browser chrome like tabs and toolbars on those windows, and I usually pin them in the taskbar using their own icons. Makes alt-tab nicer too. I don't use it myself, but PWAs can also register as file handlers and be used to open files like any other installed program, which would be handy for image editors and similar. https://docs.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/how-to/handle-files https://docs.microsoft.com/en-us/microsoft-edge/progressive-...
- tuxracer 4y agoThis can be done today: Chrome: Menu -> More Tools -> Create Shortcut -> Check "Open as Window" Edge: Menu -> Apps -> Install this site as an app
- jeroenhd 4y agoI think the point is that you can't do it on Firefox anymore. You used to be able to, but the (partially incomplete) feature was removed instead rather than developed into an easy to use feature. The feature still works on Android, but the Mozilla team doesn't see a future in installing web apps apparently. PWAs are my main use for Chromium.
- solarkraft 4y ago> but the Mozilla team doesn't see a future in installing web apps apparently. It's absolutely the future, Firefox just isn't in that future. > PWAs are my main use for Chromium Mozilla already lost big when everyone decided to use Chromium for Electron-style apps and now they're actively running into losing big again.
- croes 4y agoAll applications and all malware. You don't want web apps to get write access to your HDD.
- sp332 4y agoWeb apps run in the browser sandbox. They don't generally have access to the filesystem.
- mr_toad 4y agoThis uses the file system API, which users can use to grant read and write access to entire folders. Malicious apps will never trick users into granting access to folders they shouldn’t, whereupon they won’t have their files exfiltrated, encrypted, and held to ransom.
- croes 4y agoParent writes about all applications to be web based, all appliactions without access to the filesystem are hardly possible.
- ilaksh 4y agoThey did that awhile ago. It's called ChromeOS. The browser is essentially an overlay operating system. Kind of a crap one though. Web assembly could be the basis for something that could break out of the browser.
- apatheticonion 4y agoElectron exists entirely because the web platform does not have access to lower level APIs. When the web incorporates these features (e.g. FileSystem Access), PWAs will replace electron. Throw in "when Web Assembly can interact with the DOM and browser APIs" and you have the most powerful cross-language, cross-platform UI toolkit in existence. It'll mark the year of the Linux desktop... probably, maybe - please.
- ridiculous_fish 4y agoCan PWAs use multiple windows, native menu bars or context menus, etc? I would not call those APIs "low level."
- jakelazaroff 4y agoYou’re right, and I actually think the web would benefit greatly from a native context menu API!
- deleted 4y ago[deleted]
- pjmlp 4y agoDepends if the browser is based on Chrome, thus an extension of ChromeOS, or not. https://web.dev/learn/pwa/windows https://web.dev/learn/pwa/windows https://web.dev/app-like-pwas/ https://web.dev/app-like-pwas/ https://whatwebcando.today/ https://whatwebcando.today/
- solarkraft 4y ago100% of the web apps I currently use in the browser don't need these APIs to function (Twitter, Tidal, HN, YouTube, whatever really).
- inb4_cancelled 4y agoInstead of building fast native application delivery and sandboxing we're taking the longer way around and reinventing OSes inside a document (!) browser. Can't say that it makes me happy.
- modeless 4y agoBlame the OS vendors. There's no money in making an OS secure enough to run arbitrary portable code from a decentralized marketplace in a sandbox. All the money is in monopolizing app distribution, forcing use of their proprietary SDKs and APIs, and deleting any app they feel like "for your protection" (and also some other reasons but don't mind those...).
- nyanpasu64 4y agoBlame web developers. There's no money in making web pages simple enough to be delivered to the client as fully functional hypertext without running arbitrary code. All the money is in stalking users across the app, forcing them to watch ads and navigate paywalls, and denying service to any ad blocker they feel like "for their survival" (and also some other reasons).
- afavour 4y agoOh, come on. Don't pretend like there are zero web apps with useful functionality. Or would you prefer Google Maps shut down and we all go back to Yahoo Maps where we click an arrow button that reloads the entire page with a new map tile displayed?
- tjoff 4y agoOh yes. Not the slightest hyperbole. That would be amazing. What we have now really is a tragedy of the commons situation. edit: Google maps (or equivalent) is a true game-changer that has a lot of value and one of the very few websites with actual value from javascript. But, we could just use Google Earth as a separate application for it. Just as we did in the early days when google maps on the web was a poor fit. Very small price to pay.
- 28304283409234 4y agoVery confusing to name this "webcontainers". Considering Firefox already have their own containers.
- akomtu 4y agoFirefox, may I tell you what the free Web really needs? A docker-like environment for websites. The environment can arbitrarily override anything, from JS built-ins to CSS rules, and do that in such a way that the underlying website would never know about the shim layer. A useful bonus would be limiting CPU time spent by the website. The former can be marketed as a privacy feature and the latter as comvating global warming.
- lucideer 4y agoThis is not a Mozilla/Firefox blogpost, nor is it about features being added to Firefox. This is a product, that has before now only supported Chrome, adding Firefox support.
- krono 4y agoFYI WebContainers are not a web standard, but this article sure does try its best to make it sound like one. Pretty off-putting and not at all necessary for such a great product as Stackblitz. Firefox has added support for some webdriver APIs[1] that this proprietary "WebContainers" product depends on. That is all. [1]: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/103#webdriver_conformance_webdriver_bidi_marionette https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Rel...
- jrvidal 4y ago> Firefox has added support for some webdriver APIs[1] that this proprietary "WebContainers" product depends on Hi, WebContainers does not depend on WebDriver BiDi. We did mention our interest in this new standard getting more momentum in other blog post (which might be the source of your statement?).
- krono 4y agoPoor choice of words on my end, apologies. The underlying technologies and the tooling that you've been building on top of it are great. I was merely pointing out the confusing or perhaps misleading writing style of this announcement.
- dmitriid 4y ago> We did mention our interest in this new standard getting more momentum You keep calling it a standard. The "working group" is some people on Discord. Your blog post calls it "our in-browser operating system" which is a far cry from a standard. You "team up with browser vendors directly", yet not through web standards bodies, but through some "bytecode alliance" that aims to build outside the browser. Also, unsurpisingly, zero links anywhere to an actual standards text or even to a specification of these web containers.
- jrvidal 4y ago> The "working group" is some people on Discord Fair enough, we should correct our mention of WebDriver BiDi to "tentative standard". BTW, not sure if you hold some grudge against WebDriver BiDi in particular, we were merely saying "gee, I sure hope something better than WebDriver comes along, b/c E2E testing kinda sucks". > Your blog post calls it "our in-browser operating system" which is a far cry from a standard. You "team up with browser vendors directly", yet not through web standards bodies, but through some "bytecode alliance" that aims to build outside the browser. Also, unsurpisingly, zero links anywhere to an actual standards text or even to a specification of these web containers. I am not sure what your objection is. We have a product, we're describing our efforts to port it to a new browser engine.
- jrvidal 4y agohi HN, there's a companion technical post by yours truly which might be more appropriate/technically dense for your taste: https://blog.stackblitz.com/posts/supporting-firefox/ https://blog.stackblitz.com/posts/supporting-firefox/ (I'm also sad that Multi-Account Containers are not a thing in Firefox for Android). Disclaimer: I (obviously) work for StackBlitz.
- jereees 4y agoA more misleading title could not have been devised. Edit: typo.
- ijidak 4y agoI feel weird about what's happening in the browser. I can't put my finger on it, but something seems off... We're moving towards an operating system on top of an operating system (browser)... And now, node.js and other runtimes, in the browser, on top of that. I'm hoping we can flatten this at some point... It seems like the core problem is that: 1. Operating system vendors have failed to provide UI SDKs that beat HTML & CSS (plus browser APIs for modification of that HTML and CSS). 2. Operating system vendors have failed to have such a UI SDK work cross-platform across operating systems. 3. Operating system vendor UI SDKs do not allow UI to be bootstrapped dynamically (e.g. retrieved dynamically over the web) and built-up in code via APIs as simple as browser APIs. 4. A failure in open distribution and discovery of apps. Am I wrong? Is this direction in computing a failure of OS vendors to get together and solve this problem? This seems like a source of sudden disruption some day... I feel like one day Microsoft is going to wake up to find they're not needed anymore.
- spookie 4y agoIt's not even about OS, or GUI toolkits.
- pyrolistical 4y agoits all about security. the operating systems weren't designed for security. they were created pre-internet where you compiled all the code you ran on your operating system. its an unfixable architecture due to the nature of the API. this is why the browser is winning. Javascript doesn't have access to your operating system. we finally have a way to allow arbitrary code run safely. we then extended this to webassembly. this is how we're going to fix everything. the operating system is going to melt away and webassembly runtimes will rise. the end game is when webassembly runtimes run natively on hardware, and control is finally returned back to the end user.
- encryptluks2 4y agoBy control, you mean browsers that consistently enable functionality to take away privacy. The same permissions you're referring to can already be managed using FlatPak, Snaps, etc
- lewisjoe 4y agoThis great, but how would we handle dynamic calls to other servers that are part of my web-app? Maybe a NPM package that needs to downloaded from an external registry or an authentication service that needs to speak to Auth0? Isn't this impossible with CORS disabled by default in browsers? How do we work around this
- jeroenhd 4y agoI don't think I understand what this is actually doing. It's being pitched as some kind of new way to develop Javascript inside the browser, but VS Code is already available in the browser? What does a web container actually "contain"?
- epolanski 4y agoVSC in the browser effectively connects to some VM via web sockets and computation happens remotely. This I think leverages your own computer to do computation.
- jeroenhd 4y agoIt only works remotely in Firefox, in Chrome (with its arguably questionable filesystem API). Plus, running the files in WASM is also what happens in these containers.
- mr_toad 4y agoIt’s running Node and NPM and some other stuff as well, which makes it more like a full dev environment than just an editor. It only runs JavaScript though (I think).
- mr_toad 4y agoI wish people wouldn’t conflate operating system with a run-time environment, desktop, or IDE. Especially here of all places.
- janpot 4y agoSo when can I start building on top of webcontainers myself? You seem to be present it as some sort of new browser api, or a library, but from the looks of it it's only the proprietary technology that underpins the stackblitz product.
- OptionX 4y agoSo let me get this straight. We had JS in the browser and people want it on the OS, so we got node. Now we're taking node from the OS level and putting in the browser? Its like a story told by a madman.
- tonetheman 4y agoWhat I want is to flip this. Let the base of everything be a webcontainer. Like MS/Apple/Ubuntu all agree on a binary base that can run webcontainers. Then Firefox/Chrome/Edge even run on this beast. You effectively download the entire browser on demand. Fairly sure no one would agree on what that binary at the bottom looks like though. :(
- somishere 4y agoReally like stackblitz.That said, I happen to be working on it at the moment (in FF104) and have been having a bunch of issues (as of very recently). Biggest one is that I had to disable Enhanced Tracking Protection to get the preview to work. Only a new relic analytics script was listed in the panel, but reading further I found ETP probably still presents other gotchas for their container setup (see below). More of an annoyance, but I'm also getting "Service workers are disabled by Firefox on this page[...]" message logged persistently to the console, with a link[1] that goes some way to explaining the ETP issue above. Everything still works. In fact, the log appears to be associated with a firebase service worker, as the subsequent message (every time) is an error due to a firebase long poll getting blocked for CORP header issues. I'd add that it was working perfectly last week, possibly prior to a browser update. They seem to be somewhat aware of the issue (see [1] and per instructions printed to the non-working preview panel). [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1668408 https://bugzilla.mozilla.org/show_bug.cgi?id=1668408
- woojoo666 4y ago> Debug Node.js applications natively using Firefox DevTools Awesome. Been waiting for this
- galaxyLogic 4y agoSo in essence instead of having the browser talk to a server somewhere, it can now download a server, and start talking to that. The browser then no longer needs to "go to the server", the server will come to the browser. Is that correct? What would be some use-cases for it?