Skip to content

Releases: Igalia/wolvic

1.5

25 Sep 08:20
Compare
Choose a tag to compare
1.5

First big update since the 1.4.x series. This new release include new cool features, tons of bug fixes and several UI improvements. Up front we have new hand models for devices supporting XR_MSFT_hand_tracking_mesh extension, new Find in Page feature or the support for YouTube captions. Among other fixes, we've finally tackled the issue of white flashes on some WebXR experiences and we've brought back AppleTV playback.

The biggest changes are really behind the scenes, though. We upgraded both the Gecko and Android Components versions to 116, much more recent (and thus feature-rich) than previous versions. Along with that, a great deal of work went into upgrading or removing deprecated API calls in favor of more modern APIs. This has greatly increased the health of our codebase, and keeps users as up to date as possible with new web capabilities.

Highlights

  • Upgraded Gecko to v116
  • Upgraded Android Components to v116
  • Removed white flashes appearing with low FPS
  • Massive modernization of codebase including a large upgrade of deprecated APIs
  • New DateTime picker dialog
  • Find in page
  • Hands rendering with XR_MSFT_hand_tracking_mesh where available
  • New flavour for generic AOSP devices

Notes

Gecko

  • Upgraded to Gecko 116.0.3 (from 103)

Web Browsing

  • Removed white flashes with discarded frames
  • Implemented DateTime picker dialog
  • Pass only valid URIs to loadURI
  • Enable blob:// downloads
  • Enable local file navigation (file://)

UI

  • Reenabled automatic projection selection for YouTube VR videos
  • Properly update the WiFi icon after connectivity changes
  • Open feedback form in a new tab/window
  • Open URLs from Intents in another tab/window
  • Added support to Find in Page
  • Fixed 3D side by side video playback on curved mode
  • Updated translations: Chinese, Korean
  • Fixed disable auto-complete setting
  • Automatically select search engine based on region if not set

OpenXR

  • Added support for XR_EXTX_overlay allowing Wolvic to be composited with other OpenXR apps
  • Properly map controller primary action with hand tracking
  • Added support to render the hand mesh using XR_MSFT_hand_tracking_mesh extension
  • Refactored OpenXR hand mesh rendering with a strategy pattern

Media

  • Added support for YouTube captions
  • Fixed AppleTV playback

Stability

  • Fixed a crash in HTML select element
  • Fixed restart of Wolvic after changes in settings
  • Fixed a crash when WiFi signal strength cannot be retrieved

Code health

  • Upgraded Mozilla Android Components from v75 to v116
  • Migrated from browser-search component to feature-search
  • Modernized code to detect WiFi status changes
  • Migrated SearchEngineWrapper to Kotlin
  • Modernize deprecated AsyncTask
  • Modernize deprecated dispatchConfigurationChanged()
  • Modernize deprecated OnSystemUiVisibilityChangeListener
  • Removed API<24 codepaths
  • Migrate code to the new zip4j version
  • Modernize deprecated setSystemUiVisibility() and related flags
  • Fix deprecated methods in API 33
  • Fix deprecated Fragment and FragmentTransaction
  • Use androidx's PreferenceManager
  • Remove deprecated cookieLifetime
  • Fixed several deprecations and add comments for deprecation
  • Fixed deprecated android.preference.PreferenceManager
  • Fixed Kotlin build warnings
  • Set PackagingOptions.jniLibs.useLegacyPackaging = true

Infra

  • Added OpenCollective funding link to github
  • Removed WaveVR build dependency for non-WaveVR flavours
  • Added support for CMake >=3.10.2+
  • Disable fail-fast in CI
  • Setup github's dependabot
  • Added machinery to create Huawei and Pico packages for mainland China

Chromium backend

  • Implemented incognito mode
  • Set WebGL MSAA level on startup
  • Added Downloads support via DownloadManagerDelegate
  • Mute tabs when inactive
  • Fix aim pose on WebXR
  • Use Wolvic's User Agent

Pico

  • Allow Wolvic to read from Downloads folder
  • Fixed hand tracking support for PicoOS >= 5.7.1
  • Do not go back when clicking on "take screenshot" button

MagicLeap2

  • Added controller support

AOSP

  • New flavour for generic AOSP devices (supporting both arm64 and x64)

SnapdragonSpaces

  • Do not enable passthrough by default on the VRX (only in the Lenovo A3)

New Contributors

1.4.2

11 Aug 19:11
Compare
Choose a tag to compare

Second minor release of the 1.4.x series. This release includes bug fixes, UI improvements, and enhanced stability.

Downloads

Downloaded files will be stored in the device's public Downloads folder so they are available outside of Wolvic. This change makes Wolvic more useful and convenient, as it now follows the expected behaviour of a Web browser.

Hand tracking

Hand tracking detection is more reliable. Furthermore, the code that tracks gestures has been refactored to greatly reduce the unintended triggering of gestures and to give us a more flexible foundation going forward.

We have also fixed a bug in the Lynx R1 where the controllers were not visible while visiting an immersive WebXR experience, and another where the left hand gesture was not triggering the Menu button.

Text input

The keyboard's layout will follow the system's language by default, unless the user changes their preferred language and/or layout within Wolvic.

Search suggestions in the URL bar will no longer omit some characters

Web dialogs

We will display a confirmation dialog before re-submitting a POST form.

Download dialogs have a nicer appearance.

<select> Web prompts will remember the selected option after they are closed and open again.

1.4.1

05 Jul 16:34
Compare
Choose a tag to compare

First minor release of the 1.4.x series. Includes several important fixes and improvements specially in the media playback of different streaming services. We keep shipping hand tracking improvements (and some more about to come soon). Last but not least there are several changes on the UI side of things and also important stability fixes.

BTW, the app will no longer be called "Wolvic VR Browser" as it was unnecessary long, from now on it's just "Wolvic" as everybody call it.

Highlights

  • Fixes and improvements for many popular streaming services: Youtube, Apple TV, HBO Max, Paramount+, AirPano, etc.
  • Drastically improved the precision of hand tracking.
  • Introduced a new gesture to exit the application when using hand tracking.
  • Improved Wolvic's Android app lifecycle, specially on application finalization.

Streaming media

Hand tracking

  • New gesture to exit Wolvic when using hand tracking: simply look at your right hand palm, then pinch your thumb and index finger together and a dialog will come up.
  • Compute a better aim ray for hand tracking on systems that don't support the XR_FB_hand_tracking_aim extension.
  • Use the "1€ filter" to remove jitter from the hand tracking aim; see https://gery.casiez.net/1euro/ for additional details about this filter.

UI

  • Change the application name to "Wolvic", replacing "Wolvic VR Browser".
  • Increase the size of tooltips so they are easier to read.
  • When the user triggers the Back action but the navigation history is empty, we will show a prompt to exit the app.
  • New versions of the app icons with white background and 50% size reduction
  • Use localized welcome page
  • Updated translations: Japanese, Korean, Portuguese (Brazil)

Stability

  • Reorganize the code managing the Android lifecycle of the application; among other benefits, this allows us to properly close the OpenXR resources when Wolvic finishes so that other apps in the system are not affected.
  • Fix crashes due to an unchecked recursive call.

Expanded availability

Going forward we will use the services of AppInChina to publish Wolvic in mainland China. Among other things, this required us to make small changes to our build system and to include the appropriate user agreement and privacy policy documents.

Build system

Clean up and refactor CMake includes for flavours using OpenXR.

Lynx-R1

Remove some corrections which are now unnecessary with the new way to compute the aim ray.

1.4

16 Jun 16:33
Compare
Choose a tag to compare
1.4

This is the last major release of the 1.x series. Some 1.4.x might follow with specific critical bug fixes, but our main focus will switch to 2.0 after this. It's being a while since the previous 1.3.4 release, but we're adding some new cool features, like 3D hand models for hand tracking or passthrough support that took some time to get it right in a variety of devices. Speaking of which, we're adding more devices to the pack, Lenovo VRX & Lenovo A3 (based of Qualcomm's SnapdragonSpaces) and the Lynx-R1.

