June 30, 2007

Kiosk Mode with Mozilla and Firefox

Nice writeup on kiosk mode requiring cross-platform support using latest Firefox. Open Kiosk Port to Firefox 2.

Mozdev Group, Inc. : www: /clients/bm/index

Client Profile - Brooklyn Museum

** NEW - Open Kiosk Port to Firefox 2 **

Firefox v,2.0

* Install For Firefox Now! [ June 29, 2007] (Powered by jsLib)

** Administrators: please read the Install as Admin Instructions before installation if you wish to install the Kiosk and run as a limited user. **

Mozilla v,1.7.13

** Please read the INSTRUCTIONS before installation. **

* Install Now! [ April 04, 2007] (Powered by jsLib)

About Brooklyn Museum

Brooklyn Museum Logo The Brooklyn Museum is the second largest art museum in New York City and one of the largest in the United States. One of the premier art institutions in the world, its permanent collection includes more than one and a half million objects, from ancient Egyptian masterpieces to contemporary art, and represents almost every culture. It is housed in a 560,000 square foot, Beaux-Arts building that welcomes approximately half a million visitors each year. Located in Central Brooklyn, a half-hour from midtown Manhattan with its own subway stop, the Museum is set on Eastern Parkway and one block from Grand Army Plaza in a complex of 19th-century parks and gardens that also contains Prospect Park, the Brooklyn Botanic Garden, and the Wildlife Center.
The Task

Our task was to deliver a customized Mozilla browser for a Kiosk, basically a full-screen, locked-down, browser with access to settings disabled. The Kiosk browser would be initially deployed on the Windows platform, but the code had to be as cross-platform as possible for easy porting to other platforms. An XPI package installer would be the preferred distribution option, but a custom Mozilla distribution would be acceptable if necessary.
Kiosk in full screen mode
Figure 1 : Kiosk in full screen mode
The Result

It became clear early on in the project that a custom Mozilla distribution would not be necessary. The browser code base is flexible and powerful enough to be able to build your own fully customised browser using XPFE tools. Thus an XPI package is a much more flexible option for the client, enabling it to be installed on multiple stations in a faster time.

The primary feature of any Kiosk is that the application has to be locked down. Firstly, that there is no access to the operating system and other applications, and secondly that the user can not change any of the browser settings. The former is largely taken care of in this project by the fact that the keyboards in place at the museum do not have the standard keys for moving around on the system. This includes the Tab, Ctrl and Shift keys. So the main development challenge was to remove access to all browser settings, which was achieved with a fully customized user-interface.

Here are just some of the features included in the Museum Kiosk.
Full Screen

The browser has a full-screen mode, without a title bar and mimimize/close icons. This is a staple of any Kiosk environment. There is an option to have true full-screen mode with no UI visible. The advantage of this is that it provides a maximized content vieiwing area and less distraction for users. There is also an option to include a toolbar and/or statusbar in the UI to make available certain functionality, such as navigation (see section - Customizable User-interface)
Administration Settings Dialog

This is a secure, password protected window that the Kiosk administrator launches from the command line to set up the Kiosk browser for a particular station. The settings persist across sessions, and are available to all users logged into the system. A per-system settings system was the preferred option here, as opposed to per-user, to minimize the setup time needed. Features include the setting of the home page, turning on/off tabbed browsing, choosing filters and timers for resetting the station after a period of inactivity.
Customizable User-interface
UI Customization Options
Figure 2 : UI Customization Options

Figure 2 illustrates the UI customization options available to the Kiosk Admin. The radio option offers a choice to show widgets, or hide them which gives you true full-screen mode. If you choose to show, then there are futher options via a list where you can choose which buttons and other items appear. These settings are sticky across sessions until changed by the Kiosk administrator.
Content Filtering

One of the main purposes of many Kiosk environments is to display content on a particular topic or a certain group of topics. Here we had to accommodate this in a Web context, and the best way to achieve it is with a content filter. This takes the form of a flat text file on the filesystem, which has entries in the form of URLs. When this feature is enabled, the list is read by the software, and any time the user tries to access a site not in the list, the request is denied and they are informed with a status message. The filter has 2 modes. STRICT only allows an exact match on a URL. ALL is the second mode, and requires a little more explanation. In ALL mode, the browser will load any page that is in the domain of a particular URL (*.brooklynmuseum.org), or sub-area of a site (www.mozdev.org/docs/).
JavaScript Filtering

Complimentary to the content filter is a special request for turning JavaScript ON/OFF on a per site basis. When enabled, each request loaded into the browser will pass through the filter (a similar URL filter to the content one), and if there is not a match the request will still load but JavaScript will be turned off. No script will execute on that page, including onload handlers, onclick events and DHTML.
Command-line Handling

The Kiosk comes packaged with various command line options including:

* mozilla -kiosk : Launch the Kiosk in full screen mode
* mozilla -kiosk mode=title : Launch the Kiosk with a titlebar
* mozilla -kiosk about : Launch the About window
* mozilla -kiosk admin : Launch the Admin Settings window

Session Reset

Session Reset Alert The functionality is available to reset the Kiosk session, either via a button accessible to users, or an automatic timer which kicks in after a certain period of inactivity. What does resetting the session mean? What happens is that the browser returns to the homepage, cookies set during the session are deleted, memory cache is cleared (disk cache is always off), and the session history is deleted. Essentially, any trace of a previous session is eliminated. The option to turn on the reset timer, and the period in minutes before it does, are both available to be configured.

About Window

The Kiosk is by design almost free of branding, yet there are 2 options for identification. An optional banner above the toolbar, and an About window. The About window gives versioning and build information that is valuable for feature tracking and updates.

Posted by staff at June 30, 2007 10:08 AM