19 ms·
WebContainers are now supported in Firefox on desktop and Android
- jereees 4y agoA more misleading title could not have been devised. Edit: typo.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 28304283409234 4y agoVery confusing to name this "webcontainers". Considering Firefox already have their own containers.
- 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?).
- 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.
- 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.
- 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
- cobertos 4y agoWon't it be the opposite, control will fall further from the end user? All code is served from some remote endpoint, which you're unable to load if your device doesn't attest (like Android safety net) or some other arbitrary reason. That plus browsers are already too complex to replicate. Unless you mean that we'll have webassembly packaged in nice little .exes or .apks or some other app bundle so we can at least download them?
- 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
- 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?