Okay, I simply had to write a new post about this because I’m way too excited about it.
Yeah well, a little backstory first– I’ve been hunting for an alternative to Mozilla Gecko to power NaviLibrary (it’s a little noodle I wrote that allows people to embed web content within their 3D applications). I wanted something that was a little faster, a little smaller, and cross-platform. WebKit seemed like a great choice– it had coherent API, strong developer base, and wasn’t as bloaty as Gecko– until I realized that it linked to some proprietary/non-redistributable stuff (CoreGraphics and CFNetwork dependencies made it off-limits for OSS library experiments).
I was keeping track of the WebKit Cairo port, hoping that it would someday fulfill my needs, when out of nowhere– Google Chrome was instantiated. The browser is kick-ass and will surely bring about a new Age of the Internet but when I heard they were using WebKit, I realized there was something way awesome-er about this news. Sure enough, they had made their own cross-platform port of WebKit and replaced the proprietary dependencies with some even cooler things (such as Skia for graphics and their game-changing V8 Javascript engine). I knew what I had to do.
I got the source and spent several days absorbing all I could about their codebase, its API, the linkage, etc. What I aimed to achieve was this: extract their port of WebKit (V8, Skia, and all), wrap it up into another library (specifically for use in a window-less context), and create an application that could load up a webpage and render it to memory.
After much finoodling (and 2000 unresolved externals later), I’ve accomplished phase 1 of my project ‘Awesomum’ (which is “omg, I was able to load a page and render it without crashing!”):
The API that Google put together is really quite kick-ass– it’s got support for injection of mouse/keyboard events, Javascript evaluation, invalidation callbacks, navigation callbacks, and best of all, it lets us do off-screen, selective rendering. I really can’t wait to finish wrapping this up completely and start playing around with it.
I’m running into a few problems with certain content right now (I’m still trying to fully replicate the correct initialization of the core)– but I’ve definitely made some tangible progress. I’ll keep yall posted with more as it happens~!

8 Comments
I can’t wait to see some benchmarks for speed. Seeing as one of Google’s goals with Chrome is speed, I would imagine it would be a lot faster than the current Navi.
I will be watching the development of this one for sure
I can’t wait to try out the brand new
Awesomium. I love Navi, the library that you developed. Awesomium will be a major breakthrough if it can get a small foot print and make flash working with mouse and keyboard input. Keep up the good work and good luck to all your efforts.
Awesome! Keep us updated, I’m very interested in this as well.
The only things I’m really interested include faster Javascript and Flash support. Those two features might make me switch to Google Chrome even though we’re heavily using Astral/Mozilla at the moment.
Excellent! Looking forward to seeing the new Navi (and perhaps seeing it wrapped in PythonOgre, which is what I’m doing most of my development in now).
This is awesomeness
Please keep us up to date on your work!
I just discovered Navi today – I could really use a cross-platform version and any additional Flash input support would be great. Please let us know if either of these becomes practical, even if it’s a prediction for the future!
Thanks
I’ve wandered into an unknown cave, and I’m the nOOb.
Help the nOOb!
Why do you need an off screen browser?
I want to embed chrome, but so I can do chromeless thin AJAX clients.
Is this for me? If not, what?
Many thanks
Size?
How small or big is this thing.
I can’t wait to see what you did.