Highlights

  • New realistic 3D hand models for hand tracking
  • Passthrough support
  • New devices: Lenovo VRX, Lenovo A3 (experimental) and Lynx-R1 (experimental)
  • New "user feedback" button
  • Wolvic recognized now as a browser app on Android
  • Added support for U-NEXT videos
  • Ongoing progress of the new Chromium backend (not released). Initial unstable support for WebContents and WebXR

Notes

New devices supported

  • Lenovo VRX
  • Lenovo A3: experimental needs improvements in hand tracking
  • Lynx-R1: experimental needs improvements in hand tracking

Hand tracking

  • New realistic 3D hand models for selected platforms (Meta, Lynx)
  • Restore drawing the beam when using hand tracking, helps a lot to locate the pointer on real use cases
  • Disable squeeze gesture with hand tracking as it was interfering with "normal" click
  • Removed accidental zooming when scrolling via hand tracking
  • Smoothing filter for hand clicks, removes accidental clicks in systems that provide noisy hand tracking data
  • Do not require XR_FB_hand_tracking_aim to display hand joints

Passthrough support

  • Added passthrough support via multiple strategies depending on the system
    • Special compositor layer with specific extensions
    • OpenXR's alpha blend mode
    • Skip drawing the skybox
  • Added a new menu item to enable/disable passthrough
  • Passthrough switched on by default on Lenovo A3

