Wolvic 1.3 Released
February brings the release of Wolvic 1.3, and we’ve added a lot so there’s a lot to share!
First up, we’re pleased to be bringing support to the Pico4, Pico4E, and Meta Quest Pro. The Pico support is based on the OpenXR backend, which allows for things like hand tracking and, through the use of XR layers, better visuals, better performance, and lower battery usage.
In fact, we’ve switched to using OpenXR by default on all devices, which is a huge step forward in code maintenance. The Pico, HuaweiVR, and Meta devices all share the same code, and thus all platforms benefit from the same fixes and improvements. Among those improvements are a number of low-level features and fixing a major memory leak, as detailed in the Notes section later on. This does mean we’re removing the deprecated OculusVR backend on Meta devices soon.
Another benefit of using OpenXR is that the brand new hand tracking support we’ve just added, should work on all the platforms supporting it, like recent Meta or Pico devices. We have an early prototype of in-view hand rendering and gesture recognition, and expect improvements over the next few releases.
The OpenXR migration came with a couple of regressions. First, we lost the background dimming when watching fullscreen videos because it was based on already deprecated OculusVR layer APIs. Second, we no longer show the battery levels for the controllers, as OpenXR doesn’t support that capability yet.
In terms of user interface, we’ve added support for file uploads using a custom widget of our own making, so that’s also in a sort of early-prototype phase. On the download side, we’ve added image thumbnails to the list of downloaded files, and also a contextual menu that permits sharing downloaded files with other apps. We also improved the downloads screen so that longer filenames are better handled.
In another big step forward, we’ve added support to install browser extensions (.xpi
files) from local files. This is a big win for extension developers, as it enables them to test out their extensions without having to get them into Mozilla’s repos first. In order to be able to install extensions from local files, users need to enable a setting in the Developers Preferences. Thanks to Ayaskant Panigrahi for contributing the code to make this possible!
Furthermore, Wolvic has now support for Progressive Web Apps (PWAs). Whenever a PWA manifest is available on a given web page, Wolvic shows an icon in the URL bar allowing users to install the application. In this release, PWAs are added to a new section in the Library (along with bookmarks, downloads, and history), but the plan for the future is to use native APIs to add those apps to the system environment.
Finally, we’ve changed the User Agent string in Wolvic to announce itself as itself — previously, Wolvic still identified itself to sites as Firefox Reality. This change should fix some site compatibility issues, especially where a widely-used video framework refused to serve videos (a bug has been filed and is being addressed).
It is possible this change could introduce new site compatibility problems, so if you experience that, or if you’ve found a new problem or other issue, please let us know on GitHub.
Release Notes
- New devices supported
- Pico4
- Pico4E
- Meta Quest Pro
- New Pico backend based on OpenXR
- Supports Pico4 and Pico4E
- Hand tracking
- OpenXR layers: better visuals, better performance, lower battery usage…
- Initial build and non-layers version contributed by Dirk Steinmetz (@rsjtdrjgfuzkfg)
- Switched all supported platforms to OpenXR backend by default
- Added support for cylinder layers (required for multiwindow)
- Added support to limit the number of layers sent to the compositor
- Added support to limit the number of widgets that create layers (required for platforms that limit the number of layers that can be created like Pico)
- Fixed a huge leak in swapchains when resizing widgets (entering/leaving WebXR and/or immersive videos)
- Hand tracking support
- Pico and Meta
- OpenXR based, using
XR_EXT_hand_tracking
andXR_FB_hand_tracking_aim
whenever available - Early prototype, basic hand rendering
- Gestures
- pinch thumb&index for click action
- pinch thumb&middle for go back action
- WebApps support
- Autodetect webpages with webapp manifest support
- Added UI to install Webapps
- New UI for managing Webapps
- Local addons
- Installable from local
*.xpi
files - Contributed by Ayaskant Panigrahi @DevPika
- Installable from local
- Enabled video playing for DelightXR-based sites
- Required a patch in Gecko and UA changes
- File uploads & downloads
- Added support for file uploads via custom widget
- Display thumbnails in the Downloads tab
- Improved algorithm to detect the correct filename for downloads
- Added “Share with other apps” context menu for downloads. Allows Wolvic to share downloads with the rest of the apps by adding them to Android’s meta database and copying the file to the system Downloads folder
- Improved download dialog to handle long filenames
- Added support for
blob:http//
URI downloads
- Stability
- Fixed a crash in Addons view
- Fixed a crash when trying to show unsupported
<input>
widgets (color picker, date/time picker…) - Fixed a crash when entering private mode
- Visuals
- Switched to higher quality textures for the default cyberpunk environment
- Vertically flip OpenXR layers in Meta. They were shown upside down previously
- Hide navigation bar when watching fullscreen videos
- Display favicons in navigation suggestions and tabs
- Show translated version of descriptions in Addons tab
- Miscellaneous changes
- New user agent string
Mozilla/5.0 (Android 10; Mobile VR; rv:105.0) Gecko/105.0 Firefox/105.0 Wolvic/1.3
- Replaced leftover references to Firefox Reality with Wolvic
- Upgraded Mozilla Android Components to v75: improved stability, new APIs
- Do not unconditionally load the agconnect plugin, do it only for HVR flavours
- Use the right JVM target for kotlin
- New user agent string
- Regressions
- No background dimming when watching fullscreen videos (also the menu widget does not do anything)
- No battery levels for controllers (no current support on OpenXR)