WebKit 0.9.1 Release Notes

WebKit version 0.9.1 released on 04/23/06

New Features

Added new methods writeMetaData() and
writeJavaScript() to the Page class
that will be called by writeHeadParts().

The Examples context has now a servlet AjaxSuggest
demonstrating the use of Ajax with Webware for Python.
A baseclass AjaxPage and the necessary JavaScript
supporting these techniques are also included in the Examples context.
(Thanks to John Dickinson and Robert Forkel.)

Improvements and Refinements

The auto reloading app server used the ImportSpy module
to keep track of which modules have been imported. ImportSpy
was based on the old ihooks module which could raise problems
with other incompatible importing mechanisms like Cheetah templates or when
using zipped Python eggs. This problem has been tackled from two sides,
first by replacing ihooks with new (PEP 302) import hooks if available (they
were implemented in Python 2.3), and second by allowing to suppress the use
of ImportSpy completely by setting UseImportSpy
to False in AppServer.config.
In this case, sys.modules will be polled regularly.
The ImportSpy module now contains only the import hooks,
the rest of the functionality for tracking and managing concurrent import
has been sourced out to the new ImportManager module.

The start script for RedHat/Fedora Linux has been improved. A timing issue
with the "restart" option has been solved (reported by Mike Trisko).

A __contains__ method has been defined for session objects,
so code like "if key in session" works as expected.
As an aside, we could get complete dictionary functionality by
defining keys and subclassing python's DictMixin.
Also, consider sessions with timeout zero to be expired. (Ken Lalonde)

will pass the incoming HTTP header Foo, if present,
through to the AppServer. Servlets can retrieve the value like this:

v = self.request().environ().get('Foo')

This generalizes the If-Modified-Since hack.
You can use this, for example, to to pass Pound's "X-Forwarded-For" header
through, which contains the real client IP address, in order to be logged
by your WebKit application. Other minor changes (all by Ken Lalonde):

Debug logging is compiled out by default.

Real errors are logged as such, not at level debug (and so invisible).