UI

  • New "user feedback" icon in the navigation bar
  • Do not consider YouTube's 3D audio videos as immersive
  • Buttons A and X in controllers now trigger click events
  • Buttons B and Y in controllers now trigger back navigation
  • Updated translations: French, Spanish, Korean and Chinese (simplified)

Rendering

  • Improve the appearance of the pointer beam by adding missing geometry
  • Enable lighting on hand tracking joint spheres
  • Correct geometry in hand joint spheres

Pico

  • Add the right WebXR input profiles for Pico4 and Pico4E, WebXR experiences can now render the actual Pico controller 3D models
  • Re-enable WAKE_LOCK permission to allow app resuming, previously the system was closing Wolvic when pausing/stopping the app

Infra

  • Add dependency on tinygltf library used to load hand models
  • Removed the old PicoVR flavour
  • Ensure that store builds do always use OpenXR
  • Remove the OpenXR based system filter. Get the device model from Android OS instead

Other features & fixes

  • Fix background dimming on fullscreen videos
  • Set the correct trigger and squeeze button states when hands disappear
  • Add desktop override for Unext videos
  • Fix a rare crash when the projection menu widget was not created
  • Declare Wolvic as a browser application in Android, it can be now selected as the default browser and also directly open URLs from other apps
  • Restrict context menus in kiosk mode

Chromium

  • Add WebContents
  • Initial support WebXR
  • Refactored GeckoSurfaceTexture
  • Initial support for fullScreen & media playing
  • Update ContentViewRenderView's size when surface is updated
  • Implemented several interfaces: TabImpl, TabWebContentsObserver, BrowserInitializer
  • Implement basic navigation using URL bar
  • Support touch events & key events including IME

1.3.4

09 May 15:19
Compare
Choose a tag to compare

Introducing the fourth and last release of the 1.3.x series. This main purpouse of this release is to avoid issues with future releases of OS in some devices caused by some API changes in Android libraries. It does also improve a lot the kiosk mode experience.

Highlights

  • Upgraded the versions of some Android support libraries
  • New go-back gesture for hand tracking
  • New dialog for AppLab version
  • UI adjustments in the top bar widget
  • Added back/forward navigation to kiosk mode
  • Added a fallback for YouTube VR content
  • Added support for some more 360º video/photo sites

Notes

  • Upgraded the versions of some Android support libraries. This allows us to target Android APIs >=31. Without that update we were hitting crashes caused by a change in PendingIntent in about to be released versions of some OS
  • Fix package name for mainland China. Recent upgrades in our build system broke it.
  • New go-back gesture for hand tracking. The previous gesture (pinching thumb and ring fingers) was quite difficult to detect for most of the hand tracking systems we know. Apart from that it was easily triggered by mistake by users when testing. Now in order to go back users have to turn the left palm towards their faces and then pinch with thumb and index. It's slower but rather difficult to trigger by mistake. And it's much more reliable (hand tracking systems do a great job detecting thumb+index)
  • New dialog for App Lab users. This dialog encourages AppLab users to migrate to the official Meta Store version
  • UI improvements
    • Fixed appearance of top bar widget after the Android libraries update
    • Remove semi-transparent border in top bar to unify the look of the private and regular modes
  • Kiosk Mode
    • Hide the tray bar when in fullscreen or kiosk mode
    • Added basic navigation UI in kiosk mode. Users cannot switch between experiences or navigate to other pages but they can now move forward/backward. Also window resizing is now allowed
    • Kiosk mode exit trick. Clicking 7 times in the 3 dots button in less than 3s allows users to exit kiosk mode
  • Workaround for YouTube videos: along the last weeks, server side changes in YouTube broke the automatic discovery of immersive videos in Wolvic. That resulted in broken UI, with some widgets overlapping some others. Added fallback code for when YouTube does not send us media related events
  • Added support for sites that didn't work with previous versions. Again we're penalized by UA filtering. The sites that work now are:

