Status of Chromium-based Port of Nuvola

As mentioned in the Nuvola 4.9 announcement, most of the energy in the last few months was invested in the Chromium port of Nuvola. This article describes the current status of this ambitious effort: What are the reasons? Does Spotify work? Can Google Play Music and Deezer play without Flash plugin? When can we expect Nuvola with Chromium backend to be released? Continue reading…

Update March 16th, 2018: Nuvola 4.10 Uses Chromium Engine for Spotify, Deezer, YouTube, Mixcloud, and BBC iPlayer to Play Without Flash Plugin

Reasons

The change of a web rendering engine is a significant task, which will slow down the development of new Nuvola features. However, there are several reasons for switching from WebKitGTK+:

ValaCEF Project

WebKitGTK+ provides an excellent high-level GTK-3-based API, which includes Vala bindings and can be readily used in Nuvola. Unfortunately, there is no such API based on Chromium.

For this reason, I created the ValaCEF project, whose goal is to provide WebKitGTK-inspired API for Nuvola. The underlying web rendering library is called Chromium Embedded Framework.

My effort started in September (the initial commit). I managed to build CEF with GTK+ 3 support, but it crashed. I reported the bug upstream hoping to get some help, but I haven’t received any satisfactory response.

In November, I ported the CEF C API example to GTK+ 3 only to find out that my issue was also reproducible there. I filled another bug report and got the very first useful clue — the example worked fine with ancient GTK+ 3.10. Then I spent a lot of time building & testing various GTK+ versions until I found the very first failing commit and developed a workaround two days after that.

The development of ValaCEF is very active since December. In the screenshot, you can see Cefium, which is a demo web browser to develop & test ValaCEF functionality. It uses ValaCEF’s WebView widget, which can be embedded in a GTK+ 3 application such as Nuvola Apps Runtime.

Cefium Browser — a demo web browser to develop & test ValaCEF library for Nuvola Apps Runtime.

Current Status

Spotify works again in Nuvola with the Chromkum-based engine.
  • Deezer can use HTML5 player for audio playback and doesn’t need Flash plugin for that.
Deezer can play without Flash plugin in Nuvola with the Chromium-based engine.
  • Google Play Music can use Media Stream Extension for audio playback and doesn’t need Flash plugin for that.
Google Play Music can play without Flash plugin in Nuvola with the Chromium-based engine.
  • Pepper API Flash plugin is supported. No hacks are required to make the Flash plugin work for streaming services that still require this obsolete technology.

Although there are still several unresolved issues to work on, I believe that Nuvola 4.10 with the Chromium backend for selected streaming services might be released at the end of January 2018. Users with Nuvola Basic/Premium/Patron account will be invited to test development builds soon.

Update January 19th, 2018: All users with Nuvola Basic/Premium/Patron account have already been invited to testing.


Nuvola Contributes to Good Angel Foundation

Jiri Janousek, the core developer of Nuvola Apps project, is glad to contribute a part of the project’s revenue to the Good Angel foundation. This way, he can regularly help families with children, which face financial distress as a result of severe illness. Even small monetary donations can help these families overcome a tough period.

Nuvola contributes to Good Angel Foundation.

Thank You for Your Support

At the time of writing, the awesome people listed bellow and a few others are Nuvola Patrons, who support the development of Nuvola Player. Thank you all!

Andrew Allen, Simon Law, Bart Libert, Bryan Wyatt, Christian Dannie Storgaard, José Antonio Rey, Ryan Wagner, Chris Beeley, David, Andrew Azores, Andrew Kvalheim, Balázs, Ben MacLeod, Martin Wimpress, Duco van Amstel, David Wiczer, Gabriele, Nathan Warkentin.

If you are a Nuvola Patron but your name is not listed, you have to enable the “Show my name and a link to my external profile page in a list of Patrons.” option in your profile settings. Obviously, it is not enabled by default to protect privacy of our patrons.