Great from user's side, but not from a developer Rated 3 out of 5 stars

OK, you get 3 stars, which is an average of:
5 stars from a user's point of view
1 star from a developer's point of view

[USER]
(+) Very customizable application, and very useful for browsing the net.

On my wishlist there is a "Translate with Google" option, where you can select the text the way one does it with your tool and you can translate foreign text using Google Translate. Of course, GT should operate in source language autodetect mode then.

[DEV]
One word: horrible.
Totally cluttered code, hard to maintain and hard to expand for future versions. Uses 10000 times document.getElementById() in a short sequence, instead of just using a variable and ONCE retrieve the object.

not:
document.getElementById("yourid").setAttribute(a, b);
document.getElementById("yourid").setAttribute(c, d);
document.getElementById("yourid").setAttribute(e, f);

but

var x = document.getElementById("yourid");
if (x == null) return;
x.setAttribute(a,b);
x.setAttribute(c,d);
x.setAttribute(e,f);

Example:
I tried to remove an option I would never need FOR GOOD, by simply editing the .xul file.
I perfectly broke the code that way because:

- there was no checking for object == null in any function
- there were HARDCODED attribute modifications, assuming in 100% of cases that the object were there

After adding null reference checks in the essential functions, I was finally able to customize the app from dev's side.