Duh - thank you for the link!
Despite the warning about getting the default browser (it works here on Mac OS X 10.3.2 US English), here is a slight reworking of the code that doesn’t rely on the name, display name, or internal process name as returned by System Events. Instead, it relies on the full path to the default browser:
if my default_browser_running() = false then
set the_button to (display dialog "I can't determine if your default browser is launched. If it is, press 'Continue', if not, press 'Stop', launch your browser, then run this script again." buttons {"Stop", "Continue"} default button 2)
if the_button = "Stop" then quit
else
display dialog "Your default browser is running."
end if
on default_browser_running()
set creatorType to word -1 of (do shell script "defaults read com.apple.LaunchServices | grep -C5 E:html | grep -w LSBundleSignature")
set creatorType to ?class ktxt? of (creatorType as record)
tell application "Finder" to set default_browser to (application file id creatorType) as string
tell application "System Events"
repeat 60 times
set the_processes to (file of processes)
repeat with this_process in the_processes
if (this_process as string) is in {default_browser, default_browser & ":"} then return true
end repeat
delay 1
end repeat
end tell
return false
end default_browser_running
Jon