1.3.3

07 Apr 15:52
Compare
Choose a tag to compare

This is the third bug fixing release of the 1.3 series, which not only fixes some bugs but brings back some lost features and improves the video-watching experience for all.

Highlights

  • Better hand tracking to avoid phantom clicks
  • Show Quest Pro controllers images for the interstitial widget
  • Made Pico 4E controllers visible for PicoOS 5.4
  • Restored background dimming when watching fullscreen videos
  • Increased CPU level when displaying videos
  • Fixed VR180 left to right videos

Notes

  • Hand tracking: increase pinch threshold to avoid phantom clicks
  • Fix background dimming when watching fullscreen videos. This was regressed with the OpenXR migration as it was based on OculusVR APIs. Implemented now using OpenXR
  • Fix VR180 left to right videos. Another regression from the OpenXR migration. The code assumed the usage of OculusVR backend and thus it was creating some extra layers that are not needed for the OpenXR backend.
  • Show Quest Pro controllers images for the interstitial widget
  • Remove STORAGE permission switch in Settings for Meta. It isn't required so better remove it from the UI.
  • Show a warning in settings when precise location is not available
  • Avoid percent-encoded filenames in dowload widgets. We do properly show names with spaces instead of the URL-encoded versions
  • Increase CPU level when displaying videos. For platforms supporting the XR_EXT_performance_settings extension we can "overclock" both CPU and GPU when displaying immersive videos or WebXR content.
  • Fix the next composition of combined consonant in Korean
  • Make Pico 4E controllers visible for PicoOS 5.4. A workaround for PicoOS < 5.4 was preventing us from loading the right 3D models.
  • Build system improvements
    • Added new flavor dimensions "backend" and "store". This allows us to automate several things, like using the proper store appIds or adding specific code for some stores.
    • Removed oculusvr3dofStore. It was not used.
    • Automatize setting the appId for stores

1.3.2

13 Mar 18:29
Compare
Choose a tag to compare

Highlights

  • Improved performance in WebXR and immersive video
  • Increased FPS in Meta Quest2 and Meta Quest Pro
  • Better hand tracking support
  • New desktop mode button
  • Added support for Pico OS v5.4
  • Improved visuals in several dialogs
  • HVR: better system volume bar integration and fixed reorientation issues with 3DoF devices

Notes

  • Implemented DeviceDelegateOpenXR::UpdateClockLevels(): allows platforms supporting the XR_EXT_performance_settings extension to adjust CPU & GPU performance depending on the situation. This means that we can increase the hardware performance while inside a WebXR experience to provide a smoother and more responsive experience but also throttle CPU and GPU down while in "2D browsing" to save battery.
  • Implemented DeviceDelegateOpenXR::UpdateDisplayRefreshRate() allows platforms supporting the XR_FB_DISPLAY_REFRESH_RATE extension to dynamically change the refresh rate. In the case of Meta the default display rate using OpenXR is 72Hz and we have increased it to 90Hz to mach previous releases using the OculusVR SDK.
  • Several hand tracking enhancements
    • Hands no longer dissapear when facing users
    • We've hidden the beam going out of users' hands
    • Pointer does now scale while pinching and changes color to blue after a successful "click" action
  • New UI button for desktop mode. Desktop mode was kind of hidden, and it was difficult to know at first sight whether a web page was shown using desktop mode or not. From now on a button will be shown next to the URL bar whenever desktop mode is activated.
  • Improved handling of downloads with spaces in filenames. The downloaded files seemed to dissapear after a restart, they're not wiped but just not visible due to a bug handling spaces inside filenames.
  • Media playback is now paused when showing the system menu and resumed after getting back to the application
  • Polished several UI details in dialogs and other UI elements (thanks Anushka Chakraborty @Ana2k)
  • Updated translations: Russian

Pico

  • Fixed a crash on startup with Pico 5.4 OS. We had a workaround for a bug in Pico's OpenXR runtime that allowed Wolvic to be run in previous releases. That runtime bug was fixed in 5.4 so the workaround started to fail. It should work fine now in 5.4 but also in previous versions.

