Skip to content

Instantly share code, notes, and snippets.

@eliasp
Created January 14, 2017 23:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eliasp/28f7f1f1d1db75a3dae0bffccdf507a7 to your computer and use it in GitHub Desktop.
Save eliasp/28f7f1f1d1db75a3dae0bffccdf507a7 to your computer and use it in GitHub Desktop.
Servo GSoC Ideas

DBus interface

Adding a DBus interface would allow a lot of different things on Linux DEs.

Usecases

MPRIS

MPRIS is a standardized interface to control media playback.

Having MPRIS capabilities in a browser would allow for global media playback control, which is already possible with nearly every Linux mediaplayer. Making this possible for media playback in browsers follows the trend of more and more applications/platforms becoming web-based.

  • Pause/continue playback of a video without having to open the browser window and locate the corresponding tab
  • Playlist control for e.g. YouTube or Spotify playlists

The playback control is done through e.g.:

Credential Management

Linux DEs, such as Gnome or KDE Plasma provide a central credentials management (Gnome Keyring, KWallet) which is exposed through the Secret Service interface. This would allow for a unified credential management without creating a secondary data silo within the browser itself.

Download Progress in Tasklist

Show the progress of ongoing up-/downloads in the DEs task list

Global Menu

Allow for integrating with DEs which have a global menu configured

Power Management Inhibition

Signaling the power management service through inhibition mechanisms to disable screensavers/screenlocking/suspend during media playback.

Browser Addons

Creating an API to allow Browser Addons to make use of DBus would provide a lot of possibilities for far more usecases

Security

Accessing the session's DBus services from the browser would probably require some kind of permissions handling (similar to the handling of webcams, microphones etc) to keep the user in control of what the browser is allowed to do.

@Manishearth
Copy link

I feel like this is the kind of capability that an embedder of Servo would support, not Servo itself.

It would be an interesting project to do some of this in Firefox, however. I've wanted MPRIS support in Firefox for a while.

@eliasp
Copy link
Author

eliasp commented Jan 16, 2017

@Manisheart thanks for your comment. I think you're right, this shouldn't be part of Servo as engine itself, but should be provided mostly by the embedder and therefor is out of scope for the GSoC ideas. Servo would still have to provide a few capabilities (e.g. for the MPRIS stuff) to the embedder, but this should be "just minor stuff" and should be taken care of once the embedder is ready providing everything else.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment