Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

10.4: Retain old WebKit with Safari 3 Public Beta Web Browsers
Here's an easy and simple way to get Safari 3 running without ruining other apps that rely on the current version of WebKit. The way the WebKit Nightly builds work is that they are a self contained version of the WebKit framework that feeds itself (instead of the System version) to Safari.app. We can use this behavior to our advantage to get Safari 3 running without altering the system version of WebKit that all your other apps use, and without having to resort to using the Terminal to fix every app that may break.

[robg adds: This previous hint discussed the same general thing as this one, and this method was noted in the comments there. However, I felt it worth running this one as a separate hint as it's a simpler solution to the problem.]

This hint works because Safari 3 does not seem to check what version of the WebKit framework your system has installed, just that it gets a somewhat up-to-date build of the WebKit framework. Here's what you need to do:
  1. Download the Safari 3 Public Beta.
  2. Download and install Pacifist. The demo version is fine for what we need to do.
  3. Download the latest build of WebKit.
  4. Install the new version of WebKit by dragging WebKit.app to your Applications folder. This is will become what you use to launch Safari, instead of using Safari.app, so you might as well replace it in your dock right now.
  5. Make a copy of your current Safari.app, and name it something simple like Safari 2.app in case you want to revert back later on.
  6. Using Pacifist, browse the Safari3Beta.pkg you downloaded earlier from Apple, and extract the Safari.app to your applications folder, overwriting the current copy.
  7. Launch WebKit.app, which will load up Safari.app (Safari 3.0) with its self-contained version of the WebKit framework.
That's it; browse and enjoy! Using this method you get two things -- Safari 3 with all the new bells and whistles of the latest WebKit builds, and the rest of your apps that rely on the old WebKit continue to "just work."
    •    
  • Currently 1.14 / 5
  You rated: 2 / 5 (7 votes cast)
 
[15,484 views]  

10.4: Retain old WebKit with Safari 3 Public Beta | 9 comments | Create New Account
Click here to return to the '10.4: Retain old WebKit with Safari 3 Public Beta' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
10.4: Retain old WebKit with Safari 3 Public Beta
Authored by: boredzo on Jun 29, '07 01:07:00PM

But this doesn't really keep "the old" WebKit framework; it "keeps" the current tip-of-tree WebKit framework (even newer than Safari 3's framework!) That's why they're nightly builds—because it changes every night.

If you want to retain the old WebKit, copy it from /System/Library/Frameworks into the WebKit.app before installing Safari 3. I haven't tested it, but that's how you achieve the goal stated in the title. The hint as presented won't do that.

I think the previous hint is a much better solution, env hackery aside. Also, it should be possible to invert that solution (end up with the Tiger WebKit in /S/L/F and the Safari 3 WebKit in WebKit.app) if you find that most of your apps choke on the newer WebKit, though I don't know how much Safari 3 will like that solution.



[ Reply to This | # ]
10.4: Retain old WebKit with Safari 3 Public Beta
Authored by: MattHaffner on Jun 29, '07 02:06:35PM

This hint is meant to "keep" the Tiger WebKit in /S/L/F completely intact with no changes so that other apps that use the framework are still using the Tiger version. Only Safari 3 will use the nightly WebKit. At least that's how I read it...



[ Reply to This | # ]
10.4: Retain old WebKit with Safari 3 Public Beta
Authored by: SineOtter on Jun 30, '07 07:44:02PM

MattHaffner is right: This hint allows you to run the Safari 3 beta without altering the /S/L/F version of Webkit.

Safari 3 requires some of the new features of WebKit that you can only get with the nightly or beta build- Hence why it was included in the Safari 3 beta install- But instead of doing it as a self contained framework they have it alter the /S/L/F version. This method uses the Webkit nightly build to shoe horn in the beta WebKit that Safari 3 needs without touching your /S/L/F version, leaving it at the shipping Tiger version and stepping around all the bugs caused by the beta build in other apps.

In summary: Your /S/L/F Webkit isn't touched at all (letting you keep the "old" version, not replacing it like you implied) meaning no bugs with other apps, and you can run Safari 3 using the WebKit contained in the webkit nightly build.



[ Reply to This | # ]
10.4: Retain old WebKit with Safari 3 Public Beta
Authored by: brad-x on Aug 04, '07 07:17:06AM
You're right, an inversion of the previous hint is superior. Notably, this hint also breaks the ability to use Safari as default RSS reader.

This can be done without pacifist, too. I derived the following from the method Michel Fortin uses to create standalone copies of older Safari versions.

1) Right click the .pkg file for Safari 3 and 'show package contents', and unpack Archive.pax.gz.
2) navigate into the new Archive folder. Take Safari.app out of Archive/Applications and place it somewhere.
3) Grab all frameworks from Archive/System/Library/Frameworks/ and place them inside Safari.app itself (via show package contents) - create a folder here called 'Frameworks'

