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