webXkioskII

Copyright 2004-2012, NC State University
Refer to the Info dialog for license information.

Authors:
Hua Ying Ling - Code, design, and implementation.
Everette Gray Allen - Concept, direction, testing and documentation.
Doug Steigerwald - Preferences interface, sheets, video embed, and bug fixes.
Ilan Gerald Volow -   Show Toolbar and bug fixes.

Email:
help@ncsu.edu

URL:
Installer -
http://www.ncsu.edu/mac/downloads/webXkioskII.zip
Source - http://www.ncsu.edu/mac/downloads/webXkioskII.src.zip
License - http://www.ncsu.edu/mac/software/license.html
LaunchDaemon Example - http://www.ncsu.edu/mac/downloads/webXkiosk.keepalive.zip

Introduction

webXkioskII is a full screen, web kiosk application with security features.  This application can be used to create public information and/or web kiosks. webXkioskII is meant to be deployed in a secured environment where it is automatically launched for a managed user.  See deployment tips below for suggestions on how to build a web kiosk. This free software is released under a BSD type License and the source code is available upon request.

Requirements
MacOS X 10.6+.  webXkioskII will not work on earlier versions of MacOS X due to changes in the way full screen works.  There is an older verion available as webXkiosk.app at http://www.ncsu.edu/mac/downloads/webXkiosk.zip that may work as long as Apple's WebKit frameworks (install Safari to get these) are installed but has not been tested.  There is no version for MacOS 9 and there never will be.
There never will be a port to any other operating system.

Install
1) Put webXkioskII.app in /Applications
2) Run the application and then press command and k keys at the same time
3) Leave the password blank and select the Preferences button to configure as desired.
4) Change the password!

Features

* Printing -the Show Print Button - shows or hides the print button in the tool bar, allowing printing or not.
* Start Over -the Start Over Button - returns to the default url clearing all history, cache and sessions.
* Automatic Start Over Time -a preference setting in seconds that returns to the default url clearing all history, cache and sessions.

Configuration
Press the command key and k key together, then enter the password ( there is no default password and you should change this!) and click Preferences button to get to the preferences sheet to configure webXkioskII.
The acutal configuration file is in ~/Library/Preferences/edu.ncsu.webXkiosk.plist
webXkioskII contains a manifest so it can be managed with MCX or managed profiles.

Here are the keys from the preferences file for reference:

authPW - The password used to unlock the Preferences, Quit, or Logout.  Default value is blank.
showBack   - Shows the Back button in the Tool Bar.  Deault: true
showForward    - Shows the Forward button in the Tool Bar.  Deault:true
showHome    - Shows the Home button in the Tool Bar.  Deault:true
showInfo    - Shows the Info button in the Tool Bar.  Deault:true
showPrint   - Shows the Print button in the Tool Bar.  Deault: true
showReload    - Shows the Reload button in the Tool Bar.  Deault:true
showStartOver    - Shows the Start Over button in the Tool Bar.  Deault:true
showStop    - Shows the Stop button in the Tool Bar.  Deault:true
showTextSize    - Shows the Larger/Smaller Text button in the Tool Bar.  Deault:true
showToolBar   - Shows the Tool Bar. If this is not checked button settings do not matter.  Deault: true
showURL    - Shows the a static text of the current url in the Tool Bar.  Deault:true
showURLBox    - Shows a box in the Tool Bar to allow the user to type in any url desired and display the page.  Deault:true
signMode   -changes to full screen mode with no end user controls visible.  Used to create "billboards"based on web pages. Default: false
startOverTime    - sets the time when the page displayed changes back to the initial url and all caches are cleared.  Default: 420 seconds (7 minutes)
webLoc    - sets the url to show on launch and when the Home or Start Over buttons are pressed.  Default: http://www.apple.com/

Known Issues

1) The password is stored in the clear in the preferences file.

2) Pop-up windows do not work.  There is no pop-up blocker in webXkioskII but by nature of taking over the entire screen the pop-ups have no where to display.  A nasty side effect is that some new window and resize window calls may reduce and skew the size and location of the viewable area.  We make some attempt to repair this when pressing the Start Over button but some times only a quit and relaunch of webXkioskII will fix the problem.

3) Some javascript functions do not seem to work in WebKit applications.  Of note window.print does not work.

4) Prefences dialog will  sometimes not save string and number values until the cursor is moved to another field.


Deployment tips

I)   A kiosk environment with 10.6+
Many of the features in  webXkioskII are taken from those suggested by Apple in developer tech. note 2062 (https://developer.apple.com/library/mac/#technotes/tn2062/_index.html).  This is especially true of the security aspects where we use the SystemUIMode  and NSFullScreen APIs.  An important configuration which must be made outside webXkioskII for security is to replace the Finder using the defaults system (See section II below).  The authors have deployed 20+ kiosk for about 2 years now using earlier versions of this software.  Our environment is  set up as follows.
a) Format and install MacOS X 10.6+ with customization. Uncheck everything except the languages you want and the BSD subsystem.
b) Create an initial administrative account, call it what you like.  Make a password that is secure (min. 5 letters, 2 numbers and a punctuation kind of thing).  Also create an standard or managed account , we call ours kiosk.  Do give the standard account a password.
c) Do all software updates.
d) As the admin remove everything you can from applications except terminal.
e) Make sure you install any Internet Plug-ins you want.  We add a pdf and word plug-in as we have content in these formats.  Remember webXkioskII owns the screen for security reasons so if it is not displayed in-line the user will never see it.
f) Install webXkioskII from http//www.ncsu.edu/mac/software/webXkiosk.html.
g) Edit Preferences to change the password, defaultURL, etc to suite your site.
h) Set a default printer if you are supporting print.  Remember to do this from kiosk NOT as the administrator account.
i) Set webXkioskII as a startup item for the user kiosk by adding it to the Login Items in the Accounts or Users&Groups(10.7) System Preference Panel.
j)Optionally use terminal to secure the dock from kiosk with the unix command:
chmod -R o-rwx /System/Library/CoreServices/Dock.app
k) Set the machine to autologin as kiosk
l) Set the EFI password per https://developer.apple.com/library/mac/#technotes/tn2062/_index.html#//apple_ref/doc/uid/DTS10003090-CH1-SECTION5
m) To avoid the crash reporter screen issue the following command in the Terminal:
defaults write com.apple.CrashReporter DialogType server
n) Reboot and test.
0) When the configuration is correct we suggest cloning using asr, disk utility, or a third party tool like Carbon Copy Cloner (www.bombich.com).

II) Remote Management
If you have several kiosk we suggest you enable one or two ways to manage them without visiting each one.   We use Apple Remote Desktop (ARD).  Both these services need to be enabled in the Sharing system preferences before imaging.  In the past we have used Timbuktu, NetOctopus and VNC as well so choose what you like and works best in your environment.

III) Screen Saver Banners
We have run "banner ads" on the kiosk for lab closings, etc. by using the netscape client pull feature supported by the webkit.  Any web page can be made to client pull by adding the following line to the html code:
META HTTP-EQUIV="Refresh" CONTENT="30; URL=whatever.html "     Note don't forget to enclose this in <>.  This code would pull the relative url whatever.html from the server the current page came from in 30 seconds.

EGA 10222004
Updated 02292012