First, there was XULRunner
. In 2007, this was turned into an experimental product called Mozilla Prism. (Also popular at the time was Fluid for Mac OS X.) In 2011, Mozilla launched an initiative targeting Firefox for desktop, Chrome/etc. for desktop, Firefox for Android, and Firefox OS, in that order. Evolved from the same codebase and team as the Firefox Add-ons program, there was an "app store" for HTML5, cross-platform, cross-browser web applications, Open Web Apps, called the Firefox Marketplace.
Developers could build HTML5 apps targeting desktop, tablet, and mobile devices. These chromeless, cross-platform web applications were called Open Web Apps (OWAs). Essentially a Firefox-proprietary (and polyfilled in other browsers) JavaScript API was called (e.g., navigator.mozApps.install('http://e8da9f7e.testmanifest.com/manifest.webapp')
), which would prompt the user with a door-hanger notification to install a native application to the user's Applications directory on any platform where native Firefox (i.e., Gecko) was supported (i.e., Windows, Mac OS X, Linux, Android). This app was just a tiny shell application that launched Firefox (i.e., Gecko) headlessly with a fresh profile. This chromeless engine was called Firefox's WebRT (Web Runtime); Myk Melez was the primary author of this code. The code has since been removed from Firefox.
Years later, announced at Chrome's Developer Summits, Progressive Web Apps (PWAs) were announced. Around the same time, the Firefox, Edge, and Opera teams began work on adapating Chrome's proven browser-extension API as an interoperable browser standard called Browser Extensions (more commonly known as WebExtensions). Both PWAs and WebExtensions have continued to evolve alongside such initiatives as Electron, Positron, Tofino, qbrt, and then release-channel Headless Firefox (and Chrome).
- https://mykzilla.org/2017/03/15/introducing-qbrt/
- https://github.com/mozilla/qbrt
- https://mykzilla.org/2017/03/08/positron-discontinued/
- https://medium.com/project-tofino/re-defining-the-tofino-project-6d3c98521cc8
- https://adriftwith.me/coding/2017/04/21/headless-slimerjs-with-firefox/
- https://mykzilla.org/2017/04/24/headless-firefox/
Supported today in Firefox, Chrome, Opera, Edge, and partially Firefox for Android.
- https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging
- https://github.com/NiklasGollenstede/native-ext#the-problem
- https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/storage
- https://github.com/electron/electron/blob/master/docs/development/atom-shell-vs-node-webkit.md
- https://github.com/Squirrel/Squirrel.Windows/blob/master/docs/using/packaging-tools.md
- https://github.com/zeit/pkg
- https://github.com/arturadib/node-qt
- https://github.com/pojala/electrino
- https://github.com/hovancik/stretchly
- https://github.com/Microsoft/react-native-windows
- https://github.com/ptmt/react-native-macos
- https://developer.apple.com/documentation/appkit
- https://docs.microsoft.com/en-us/dotnet/framework/wpf/
- http://wiki.qt.io/About_Qt
- https://kivy.org/#home
- https://www.gtk.org/
- http://sircmpwn.github.io/2016/11/24/Electron-considered-harmful.html