As you probably know, Safari 3 doesn’t allow you to turn on the debug menu within any settings dialogs. It also doesn’t come with a JavaScript Debugger either. This makes it almost impossible to do any JavaScript development for Safari. Luckily you can turn on the debug menu, and there is a debugger you can download.

Turn on the Debug menu

Step 1: Open up the Preferences.plist file in notepad.

In Windows XP: C:\Documents and Settings\USERNAME\Application Data\Apple Computer\Safari\Preferences.plist

In Windows Vista: C:\Users\USERNAME\AppData\Roaming\Apple Computer\Safari\Preferences.plist

Step 2: Add the following to the end of the file, just before “</dict></plist>”:

IncludeDebugMenu

Step 3: Now open up Safari and you have the Debug menu

Where can I find a Debugger for Safari?

You can download the Drosera debugger here: http://nightly.webkit.org Now, before you go trying to run it, you’ll want to read the next section below.

How do I run Drosera in Windows?

Step 1: Make sure you download the Webkit Nightly Build located at http://nightly.webkit.org and extract its contents somewhere on your harddrive.

Step 2: If you’re running Win Vista then you’ll have to add the following to the WebKitPreferences.plist file, just before “</dict></plist>”:

WebKitUserStyleSheetLocationPreferenceKey

You can find the WebKitPreferences.plist file within the same folder that the Preferences.plist file is in; it’s path is shown above. Also, if you’re running Vista and you don’t add this snippet to the WebKitPreferences.plist file, then Safari will crash and you wont be able to debug until you add it.

Step 3: Execute the run-nightly-webkit.cmd file. This will launch Safari.

Step 4: Execute the run-drosera.cmd file. This will launch Drosera.

Step 5: Execute the FindSafari.exe file. This will link up Drosera to your running instance of Safari.

If you have multiple instance you may want to close all but one. I don’t know if multiple instances of Safari will cause this to not work, but it’s better to be safe.

Step 6: Now you can access web pages with Safari and step through / break on errors in the code.

Additional Links

The WebKit Open Source Project Safai Developer FAQ - How do I debug JavaScript in Safari?

Additional Comments

I’m not exactly sure why Apple makes us jump through these hoops to be able to debug JavaScript within Safari. It’s quite a hassle, and even after all that work I still have the following issues with the experience:

  • Debugging with Drosera is very slow, and actually froze up a couple times on me and I had to restart Safari and Drosera.
  • Since I'm used to the debugging experience in MS Visual Studio, I am very dissapointed in Drosera. You'll know what I mean when you use it.

All in all, I hope this post saves someone the hours it took me to figure this all out. Afterall, there isn’t any instructions (at least that I could find) on the WebKit site that tells you how to actually run Drosera on Windows.

Good luck, and I hope Apple improves the developer support for Safari.