FireHbbTV integrates with Firefox to help you develop HbbTV ( compliant applications.

You can then benefit of strong development tools associated with your favourite browser. Most commonly used HbbTV API are injected on-the-fly on the web page once you activate the plugin support for a given site. Moreover, FireHbbTv provides you with usefull tools such as resize, aspect-ratio switch, safe-area margin display and keyboard navigation miming TV remote control capabilities.

More detailed features list:

  • Javascript HbbTV API injected on-the-fly
  • Most HbbTV specific <object> support (including video, ausio and broadcast)
  • Support of HbbTV specific mime-types
  • 3 different media/broadcast playing backend
  • Customizable channel list, custom stream per channel
  • DSM-CC Stream Event simulation
  • Minimal support of DVB uri
  • Keyboard navigation simulating TV Remote control
  • Smart resize / fullscreen management
  • Aspect-Ratio switching
  • Safe-area margin display
  • ...




Features details


Once you have installed the extension, a new TV button is present in the Firefox bar:

You can manually toggle TV support for a given site by clicking on this button. When a visited site sends specific HbbTV or CE-HTML content-type response headers, the TV support is automatically activated because Firefox cannot handle those pages on its own:

  • application/vnd.hbbtv.xhtml+xml
  • application/ce-html+xml


Once activated, the plugin interface wraps around the page body. The body is assumed to be 1280x720 and the plugin button bar allows you configuring the display and behaviour.

The page is then refreshed and the HbbTV support is injected within the page. Moreover, cross-site XMLHttpRequest is allowed from the page to reproduce common TV security policy implementation.


All navigation is done with the keyboard, simulating a remote control. Details about keyboard shortcuts can be displayed by clicking the "Remote Control" button.

Smart resize/scaling

The display smartly resizes so that the body is entirely visible in the Firefox window. The smart resize/scaling informations are displayed.

Moreover, the aspect ratio button allows to visualize the rendering on TV screen with aspect ratio different from 16:9. You can also chose the scaling policy between : "No scale", "Downscale only", "Upscale only", "Scale to fit". When Firefox is in fullscreen mode, FireHbbtv controls disappears and body is stretched to fit the whole screen.

Safe area margin display

The HbbTV norms recommends displaying usefull page content inside a "safe" area. The "margin display" button materializes this safe area by displaying translucent margins.

TV image

By default the special HbbTV video/broadcast object is displayed with the default logo (as SVG).

You can also choose a different renderer (HTML, Firebreath VLC) for broadcast rendering, depending on the plugins installed (See

For default SVG rendering, you can customize the display of special HbbTV video/broadcast object with the "TV Image" button by choosing a custom image to replace the default logo.

For HTML and Firebreath VLC rendering, you can choose a different stream URL per channel. Erasing the stream URL makes it revert to default stream URL if any. You can configure default streams URL per channel by defining a custom channel list. You can configure any URL that is supported by the plugin. There is just a special syntax addition for Firebreath VLC and dvb-t:// url to allow specifying the program (sid), i.e. dvb-t://frequency=554000000&program=1281

Channel list

You can choose the current channel with the "Channels" combo-box. A default channel list is embedded inside the plugin. You can use your own channel list in the configuration panel.

To see a complete channel list example, just click on the "Default" link to display the embedded channel list. You can add an optional <Stream> element per channel in order to configure the default stream for this channel, i.e.<Stream><Stream>

DSM-CC Stream events

You can simulate the trigger of DSM-CC "Do-it-now" stream events. The video/broadcast object supports the addStreamEventListener() method to register your stream event listeners. To display the stream event panel, just click on the "Stream Events" button

You can trigger those events by filling in the "name" and "data" field of the stream event panel and then click the "Trigger" button.

dvb:// uri

A minimal support for dvb:// is included inside the plugin. You have three ways to use it :

Browsing local files as if they were embedded inside a carousel

  1. Open a file:/// url in a tab and then activate the TV support
  2. You are redirected to a virtual url : dvb://
  3. This allows you to browse local content with TV support

Requesting carousel files with XMLHttpRequest

As specified in the HbbTV norm, you can request DSM-CC carousel with XMLHttpRequest. In order to make it work you first have to choose a local DVB root directory withing the configuration panel. Once chosen, you can make request to DSM-CC carousel.


  • URL : dvb://123.321.253.13/index.html
  • 13 represents the carousel component tag, that means you must have a directory named 13 inside your DVB root directory.
  • For this request to return a status other that "404-Not Found", you must have a file named index.html inside that
  • 13 directory.

DVB ait specifiers

You can also use dvb:// uri with AIT (application information table) specifiers : dvb://current.ait/<orgId>.<appId>


  • URL : dvb://current.ait/2a.1b
In that case, you reference an application whose root url may be either a dvb or http url. You can simulate this behaviour with the plugin by placing a file named 2a.1b inside your DVB root directory. That file must be a plain text one containing either an http:// url or a file:// url. The result of the dvb request is an XML ait.

HbbTV support

You can have an idea of HbbTV specification support by browsing the following HbbTV testsuite :


For any remarks, feature request, bug report or anything else :