HVR

  • Fixed the integration of system's volume bar with Wolvic. Since the upgrade to Harmony 3.0 OS the volume bar was not properly shown. A black opaque rectangle was shown instead.
  • Fixed a reorientation issue with 3DoF devices.

1.3.1

17 Feb 15:51
Compare
Choose a tag to compare

This is the first bugfixing release of the 1.3.x series. The main highlight is that we restored the posibility of recentering the window position (usually via a long press on the menu button of a controller). It was caused by the OpenXR migration. Fortunatelly OpenXR gives us tools to implement that behaviour.

Notes

  • Updated translations for Korean, Japanese, Portuguese (Brazil). Added a new language, Portuguese (Portugal).
  • Removed some unneeded permissions. In particular WAKE_LOCK, FOREGROUND_SERVICE, READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE
  • Make the swipe from left border gesture work in phone view in HVR. This allows users to close Wolvic when launched in the phone without the glasses attached.
  • Recenter the view after a long press in the controller's menu button

1.3

09 Feb 15:54
Compare
Choose a tag to compare
1.3

This is very likely the greatest release of Wolvic so far. It brings more features than ever, more fixes than ever and also more new devices than ever.

First of all we'd like to highlight that starting in this release, we're switching all our supported platforms to OpenXR. This migration brings massive benefits in terms of maintenance, compatibility and parity of features between different devices. Also Wolvic will make use of XR layers in all the platforms supporting them. They drastically improve render quality, performance and battery usage.

Secondly we're officially adding support to new devices. Among others the Pico customer&enterprise flagships, the Pico4 and the Pico4E. Apart from that, the brand new Meta Quest Pro is also supported.

The list of new features is quite impressive as it can be seen in the raw notes, but we'd highlight some:

  • Hand Tracking. Working in Meta and Pico devices. Allow users to control Wolvic without controllers. It's an early prototype, so do expect updates in the coming future (like better 3D models for the hands or additional gestures)
  • File uploads. It uses a new dialog with thumbnail support
  • PWAs. Wolvic is now able to detect the presence of a WebApp manifest, and allows users to install them. For now they're just another category in the Library (like addons, bookmarks, or downloads) but we'll improve the integration of them with the system environment.
  • Local addons. It's now possible to install addons via local *.xpi files. In order to do that a switch in the Developer settings must be enabled first. We find this specially useful for addon developers

Apart from features there are several remarkable bug fixes:

  • Video playing with DelightVR. Their video player module is used in hundreds (if not thousands) of sites. Wolvic used to play only audio, but know thanks to a pair of fixes in Gecko and Wolvic itself, we're able to bring back that experience again.
  • Improved downloads. Several fixes affecting how to display filenames, blob:URL support, thumbnails and also the possibility of sharing the downloaded files with the rest of the applications.

Last but not least, we've changed our user agent (UA) in order to make us more visible. We're appending Wolvic/1.3 to our current UA. Note that this means that we'll still claim to be Firefox, but that's an ephemeral situation. We're basically giving some time to the server side to adapt while being as much as compatible with the existing content as possible (we are aware of content that breaks if we remove the Firefox part).


New supported devices

  • Pico4
  • Pico4E
  • Meta Quest Pro

Added support for Pico devices (using 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 and XR_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

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

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)

1.2

04 Nov 14:03
Compare
Choose a tag to compare
1.2

This new release of the 1.x series brings a good bunch of nice features as long as several bug fixes. The new features improve the user experience at many different levels, from having more pleasant fullscreen video experiences to better rendering of WebXR sessions on Huawei devices by using antialiasing by default. We've also reached an important milestone in packaging, because after the recent 3.5.0.79 release of the Huawei VR SDK, we are able to release a single package for Huawei devices which supports both 3DoF and 6DoF controllers. So there is no need to install different apps to enjoy Wolvic with the controllers that please you the most.

For a detailed list of changes check out the release notes.

General fixes

  • Improved background dimming in fullscreen video mode
  • Added support for favicons in bookmarks
  • Don't show "Developer build" in the Settings dialog
  • Fixed a crash when clicking on mailto: URLs
  • Do not show a confirmation dialog when downloading assets in WebXR sessions

Huawei Glasses

  • Do not close the application when exiting the security zone
  • Display images of the controllers when entering WebXR sessions
  • Enabled analytics
  • New hybrid 3DoF/6DoF packages