Using Myk Melez's qbrt project, @cvan's maintained a forked branch, vr, as the foundation for building a standalone, self-contained executable of Desktop Firefox w/ enabled-by-default WebVR Support.
Done in March – April 2017 at Mozilla in the Mixed Reality program, this experiment was led by @cvan and @caseyyee, codenamed Moonrise.
- Moonrise could generate Windows, macOS, and Linux releases of a wrapper program of this branch of
qbrt. - Moonrise's default start page was a WebVR-powered Lobby experience
- Moonrise could connect to a user's Steam account (if the user was already locally authenticated in the Steam app, Steam's user-management APIs worked without needing to first sign in)
- Moonrise used Valve's Steamworks for Steam data (e.g, to retrieve list and activity of friends, retrieve and store metadata, currently installed games, etc.).
Also through the Moonrise project, @cvan developed an proof-of-concept prototype for injecting native-app shortcuts to the user's OS-level Applications directory (e.g., Applications on macOS, Desktop on Windows). On Windows, shortcut links were added to the Desktop for each new experience added to the user's Lobby screen.
When a user added/bookmarked a WebVR page from the user's *Lobby screen, a web-app manifest file was generated (or merged with an existing one if the page already provided one via an <link rel="manifest" src="…"> HTML tag in the web page) from extracted metadata using @cvan's fetch-manifest tool.
Moonrise generated local directories that served as PWA-like containers (with three files: index.html, main.js, and package.json). Those directories could then be launched by qbrt to boot Moonrise into the website (WebVR pages or traditional, non-VR sites).
When launched, Moonrise would identify the start URL (i.e., technically reading a local PWA-like directory from qbrt) from the start_url key from the web-app's package.json / manifest.webappmanifest.
These were the supported browser-window display modes (via the display / display_mode key in package.json or a linked web-appp manifest):
- chromeless (
"display: fullscreen"): automatically fullscreens (without typical user-gesture requirement) - standalone (
"display": "standalone"): single native window - browser (
"display": "browser"): normal desktop Firefox layout
