fixing the web

My father E-mailed me two days ago about a site that wasn't shown well in Opera. My sister complained yesterday that she couldn't file an Icelandic tax return with Opera 8.

It's quite fun to see the whole family join in the hunt for sites that fail in Opera 🙂 . But the problem itself isn't remotely funny, broken sites are a serious annoyance.

We have worked for years on making Opera better at rendering bad code. Why are so many sites still failing in Opera while working in Internet Explorer?

Many sites fail because they see the name "Opera" and disable their features. The tax man was taking a more elaborate approach – must be an occupational hazard – they disabled their site because they were expecting to see the word Opera and the number 7. Opera 8 is of course an even better browser than 7, and I'd expect some arithmetic skills from a tax man, but no joy.. Perhaps we should have launched Opera 7+14.28% to be compliant with the Icelandic tax office's website?

There is no such single change that could fix the sites that fail today.. except perhaps not reporting the name "Opera". And to make matters even more complicated, many sites detect the name "Opera" and send us better code. If we stopped sending the name "Opera" to sites, it would fix most of the currently broken ones – and break many of the currently working ones..

Starting with Opera 8.01, we have a brand new tool for fixing broken sites: Opera will do a weekly update check, and if set to do so among other things fetch a JavaScript file containing instructions on how to patch specific pages and scripts.

That's right: now we're fixing the web. Every week, I'm putting together a list of fixes that make sites work better. The User JavaScript – based functionality gives me a lot of power over broken scripts.

For example: never worked with Opera. We have repeatedly contacted them about the simple change that would make it work. Since they never solved the problem..I've just done so. And if the tax man wants to see Opera 7+14.28% – well, that's not a problem anymore either!

Some questions and answers about the new functionality:

Q: How do I turn it on?

A: It is off by default because it is an experimental feature, but we appreciate feedback from technically minded users. To enable it, open your Opera6.ini – file in your profile folder and add

Browser JavaScript=1

below [User Prefs]. Then choose "Help > Check for new release" to get the latest version of the script.

Q: Does this compromise my privacy?

A: No, Opera does not tell us what sites you visit. The same list of fixes is sent to everyone running a specific version of Opera.

Q: Must I keep upgrading Opera to get the latest fixes?

A: Version 8.01 and above will install new fixes automatically without you having to do anything.

In the future, some fixes may only be issued for the very latest version. Opera will always tell you when a new version is available.

Q: Does Opera really change a site before showing it to the user? Aren't there any copyright- or legal problems with that?

A: Every browser tries to work with the bad code on the net. This is just one more way we try to show the site as the webmaster intends it.

Q: I'm a webmaster. Can I prevent Opera from patching my site?

A: Yes, if it is Opera-compatible in the first place there is no need to patch it 🙂 .

If you want to discuss a patch that is being applied you can contact us, through the browser.js documentation page.

Q: I know a broken site. How can I ask you to fix it?

A: Do the following

1) Go to the page in Opera

2) Choose "Help > Report site problem"

That's it. We review these reports for problems that can be fixed. I can't promise an instant fix but we'll do our best.


9 thoughts on “fixing the web

  1. Great! Enabled it 🙂 But why does it have to throw the JavaScript error? It seems I will have to disable the JavaScript console for popping up automatically which is a shame because I will have to check manually every time I want to be sure there are no errors…

  2. A few questions:

    1. Opera installed the file browser.js on my system and added an entry to opera6.ini, namely:

    Browser JavaScript=2

    Does "2" mean "disabled"?

    2. The list of (partly) broken sites is long. Do you try to fix them all or do you have a priority list?

    3. I asked this in the forum but never received an answer. Perhaps I'm more lucky here: would it make any difference to Opera's performance if the browser.js file (and user.js) was set up as follows to identify urls?

    if (site1) {fix1}
    else if (site2) {fix2}
    else if (site3) {fix3}

    instead of

    if (site1) {fix1};
    if (site2) {fix2};
    if (site3) {fix3};

  3. I tried one of those once, but I found out they use setInterval to update the error list regularly. I figured it might slow down my system somewhat. Anyway it hardly solves the problem… I'd still have to open the panel manually to check.

  4. Sorry about that Jere, we wanted to make it obvious that something is "going on" in case a webmaster of one of these broken sites does test with Opera. Anyone would go nuts if Opera suddenly treated their JavaScript differently from any other scripts out there.. what about leaving the console open in the background?

  5. This is the meaning of the ini values:

    0 = "disabled"
    1 = "download new file as soon as possible"
    2 = "installed and working"

    If you remove or edit the file Opera will set it to 0 AFAIK.

    Certainly there is a long list of sites that have small problems and issues. I think very minor issues like the NVIDIA problem won't be fixed in the future even if the site is big, the current version is sort of a proof of concept and we felt we could play around a bit 🙂

    In the future we'll try to focus on the most important sites to our users, based on regular bug reports and increasingly on "Report site problem" reports.

    Regarding 3: yes, if .. else if … would be more efficient whenever an if earlier on in the evaluation matches. I'll change that one day..

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s