Surfing Modern Web With Ancient Browsers

(note this is a guest post by Tenox)

I spend a fair amount of time working with legacy operating systems. Apart from being obsolete themselves they suffer from a common problem – the web browsers are simply unusable on a present day Internet. You start by getting JavaScript error on google.com and it only gets worse once you go further. Try going to microsoft.com with IE 1.5 or qnx.com with the last version of Voyager. This just doesn’t work. With rapid progression of web standards, the situation will only be getting worse in time. Something had to be done.

Quite a while ago I’ve came across Opera rendering proxy for mobile browsers. This got me thinking. If you could render a web page on a proxy server to a simplified HTML, say 3.x. This would make a lot of web browsers happy. For some unrelated purposes I have been using webkit2png which allows to create a whole web page snapshot in a single png image. Wait… what if such image had an image map of clickable regions pointing to the original links? Maybe…

The idea was born, but was it possible to implement and would it work? Webkit2png was quite far from having all the required functionality. For various reasons Python and I will never be friends, so extending the original script was bit out of luck. Fortunately though after some additional research I have stumbled upon picidae network. To my utter surprise they actually made all or even more functionality that I wanted in their picidae.py script. All that had to be done to adapt picidae to my purpose was to save the image as a GIF image, generate a simple HTML page with imagemap, an input box and strip all the unwanted stuff. This I could survive in Python.

Webrender.py came to life. It’s a cgi-bin application that resides on a machine in the middle. It renders a gif image and spits it out to the browser together with a simple web page, containing a URL and search input boxes plus the gif and image map.

After some initial debugging and massaging out few bugs the solution worked perfectly! I could finally get the old browsers happily navigate modern websites! Check out some examples:

Internet Explorer 1.5 on microsoft.com

Internet Explorer 1.5 on microsoft.com

 Yes! You can finally browse microsoft.com with IE 1.5 :)

Netscape 4 visiting netscape.com

Netscape 4 visiting netscape.com

Or go to netscape.com in Netscape 4.x browser. This was impossible just a few hours ago!

How about some other browsers:

QNX Voyager going to qnx.com

QNX Voyager going to qnx.com

 

Mozilla on UnixWare

Mozilla on UnixWare

 

Old Firefox on Haiku

Old Firefox on Haiku

 

CNN on Mosaic

CNN on Mosaic

 

apple-mosaic

Apple.com using Mac Mosaic

 

IBM WebExplorer on OS/2

IBM WebExplorer on OS/2

 

RiscOS !NetSurf on Wikipedia

RiscOS !NetSurf on Wikipedia

 

netscape3

Netscape visiting DNA Lounge

 

NextStep OmniWeb on Reddit.com

NextStep OmniWeb on Reddit.com

 

Enjoy!

Update: A full HTTP Proxy version has been made.

44 thoughts on “Surfing Modern Web With Ancient Browsers

  1. I prefer to use opera 11 with older operating systems. Opera 11 came out in 2010 and was the last opera version to work with a variety of operation systems.

    Opera 11 compatible OS.
    Windows 95, 98, ME (Opera 10.10), 2000, XP, Vista, 7, 8

    Mac OS 7, 8, 9, X (Intel – Current versions) (OS X PPC 10.63 and below)

    • This would be very handy for those of use who still like to play around with Power PC Macs. Some of them are quite functional other than updated browser support. Interesting read.

      • TenFourFox is a port of modern Firefox (like 17 last I checked) to Tiger PPC

      • There is a version of Firefox for Power PC Macs. Don’t remember the name, but I use it on my G4 iBook.

    • Um… Various versions of Opera support those old OSes, but Opera 11 certainly doesn’t.

      To support Windows 95, you have to go all the way back to Opera 10.6. And Mac OS 7 hasn’t been supported since Opera 5!

  2. TBH, IE Does not render those sites much better still to this day.

    (Yes I know that is to harsh, but I design and build websites, Its just still bad compared to the to the others so it deserves to be trashed a bit still.)

  3. As someone who writes third-party JS and has to constantly debug IE and quirks issues, I would want this to be a proxy service and the entire web could be free from dealing with crappy browser and just give them a clickable screenshot :-)

    • But Lynx doesn’t display images does it? And the whole page is a one big image. Well I guess you’d still see the imagemap. But the same way you can see original web links in Lynx. So I don’t think there is a point of using it for Lynx.

    • Way to miss the point. Old OSs often do not have modern browsers available for them. I have an number of IRIX machines and a slow version of Firefox 3.0 is as good as it gets. Other legacy systems often do not have modern browsers available, plus modern Javascript sites need a LOT of processing power to render them. The idea of using a modern machine to do the processing/rendering and the end PC to display the simplified site means old computers can still realistically use the web. This is a very big deal!

  4. Or you can just download and run OffByOne browser. It’s fully HTML 3.2 compliant, and it barely works on the modern web. :p

  5. This is a fun thing. I’d note however that while it’s not true of most of the options you list, for NetSurf, RISC OS is still the primary target and primary reason we exist. As such, the very latest NetSurf does run on RISC OS still.

  6. What a great idea. Having only just read this, I assume this only does image maps, no forms interaction?

    My workplace can only use IE8 and Firefox, Chrome from several versions ago, contrary to what our customers would use. Without going into more detail, a solution like this would be great.

    Thanks for namedropping RISC OS. It’s a great OS on Raspberry Pi.

    • No it doesn’t but it may in future. The original picidae.net script actually did support form fields. I just didn’t bother implementing it. But I may add it in future. For now QT version has a priority thought.

  7. Hi!!

    I get this error every time i try to use the script

    Xlib: extension “Generic Event Extension” missing on display “192.168.11.1:0.0″

    Any ideas?

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.