Mozilla Software Development

Client Profile - Brooklyn Museum

About Brooklyn Museum

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.

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.

Features

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

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

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.