iRex designed a mobile device, the iRex Digital Reader, pairing the GNOME mobile software suite with an electronic paper (e-ink) display. The Digital Reader is more than just an ebook reader; it lets the user read and annotate many kinds of documents, including webpages. So the device needed a web browser, but none was quite up to the task.
Collabora contracted with iRex to provide a file and web browser. After reviewing multiple options, Collabora decided to develop a solution based on WebKit, an open source web browser engine. Collabora developer Gustavo Noronha explains, "WebKit was designed from scratch so that it would be able to run on embedded devices." Using this architecture, Collabora was able to serve iRex's needs without wasteful duplication of existing code. As part of Collabora's ongoing commitment and support of the GTK+ port of WebKit, Collabora added an on-disk cache for better performance, pop-up blocking, download, zoom, MHTML file save to improve offline functionality, and other features to WebKit GTK.
The Digital Reader's special e-paper display led to new challenges. To adapt WebKit to electronic ink displays, and to reduce eyestrain and power usage, Collabora's developers added code to reduce the number of refreshes, allow a book-like page by page view of web pages, and show useful and meaningful placeholders instead of animated content.
Collabora developer Marco Barisione gave a talk on the iRex project at FOSDEM in February 2009. You can download his presentation slides.
And you can download code from this project here: