Digg!-
x -

News


Grid Monkey time (again)

Posted March 14th 2007

It only seems like yesterday since I posted about my fast approaching grid monkey duty - it must have been 4 months or so though because my rotation starts again next week. Anyways. Even though I manage to reply to about 50 emails a week relating to uBrowser, I'm still awful at updating this site. I'd like to share the load.. I mean joy of discussing this stuff so I created a Google group here for people to discuss anything that's related to uBrowser, LLMozlib - even Linden Lab and Second Life if you like. Please go ahead and post your questions and observations and I'll do my best to answer them. Please jump in and help if you know the answer. Cheers everybody and please join me in wishing the very best for our lads in the cricket world cup :)

Grid Monkey time

Posted November 20th 2006

All of us devs at Linden Lab get the pleasure of looking after the grid of computers that runs Second Life - all 3000 or so of them and this week is my turn. Depending on what's happening with the grid this can either be great fun or more misersable than Leicester on a wet rainy day. At the moment it's not fun and since I'm on duty 24 hours a day until next Monday, I'm not going to get time to respond to all the email I receive so apologies in advance. Happy Thanksgiving everyone - eat some turkey for me...

Something else added to the list...

Posted November 10th 2006

I added another entry to the list of outstanding issues - proxy support this time. It seems like proxys are more widespread than I thought - I've had a lot of requests for this recently.

Something added to the list...

Posted November 8th 2006

I added a note about cookie support to the list of outstanding issues. I'd like to find out why sites that use cookies don't work (the cookies aren't saved between sessions). I'd also like to be able to read/write cookies manually from code. I figured out how to get the cookie manager (nsICookieManager) and it looks like you can iterate over that to get a list of stored cookies but I don't see anything about creating your own. If anyone knows how to do this, please me let me know. Me goes back to fixing Second Life bugs...

A new version!

Posted November 7th 2006

I released an updated version of my code today and you'll notice that things have changed a lot. There is still an application called uBrowser but it can now be considered to be a test app for the new library that does all the work - LLMozLib. This consists of a single C++ header file and a single small library (release and debug versions). It allows you to create embedding applications more easily (some would say) than using the native Mozilla code that it wraps. The other big change is support for multiple simultaneous browser windows and a mechanism that only updates a page when something changes. The performance improvement over the original version that always updated everything at 15Hz is enormous. I've built this version with a LibXUL build of the "latest" released Mozilla source - 1.8.1 - the one that Firefox 2.0 is built from. There are also a large number of tweaks, fixes and improvements.

Whilst this code is much improved and adds features essential for moving forward with the Second Life client integration, there is still a lot to do. Please visit the outstanding issues page and fix something if you can.

The code is now licensed under the Mozilla tri-license. Please read that page carefully if you have any questions about using this code in your own applications.

The uBrowser application has been changed to take advantage of these new features. The default geometry is a cube and each face has a different browser on it - all independently interactive. Because of the improved updating, it also run a lot more smoothly. There is a simple OpenGL app (testGL) that displays a single page on a single texture. It uses OpenGL orthographic coordinates so mouse picking is easy. It's much less complex than uBrowser and would be a good place to start developing your own application. Lastly, there is a command line based screen grab application called screenGrab. You can use it to grab any page at any resolution (system resources permitting). For instance, Google News looks quite good when grabbed at 800 x 4000 pixels. Details of how to use these applications can be found here.

I did intend to give the Web site a facelift too but after spending far too long editing the text, all I managed to do was change the logo. I would like to move this to a blog one day so I can start discussions and reply more easily to questions. I was up all night last night finishing the code :) so if you spot any typos, please let me know.

I will try to update the site more often - please let me know if you'd like to help or if you do something interesting with LLMozLib or uBrowser.

An update!

Posted June 7th 2006

I'll be out of touch for a couple of weeks so you may notice less frequent site updates. Oh wait... :) Apologies for the lack of anything much at all recently. I try to reply immediately to any emails I get but I just haven't had the time roll the research I've been doing out of my sandbox and into the uBrowser code. Once I'm back, I should have more time to spend on it.

Traffic

Posted February 24th 2006

So not long after I posted a message saying how completely superb my hosting provider was, they evidently starting having network issues and the site was unavailable for an hour or so. Quite a coincidence! They're still superb though - let me know immediately and fixed the problem rapidly. Apologies for any down time.

Green Screen

Posted February 24th 2006

I've seen a few reports of green, corrupted textures and very slow rendering. I haven't been able to reproduce this on any of the different systems/graphics cards I've tried. If anyone does have a repro and would like to help me fix it, please let me know. It may be something to do with the 32bit desktop color depth requirement because of the way I do picking. I hope not - doing that with geometry / maths will be much harder than with colors.

Update: it sounds like an OpenGL Z-buffer issue. The picking algorithm I use means I draw the geometry several times. Once with a manually generated red/blue texture, once with a repeated green texture and then once with the browser texture. The end result is 12 bits (0 to 4095) of resolution in each direction and it works on anything I can texture - perfect for this demo although it does need a 24/32 bit desktop resolution to work. I don't clear the frame buffer after drawing the green texture which is probably why green texels are leaking through when the card runs out of Z resolution. I may also have made the near/far clip planes too large. It probably happens more on laptops than it does on desktop systems. If anyone from Alienware, Lenovo or Dell want to send me one to test on, I'm sure that would help :) Once I get a solid repro and can prove that this is what's happening, I'll update everything.

Update 2 Andrew Roazen was seeing the same issues and contacted me. I had a fix in the pipeline but he discovered that updating his video drivers fixed the problem for him. Thanks for the help Andrew. If anyone else still has the problem and it's not fixed by updating drivers, please contact me.

Traffic

Posted February 24th 2006

There has been a great deal of traffic recently and lots of good feedback so thank you. The good news is my hosting provider held up remarkably well - even during the Digg, Der Spiegel and Fark onslaughts when I thought my server would get crushed. I highly recommend them for lots of reasons. For instance, it makes a nice change to get a response from tech support in minutes instead of days :)

The beginnings of new window support and a crash fix

Posted February 21st 2006

I made some non-trivial updates to the source today which mostly involved breaking the 'browser chrome window' code back out into its own class. This needed to be done for 2 reasons. Firstly, it's required for the work to allow new windows to open - something that's going to be essential for the Second Life work. Secondly, some over zealous refactoring on my part where I folded this class into the main browser implementation was just wrong in lots of ways and resulted in a crash on exit if you cleaned things up. Astonishing how dense I can be sometimes...

Mozilla blogs

Posted February 21st 2006

I always enjoy reading the Mozilla developer blogs - roc and vlad in particular. Sounds like their doing some great work on the Cairo builds - something that I assume will ultimately lead to an OpenGL accelerated version via Glitz. Hopefully they won't go too quickly and make all this a waste of time :)

<canvas> tag support

Posted February 19th 2006

I turned on the option in .mozconfig to enable the <canvas> tag for version 1.0.4. See the "How to build" page for details. I couldn't get it to work initially but a full rebuild seemed to do the trick. I tried it with Canvascape - there is a screenshot here.

Yahoo User Interface Library

Posted February 19th 2006

Yahoo released their User Interface Library - "a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, HTML and AJAX." - cool stuff and might be useful in conjunction with uBrowser for making UI in 3d application - I dropped in a screenshot here.

Small project configuration file change

Posted February 13th 2006

Thanks to Second Life resident Vince Plunkett, the debug build doesn't crash on startup anymore. He discovered the reason and submitted a fix which I've added to the source archive on the downloads page. There was a slight discrepancy in the use of the DEBUG preprocessor symbol in the nsIPresShell interface which breaks things when a build doesn't define this symbol. My fault and I should've spotted this earlier but it will make debugging a little easier now. Great job Vince - say hello and give him something really valuable if you see him in world :)

Small configuration file change

Posted February 8th 2006

I made a change to the file: greprefs/all.js - form submission now works properly (from the Google home page for example). Thanks to Thomas Kerwin for taking the time to write in and ask about it. New download available or you can edit the file yourself as described in the "How to build" page.

You've been Digg'd

Posted February 8th 2006

It appears that the site made it to Digg - it's been on the front page for quite some time now. I figured the site would get crushed if it made it to a site like this but it seems to be okay - so that's why is costs me so much money each month :) Lots of comments too - my favorite is "im surprised someone went to the trouble of coding this..." :)

Announced!

Posted February 8th 2006

I opened up the site today. Source and executable downloads available. Screenshots and fairly detailed build instructions. Go play and make cool stuff with it.

XUL is 'cuul'

Posted February 7th 2006

Did I mention how cool XUL is yet? Okay - I did - but it's really great and I hope we can make use of it in our application for creating of user interface. There are lots of issues to resolve before we get to that stage but it's certainly something to consider.

Resizing bug

Posted February 7th 2006

Working on a resizing bug today. Up to this point, I've only been using powers of 2 for the size of the browser window as well as the size of the OpenGL texture. This makes everything a lot easier. One of the things we'll need in our client is the ability to resize the browser to any dimensions - just like Firefox® so I have a little work to do. My approach is to create an OpenGL texture that is the next power of 2 larger in each dimension that the requested browser size. This avoids having to use any of the OpenGL extensions. Then I scale the texture to fit the geometry in hardware using OpenGL. I think it's mostly there - just some initialization code to finish up tomorrow.

DHTML Lemmings®

Posted February 1st 2006

Saw this ages ago and went to find it again - Lemmings used to be my favorite game and to see it rendered in DHTML on a flag in 3D. Well... it makes ones' knees go weak...

Getting close

Posted February 6th 2006

Almost at the point where I have something worth releasing. Just need to update this site with new build instructions and some new details on how to use the app. Less than 50 days after we reached 100K users, now we have 134,000 or so - things seem to be heating up.

Happy New Year

Posted January 14th 2006

I was hoping to come back and tie things up but after talking to various people, it seems like I should think about porting what I've done over to use a 'LibXUL' build of the Mozilla code instead of a 'browser' build. Urgh! I'm sure it's for the best and makes sense but since I'm doing this work in the evenings after my day job is over, I'm running out of steam a bit. Sounds like it'll be for the best though. Those episodes of Little Britain will have to wait :)

Postponed for the holidays

Posted December 16th 2005

We just passed 100,000 users - quite an achievement and something to be very proud of - onward and upward to a million (just don't tell ops because they'll cry)

Postponed for the holidays

Posted December 19th 2005

I've got a little more work to do and it didn't seem sensible to release things just before I leave for some traveling. I'll be gone for 3 weeks and back early in the New Year.

Things go live

Posted December 13th 2005

The site is probably going live today. Hopefully the example code will prove useful to someone. Don't forget to let me know if you use it and especially if you build an interesting application yourself that is based on it.