Nuvola 4.6 Adds BBC iPlayer, Faster Start-Up, Upgraded WebKitGTK, and Media Source Extension

Nuvola 4.6 is the sixth release of the current rolling series. Most changes happened under the hood to improve stability and start-up time. WebKitGTK+ library was updated to the latest stable release fixing security vulnerabilities and rendering issues. Media Source Extension is now enabled in the stable branch and used by the new web app script — BBC iPlayer by Andrew Stubbs.

In order to install Nuvola for the firs time, follow instructions on Nuvola Apps Repository Index. In order to update your flatpak builds, use GNOME Software with flatpak plugin or run flatpak update --system && flatpak update --user in terminal (without sudo).

Media Source Extension and BBC iPlayer

Media Source Extension (MSE) is a technology which is used by many multimedia streaming web apps to replace Flash plugin for audio/video playback. Unfortunately, this feature still considered as experimental in WebKitGTK+ and is not included in the default build configuration used by most distributions. However, the genuine flatpak builds of Nuvola use a custom WebKitGTK build that does include support for MSE and it can then be turned on by each web app script.

At present, only BBC iPlayer script turns Media Source Extension on in order to let you choose between BBC HTML5 Player and BBC Flash Player. Google Play Music is the next target to be switched to MSE.

We use two different media players on the web to deliver BBC content — a Flash player and an HTML5 player. Your browser will normally select the most appropriate for the device you are on, but you can choose a different default on this page.
The Flash player is the more established of our players and can play back all BBC content. By contrast, the HTML5 player is newer and some content is not available to it yet, such as web-only sports events and music festivals.
BBC HTML5 Player info
BBC iPlayer script by Andrew Stubbs.

Faster Start-Up and Single Error Dialog

Nuvola performs a few system checks on start-up to detect common issues:

  • Format support: Flash plugin, HTML5 Audio, MP3 codec, Media Source Extension.
  • Graphic Drivers: Issues with OpenGL, VA-API and VDPAU.
  • Desktop integration: Nuvola service and XDG Desktop portal.

These checks were usually added one by one when the need arose and each check produced its own warning (either error dialog or info bar). Nuvola 4.6 runs most of the checks in parallel to reduce start-up time and there is now only a single error dialog, which provides an overall summary. If everything is ok, this dialog closes automatically and a web app is started.

An example of an error dialog for the start-up check.

Full Changelog

Nuvola 4.6 was released on July 29, 2017.

New Features

  • Start-up system checks run in parallel to decrease start-up time. In case of any problem, only a single dialog is shown instead of multiple error dialogs or info bars.
  • WebKitGTK+ was upgraded to 2.16.6 fixing many security vulnerabilities and rendering issue.
  • Media Source Extension (MSE) is enabled in WebKitGTK as well as in Nuvola itself. This applies only to the genuine flatpak builds of Nuvola. MSE is required by some web apps for Flash-free audio/video playback.
  • New web app: BBC iPlayer by Andrew Stubbs. Note that this script requires MSE and may not work with third-party builds of Nuvola. Issue: tiliado/nuvolaruntime#321

Bug fixes

News for Script Maintainers

  • Developer sidebar can now change track rating.
  • Media player API documentation was updated with track rating.

Under the Hood

  • New dependency: unit.js 2.0.0 (installed as /usr/share/javascript/unitjs/unit.js) is used for JavaScript unit tests (included in the test service
  • web_apps/test subdirectory).
  • Added support for org.gnome.SettingsDaemon.MediaKeys D-Bus name. Upstream ticket.
  • The content of format support dialog was moved to Preferences dialog and various toggles were removed.
  • The content of bindings, models and interfaces directories was merged into components directory.

Nuvola SDK 4.6.0

  • genmakefile: Add -link suffix to compat symlinks to workaround Debian not being able to replace a directory with a symlink. Issue: tiliado/nuvolaruntime#362
  • dbus launcher: Rename Diorite to Drt.
  • Added version info — nuvolasdk.VERSION.
  • genmakefile: It is possible to specify required Nuvola SDK version.

Diorite 4.6.0

  • Namespaces have been united: Drt for Diorite and Drtdb for Diorite DB.
  • Added utils to interact with GLib event loop (Drt.EventLoop).
  • Added workaround for extra Variant unref in ApiNotifications (Drt.ApiChannel.(un)subscribe).
  • Added methods to (un)subscribe for ApiNotifications.
  • Added CSS style classes for badges (Drt.Css.BADGE_*).
  • Added various utility functions (Drt.Time.get_unix_time_now_utc, Drt.String.concat, Drt.String.append, Drt.variant_dump, Drt.variant_ref, Drt.variant_unref).
  • ApplicationWindow.app field is now protected (private previously).

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 and have access to Nuvola Apps 4.x Rolling Releases (cross-distribution flatpak packages). Thank you all!

Andrew Allen, Bart Libert, Simon Law, Bryan Wyatt, José Antonio Rey, Christian Dannie Storgaard, Ryan Wagner, Chris Beeley, Andrew Azores, David, Andrew Kvalheim, Balázs, Ben MacLeod, Duco van Amstel, David Wiczer, Martin Wimpress, 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.