(http://www.michelf.com/weblog/2005/multi-safari/ Explains some of the details from here on out)

4) Then use the following script: http://www.michelf.com/docs/blog/safari-script.zip - this is an extract from WebKit CVS which sets the Framework path to the location of the Application bundle itself rather than looking systemwide. Rename Safari.app/Contents/MacOS/Safari to TrueSafari and place this script in that location.
5) Make a backup of the Safari.app in /Applications
6) Move your new Safari.app to /Applications

This also has the benefit of using the release version of the webkit framework, not the current nightly version, which can cause crashes. As mentioned, you can now use Safari.app normally, without having to bother with webkit.app or do without Safari RSS feed URL handling.

[ Reply to This | # ]
10.4: Retain old WebKit with Safari 3 Public Beta
Authored by: danielj7 on Jun 29, '07 03:40:44PM

There's an even easier solution: extract Safari.app using Pacifist into ~/Applications. That is the Applications folder in your home directory (create it first if it doesn't exist). When Webkit.app is launched, it searches for Safari.app in ~/Applications first, then /Applications. This way you don't need to touch /Applications/Safari.app at all, which otherwise could be damaged by a software update.

This should be the least invasive way to have both Safari 2 and 3 installed at the same time.



[ Reply to This | # ]
10.4: Retain old WebKit with Safari 3 Public Beta
Authored by: shapiro on Jul 01, '07 09:48:48AM

I followed danielj7's suggestion, going one step further: I installed both Webkit and Safari in ~/Applications/. Lauching webkit.app does fire up Safari 3, and everything seems to work.

This is definitely the ideal approach, as you don't overwrite anything.



[ Reply to This | # ]
10.4: Retain old WebKit with Safari 3 Public Beta
Authored by: qwerty denzel on Jul 02, '07 06:02:54AM

Thanks for this.

I've found that Safari needs to be directly in the ~/Applications folder, and not some sub-directory of it.



[ Reply to This | # ]
10.4: Retain old WebKit with Safari 3 Public Beta
Authored by: trystero on Jun 30, '07 02:25:31AM

this is a crucial hint - the Safari 3 beta update sparked all kinds of collateral damage in other apps, especially iWeb, which now beachballs in all sorts of odd situations, requiring force-quits. Replacing such a fundamental framework with a beta version of same for the sake of one app is not the best idea Apple could have come up with. Their 'official' beta should have also used the embedded beta webkit instead of installing it system wide IMHO...



[ Reply to This | # ]
10.4: Retain old WebKit with Safari 3 Public Beta
Authored by: gzfelix on Jul 02, '07 03:55:47AM
Here is my solution to this problem, to maintain the compatibility with applications like MS Messenger, while still have Safari 3 Beta. First of all, uninstall Safari 3 beta, if it is installed.
  1. Download and install Pacifist.
  2. Download Safari 3 Beta.
  3. Download WebKit nightly build.
  4. Rename /Applications/Safari.app (the old one) to Safari2.app
  5. Extract Applications/Safari.app from the Safari 3 install package, and put it to /Applications.
  6. Copy WebKit.app to /Applications, renamed to Safari3.app.
  7. Open Safari3.app/Resources,Extract from the Safari 3 install package WebKit.framework, JavaScriptCore.framework, WebKit.framework/Versions/A/Frameworks/WebCore.framework and JavaScriptGlue.framework, WebKitDashboardSupport.framework.
  8. Use Safari3.app to start Safari 3 Beta, and Safari2.app to start Safari 2. Do NOT use Safari.app.
Done!

[ Reply to This | # ]