Multi-Safari

Donate

Introduction

Safari normally uses the Web Kit framework found inside Mac OS X to render web pages and execute javascript. This means that if you preserve an old version of Safari to run it on a newer version of Mac OS, it will use the newer Web Kit found in the system and you will get the same results as with the newer version. Thus, you would normally need a separate installation of Mac OS X for each version of Safari you want to test a website into.

These special versions of Safari use the original Web Kit framework that came with them, bundled inside the application. They will mimic original Safari rendering and javascript behaviours. HTTP requests and cookies however are still handled by the system and may not work exactly the same.

Download

Note: The files only contain English and French localizations to make them smaller.

Thanks to the jQuery Project for hosting some of these files on their CDN.

Safari for Lion (Mac OS X 10.7)

Lion first came with Safari 5.

Safari for Snow Leopard (Mac OS X 10.6)

Snow Leopard first came with Safari 4. If you need to test Safari 4 on Leopard, use the Leopard version in the next section.

Safari for Leopard (Mac OS X 10.5)

Leopard shipped originally with Safari 3.0. Safari 3 for Leopard is not compatible with Mac OS X 10.4 (Tiger) although Safari 3 for Tiger works fine on Leopard.

Safari for Tiger (Mac OS X 10.4)

Tiger shipped originally with Safari 2.0. All these versions should work fine on Mac OS X 10.4 (Tiger) and 10.5 (Leopard). There’s a small problem when running 2.0.x on Leopard though: the javascript alert function does not work.

Safari for Panther (Mac OS X 10.3)

These versions only run on Mac OS X 10.3. They depend on a few private frameworks and symbols in the operating system which are no longer here in later versions.

Safari for Jaguar (Mac OS X 10.2)

This version of Safari works on Mac OS X 10.2 (Jaguar) through 10.4 (Tiger). Unusable on Leopard.

Compatibility Grid

Safari Version 10.2.8
(Jaguar)
10.3.9
(Panther)
10.4.11
(Tiger)
10.5.x
(Leopard)
10.6.x
(Snow Leopard)
10.7.x
(Lion)
10.8.x
(Mountain Lion)
1.0 x x x1
1.2.x x
1.3.x x
2.x.x x x2
3.x.x
(Tiger)
x x
3.x.x
(Leopard)
x x
4.x.x
(Leopard)
x
4.x.x
(Snow Leopard)
x x
5.x.x
(Snow Leopard)
x
5.x.x
(Lion)
x

How I did this

I have documented the procedure I use to create the self-contained applications on my weblog. There are two differences however:

  1. Added a nice version-number badge on the icon so you can distinguish different versions when side by side in the dock.

  2. Instead of naming the old safari executable “TrueSafari”, I name it with the appropriate version number and change the script accordingly. This means that when one Safari crash, the version number will appear in the error message.

  3. The bundle identifier for Safari 2.0 and later is changed to com.michelf.MultiSafari to avoid a version-check on Leopard preventing older versions of Safari from launching. As a consequence, preferences for the modified Safari downloads are stored separately from the Apple-provided Safari, and the launcher script has been modified to copy Apple’s Safari preference on the first run.

Notes

I’m providing these files free of charge so that web developers can test their website for interoperability within many version of Safari with less hassle. The copyright for these files still belongs to Apple Inc. If Apple asks, I will remove the files.


  1. Safari 1.0 works on Tiger but you’ll have to create the window in an unconventional way: either by opening a local file or by choosing Open Location in the file menu. The “Cannot open file” message at the application startup can be ignored. 

  2. Safari 2.0.x didn’t work initially on Leopard due to the system blocking older versions of Safari. The 2.0.x downloads have been updated to use a different bundle identifier (com.michelf.MultiSafari) and are no longer affected by this block.