Skip to content

Releases: Igalia/wolvic

v0.9 Chromium beta

09 Apr 11:56
Compare
Choose a tag to compare
v0.9 Chromium beta Pre-release
Pre-release

This is the first (beta) release of Wolvic using the Chromium backend. We have generalized the code so that it can be used with different web engines. This is a beta release so it isn't production ready yet. It should be mostly on par with the Gecko v1.6 release in terms of features with a few exceptions:

  • Extensions: pending to be implemented
  • Mozilla Accounts (former FirefoxSync) is not working yet due to the lack of extension support
  • Auto detection of immersive video format: this is done in gecko with a built-in extension, as there is no support for extensions this cannot be done

We're initially publishing this for 4 major platforms (more to come in the future depending on funding):

  • Meta : supporting Quest 2, Quest 3 and Quest Pro (although there is a codec issue in the Quest 3 causing a lot of flickering when playing videos)
  • Pico: supporting Neo 3, Pico 4 and Pico 4E
  • HVR: for Huawei VR Glasses
  • AOSP(x64): this is a generic build for AOSP x64 devices mainly designed for the Magic Leap 2

1.6.0

20 Feb 09:32
Compare
Choose a tag to compare

Release Notes for Wolvic 1.6.0

Highlights

  • Support fullscreen vertical videos.
  • Auto-completion support for Latin keyboards.
  • Better responsiveness and stability of keyboard input.
  • Support for the Pico Neo3.
  • Upgraded the Web engine to Gecko 121
  • Add new environments.

Notes

UI

  • Support fullscreen vertical videos.
  • Improved support for fullscreen content in general.
  • Don't use a fixed-width viewport for desktop mode. Note that desktop mode will still affect the browser's User-Agent.
  • The preset buttons (1x, 2x, etc.) will resize a window according to its current aspect ratio.
  • Lower the maximum display DPI to 300, since larger values don't work on most devices.
  • Curved display does not affect VR video.
  • Fix small issues when experimental UI settings are applied.
  • Fix and issue with display density when exiting VR video mode.
  • Fix a bug where the browser window may be transparent at startup.
  • Remove the telemetry privacy option, as the Mozilla telemetry service is currently disabled in Wolvic. This option remains on Huawei platforms, which use their own telemetry system.
  • Remove the unused crash-report setting.
  • Support courses.certify-ed.com
  • Add new environments: Meadow, Milky Way, and Above the Clouds.
  • Expanded translations. Currently Wolvic is fully translated to English, Spanish, Portuguese (Portugal and Brazil), Chinese (traditional and simplified), Japanese, Korean, French, Danish, Swedish, and Galician.

Input

  • Auto-completion support for Latin keyboards. This feature is currently disabled by default as we continue testing and polishing it. You can enable it in Settings, Display, Latin Keyboard Input Auto-complete. The dictionaries for each language will be downloaded on demand.
  • Better responsiveness and stability of keyboard input.
  • Don't go back with the B and Y buttons in the controllers. This was rarely used and prevented WebXR apps from using those buttons.

Pico

  • Support for the Pico Neo3.

Others

  • Improved stability at application launch, including error handling for voice recognition, session initialization, and VR infrastructure.
  • Upgrade our version of the Gecko Web engine to 121.0.1. Upgrade the Mozilla Android Components to 121.1.0.
  • Shrink the size of resources in release builds.

1.5.2

11 Dec 14:33
Compare
Choose a tag to compare

Release Notes for Wolvic 1.5.2

Highlights

  • Increase the logical size and resolution of Web pages. The default window has a logical size of 1024x576 CSS pixels. We also use a higher resolution to render the Web page (the exact value depends on the device).
  • Add four new experimental features to provide more detailed control of the window environment:
    • Adjust the distance of browser windows, moving them closer or farther away.
    • Align vertically windows of different heights.
    • Move windows horizontally around the user.
    • Head lock: the browser window remains centered in the user's view, which is useful for watching videos and also in the case of devices with a narrow field of view.
  • Add six new environments.

Notes

UI

  • Increase the logical size and resolution of Web pages. The default window has a logical size of 1024x576 CSS pixels. We also use a higher resolution to render the Web page (the exact value depends on the device)
  • Add four new experimental features to provide more detailed control of the window environment:
    • Adjust the distance of browser windows, moving them closer or farther away.
    • Align vertically windows of different heights.
    • Move windows horizontally around the user.
    • Head lock: the browser window remains centered in the user's view, which is useful for watching videos and also in the case of devices with a narrow field of view.
  • Add six new environments:
    • Autumn Forest
    • Basic Sky
    • Barcelona Rooftops
    • Night Forest With Aurora Sky
    • Pretville Cinema
    • Winter Night
  • Hide brightness button when playing video in Passthrough.
  • Remove duplicated suggestions in the URL bar.

Meta

  • Adjust device detection in the case of the Meta Quest 3.
  • Select 90Hz refresh rate for Meta Quest 3.

Others

  • Add desktop-mode overrides for popular Chinese websites.
  • Enable setting the device name in Mozilla account and present it correctly to the user.

1.5.1

22 Oct 10:48
Compare
Choose a tag to compare

Highlights

  • Wolvic now supports downloading new 3D environments online. Access this feature through the "Environment" section in the Settings.
  • A new "Spring" environment is ready for download. Visit our repository at Wolvic 3D Environments on GitHub for updates and suggestions.
  • Added compatibility with the Meta Quest 3.
  • Added passthrough support for Pico devices.
  • Wolvic is now also compatible with different phones when using Huawei Glasses.
  • The keyboard now includes voice input, allowing you to dictate text directly into website fields
  • Multiple enhancements and fixes for Chinese and Japanese keyboards.
  • Enabled the use of your system's trusted root certificates (fixes issue #489).
  • Added option to clear all user data.

Notes

Meta

  • Added compatibility with the Meta Quest 3.

Pico

  • Added passthrough support for Pico devices.

Huawei

  • Wolvic is now also compatible with different phones when using Huawei Glasses.

Media

  • Multiple fixes in video playback including curved fullscreen display, pause behavior and seeking bar time.
  • Added top-bottom format support for VR video playback.
  • Allow users to jump to the start/end of a video by clicking on time labels.
  • Added capability to play different projection types of VR videos continuously.
  • Support playing fullscreen video on a curved screen (fixes issue #1055).

Input

  • The keyboard now includes voice input, allowing you to dictate text directly into website fields
  • Multiple enhancements and fixes for Chinese and Japanese keyboards.
  • Resolved issues with voice input when the keyboard uses composing text.
  • Various other fixes and improvements in voice input, including default language selection.

UI

  • Wolvic now supports downloading new 3D environments online. Access this feature through the "Environment" section in the Settings.
  • A new "Spring" environment is ready for download. Visit our repository at Wolvic 3D Environments on GitHub for updates and suggestions.
  • Enabled starting the app on passthrough mode.
  • Tray date now uses a dynamic format instead of hardcoded values.
  • Small UI improvements to the date/time picker.
  • Pointer's appearance remains consistent when using hands or controllers
  • Unify tooltip sizes across devices

Security

  • Enabled the use of your system's trusted root certificates (fixes issue #489).
  • Added option to clear all user data.

Others

  • Build variants can now use different default homepages.

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