LTSP Kiosk
Introduction

Basic Setup
Server-side Changes
Client-side Changes
Adding New Clients

Additional Features
Locking FireFox
PDF Support
Background Image
Printing

Advanced Issues
Securing Connection
Client Firewall
Detect Kiosk Idle
Booting Clients Remotely

Tailored Tools

Hacking FireFox for Kiosk Use

Since Mozilla FireFox claims to be (and seemingly is) a modern but relatively lightweight browser it is suitable for kiosk use. FireFox is also quite easy for hacking, since its user interface is realised using XUL. This document explains how FireFox chrome (the part which implements the user interface) can be edited. In kiosk context the "editing" means disabling some features.

Basic Operations

Chrome is located in firefox/chrome. It contains several directories and .jar files. Before editing the .jar files you have to unpack them and afterwards you have to pack them. The files are packed using zip format.

Unpacking:

rm -fR content
unzip [packagename].jar

This creates a directory content which contains subdirectory [packagename].

Packing:

rm [packagename].jar
zip -ry [packagename].jar content/

It is advised to disable the unwanted features by commenting them out <!-- ... -->. This makes it easier to back off if you make mistakes (in case you intend to make them). For XUL documentation see the link section at the bottom of this page.

Main User Interface (browser.jar)

content/browser/browser.xul

  • The file contains XUL of the main user interface. The syntax of the XUL file is easy to understand if you have basic knowledge of XML or HTML.
  • Note: For some reason the menu item File/Go Offline can not be removed, since this disables bookmark functionality

example

Toolkit Interfaces (toolkit.jar)

content/global/printdialog.xul

  • If you want to allow printing, you may want to disable user access to printer selection, settings etc. This file implements the main printer dialog.
  • The undesired functions should be disabled instead of commenting them out. This makes sure that if some part of code tries to read values from the dialog, they are available.

content/mozapps/downloads/unknownContentType.xul
content/mozapps/downloads/editAction.xul

  • These files implement the download actions (whether to save or open the file with an application). You may want to disable the selections e.g. force the user to save all files to /dev/null).

content/mozapps/plugins/pluginInstallerWizard.xul

  • This file implements plugin wizard. You may want to disable this feature.

example

Edit the Profile

Finally, don't forget to edit the menu panes, buttons and for example the location . This information is stored to the profile and can be edited by right-clicking the menu area and selecting desired parts of the UI.

Relevant Documents

Updated: 1-JUN-2005