Chromeless is a project to make it possible to build desktop apps with web technologies, and today Chromeless 0.2 is available which has more features and bug-fixes than you can shake a stick at.
This post will give you a whirlwind tour of the new and shiny, as well as providing a little insight into changes in the development flow of the project.
An Ultra-Modern Rendering Engine
Chromeless has now been updated to use the same stable rendering engine used by Firefox 4.0 which is full of HTML5 awesome. A key thing that makes building on Chromeless so delightful is it gives you a platform where you have guaranteed access to the latest web innovations, including things like WebM, multitouch support, content hardware acceleration, and JavaScript 1.8.5.
Application Packaging
After you build your application using Chromeless, it’s now possible to generate a standalone package that others can install. The appify command will allow you to combine the Chromeless platform with your application code to generate a standalone redistributable version of your app. More details about this feature are available in the documentation.
Menus and Key-bindings
An application may now specify and manipulate its application menus from javascript using the new menu API contributed by Mike De Boer. This library makes it trivial to define your application’s menus with hierarchical javascript objects, and to specify javascript callbacks that should be invoked when the user selects a menu item.
Improved Embedding of Web Content
The web-content library gives application code a privileged view into embedded web content. This includes the ProgressMonitor which provides a granular way to monitor the loading of content, as well as tools for injecting functions into content’s scope. This simple feature opens up interesting possibilities for rapidly prototyping new browser APIs and behaviors.
A Fancy Documentation System
If you’ve clicked through some of the links above you probably have gotten a good feel for the new documentation system. In addition to supporting in-source markdown formatted documentation, the system keeps highlighted source in github one click away. By making it easier for contributors to document their work, and easier for users to review code, the hope is that we’ll rapidly shape up the docs to make discovering and using platform features fast and fun.
And A Whole Lot More…
Additionally, there have been tons of API additions, refinements, and new toys contributed by some wonderful folks:
- Marcio Galli has put together example code for how to supporting drag-in and drag out of your Chromeless apps.
- An experimental test framework can perform automated high level platform testing.
- favicon access is now wrapped up in a simple to use library.
- A new mime guessing library and lets you get a probable mime type given a file path.
- Mike De Boer has upgraded the console.log() function to support object introspection.
- The high level request API has been ported from the addon-sdk project to afford simplified web requests
- Mike De Boer and Alexandre Poirot have contributed code and design to refine Chromeless’s support for file system access.
- Icon, title, and initial behaviors of your app can now be controlled with a JSON metadata file.
- You can now inspect and modify Chromeless’s cookies store using the cookie API, contributed by David Murdoch.
- Explore apps built on top of chromeless referenced in the in-tree gallery.
Next up: more releases!
Many folks have noted that there haven’t been any Chromeless releases for too long, and they’re right. While 0.2 was a monster release where much foundational work took place, moving forward it’s clear that the project needs to be much more nimble. With more frequent releases of smaller scope we hope to provide faster fixes and easier porting to changed APIs. To that end, you can review and comment on the planned 0.3 release in github.
Finally, thanks to all who have rolled up their sleeves. It’s inspiring to be a part of a project with such an active and vibrant community of contributors.
We look forward to your feedback on this release in the mozilla labs group.