GNOME developer, Alexander Larsson, is developing a HTML5 gdk backend, codenamed Broadway, that allows user to run Gtk application either remotely or locally inside the web-browser. Each toplevel window is mapped to a canvas element, and the content in the windows is updated by streaming commands over a multipart/x-mixed-replace XMLHttpRequest that uses gzip Content-Encoding to compress the data. Window data is pushed as region copies (for scrolling) and image diffs. Images are sent as data: uris of uncompressed png data. Input is gathered via dom events and sent to the server using websockets. Right now this is Firefox 4 only, but it could be made to work in any browser with websockets.
VIDEO