Donc, après quelque recherches et avoir résolu quelques problèmes pour l’hébergement des fichiers de plus en plus gros, je suis content de pouvoir annoncer que Multi-Safari fonctionne maintenant correctement sur Mac OS X Leopard. J’ai ajouté Safari 3.0.4, versions Tiger et Leopard, et j’ai mis à jour les fichiers de Safari 2.x pour qu’ils puissent fonctionner adéquatement sur Leopard sans bidouillage supplémentaire. Aucune version plus ancienne de Safari (1.x) ne peut fonctionner sur Leopard, malheureusement.
Alors quel était le problème exactement avec les versions 2.x sur Leopard ? Apple a décidé qu’ils empêchaient les utilisateurs d’ouvrir les anciennes versions de Safari dans Mac OS X 10.5.1, probablement pour éviter des bogues potentiels. Tenter d’ouvrir une version plus ancienne cause une erreur disant que l’application ne fonctionne pas sur cette version de Mac OS X.
En fait, Safari n’est pas la seule application dont les plus vieilles versions sont bloquées, la liste complète se trouve dans le fichier Exceptions.plist de la framework système LaunchServices. À l’intérieur vous pourrez trouver que la version minimale requise pour « com.apple.Safari » est 5523.10, ce qui est le build number trouvé dans le Info.plist du paquet de l’application Safari 3. En lançant une application avec l’identifiant de paquet spécifié, le système vérifie que le numéro de version n’est pas plus bas, et si c’est le cas empêche l’application de s’ouvrir.
Alors comment réparer Multi-Safari pour qu’il contourne la vérification du système ? Simple : j’ai modifié l’identifiant du paquet pour « com.michelf.MultiSafari » ; c’est tout ce que ça prend. Il faut généralement copier l’application (ou utiliser la bonne commande dans le terminal) pour que le système prenne en compte le changement dans Info.plist.
Ceci cause un autre « problème » par contre : Safari, comme la plupart des applications Mac OS X, conserve ses préférences et réglages dans un fichier portant le nom de son identifiant de paquet (« com.apple.Safari »), et changer l’identifiant de paquet fait que Safari utilise un autre fichier de préférences. Pour plus de commodité, j’ai ajouté dans le script de Multi-Safari une commande qui copie le fichier « com.apple.Safari.plist » à « com.michelf.MultiSafari.plist » au premier lancement. Ceci veux dire que si vous changez les préférences du Safari d’Apple après coup, ça n’affectera pas les préférences de Multi-Safari, et vice-versa.
Dernier petit détail : Mac OS X 10.5 Leopard ajoute automatiquement le drapeau de quarantaine pour les fichiers provenant d’internet. Pour rendre ceci fonctionnel sur les anciennes versions de Safari qui fonctionnent sur Leopard (2.x), j’ai ajouté la clé « LSFileQuarantineEnabled » aux fichier Info.plist. La fonction de quarantaine fonctionnera donc même avec Multi-Safari.