Apple describes Safari's "Private Browsing" feature as follows:
When you browse the web, Safari stores information about the websites you visit including the content and any user names, passwords, and credit card numbers you enter. Other people who use your computer can view that information. If you don't want this information stored, use Private Browsing.... If you neglected to turn on Private Browsing before you browsed, choose Safari > Reset Safari.
This seems to imply that using Private Browsing, as well as Reset Safari, will not leave any record on your computer of the sites you have visited. This is not true, however. In Terminal, type this command:
dscacheutil -cachedump -entries Host
This will list all entries cached by Leopard (including the date and time of last access), even when Private Browsing is enabled. Even using Reset Safari will not clear these entries. To manually clear these entries, use the following command in Terminal:
The cache is also cleared once you log out of your Leopard account. While logged in, however, any other account on the system (even Guest users) can execute the above command to view sites you have visited.
[robg adds: We covered flushing the cache in 10.5 in this hint, but the fact that Safari leaves trails even in Private Browsing mode made me feel this was worth sharing. Other browsers may have similar issues in their private browsing modes, but I haven't tested them.]
When I find a web page that might be of interest to someone I know, I send an email suggesting they have a look. I want this email to be short and enable the recipient to decide quickly if the page is, in fact, of interest. The email usually includes some text from the page, a link, and a comment from me.
But, if you do it often, this recipient-friendly approach becomes labor intensive for the sender. There's too much copying, pasting, and application switching. Hence this Applescript. It puts text you select in Safari into a new Mail message within quotation marks, appends the page link, and puts the page name into the email's subject field. Add a comment, if you wish, and press send.
Open the application Script Editor and paste the script into the window.
Name and save the script in your user's Library/Scripts/Safari folder (create the folders as necessary).
If you have not already done so, use Applescript Utility to show the Scripts menu in the menu bar.
To use: In Safari, select the text for your email, then run the script by selecting it in the scripts menu in the menu bar.
[robg adds: I tested this and it worked as described. For the save location, however, I would recommend your user's Library » Scripts » Applications » Safari folder. By placing it here, you'll see it listed directly in a 'Safari Scripts' section of the Scripts menu when you're in Safari. If you store it just in the Scripts/Safari folder, then it will appear in a Safari sub-menu of the Scripts menu.
Note that you can do most of this without the script, simply by selecting the text on the page, copying it, then pressing Shift-Command-I (File » Mail Link to This Page). Mail will open with the page title filled in as the subject, along with the link to the page in the body of the message. Enter a recipient in the To line, click into the body, and press Command-V to paste the copied text. If you do this a lot, though, this script will save some time and key presses.]
This hint is for UK users that want to watch BBC iPlayer shows on their desktop while 'working' on other stuff. It uses Safari's Web Clip feature to view the iPlayer content in a Dashboard Widget, as seen in this screenshot.
First, enable 'devmode' in Dashboard, as explained in this hint (you can just killall Dock to activate devmode, no logout/login required), so you can float the Web Clip on your desktop. Next, grab the iPlayer content:
Open Safari and find the iPlayer page with the show you want to watch.
Click File » Open in Dashboard... (a purple toolbar will appear).
Move the mouse over and click the iPlayer Play button to select the iPlayer area, then click the 'Add' button. Dashboard will open and load the iPlayer Web Clip.
Begin dragging the iPlayer Web Clip (click and drag the top edge of the Web Clip), then press F12 while dragging. This will exit Dashboard mode and leave the Web Clip under your mouse.
Move the iPlayer Web Clip wherever you want it, and let go of the mouse.
Now you can get on with your work while 'unmissing' your favorite show. Read on for a few notes about this solution...
I was hunting for a very specific screensaver the other day online, and was thrilled to find a direct link to the Quartz Composer (.qtz) file in question. So I clicked on the URL in Safari, expecting it to start downloading, and was pleasantly surprised when Safari began rendering the screensaver from directly within the active Safari window. Nice one!
Additional investigation revealed that any .qtz file on your computer will render in Safari via the drag and drop method. Right-clicking on the active window in Safari brings up an option to "Save Composition," which allows you to download the .qtz file to a location of your choice.
Some additional notes:
I have Developer Tools installed, and haven't tested this without Developer Tools installed.
Not tested in 10.4.x (Tiger)
Quartz Composer files are pretty darn small and they load and render very quickly. They are easily created with Developer Tools and can access all kinds of system information and can link to, fetch, and deliver all kinds of information (eg. RSS feeds) online.
So one REALLY big question that this now poses, is what kind of wonderful potential uses, if any, do these have in the realm of web design and development?
Quicktime can also render and play .qtz files. So is Safari using the QuickTime Plug-in to render these files? Or is Safari accessing the Quartz graphics engine directly?
If Safari is using the QuickTime Plug-in, then Windows users might be able to benefit from any potential web applications that these files have to offer. If this is not the case, then any potential applications would be limited to Mac OS X platforms only. Either way it is still a tantalizing thought for Mac users.
[robg adds: I tried this in Safari on Windows XP, and wasn't able to open the .qtz file.]
I love URL keywords in Firefox, but I use Safari. Thankfully there are a handful of Safari plug-ins that bring keyword functionality to Safari (Sogudi, Keywurl, Saft, etc). These make the search box somewhat redundant. Previous to Safari 3, we were able to remove the search bar by just deleting it from the toolbar's NIB file. This doesn't work with Safari 3, however. I did a little poking around, and figured out a way to get it to disappear.
Compared to dedicated feed readers, one of the major disadvantages of Safari RSS has always been the lack of an ability to set update intervals or article expiry intervals/times on a per-feed basis. Setting your global update interval in Safari to 30 minutes might be appropriate for high-volume feeds, but it places an undue burden on sites like Mac OS X Hints which are only updated once a day.
In Leopard, RSS reading functionality is no longer built into the Safari application itself. There is a system-wide RSS framework called PubSub (Publication Subscription) to which various applications (Safari, Mail, even Xcode) are subscribed as clients. This has a number of advantages. An application called PubSubAgent runs in the background and updates feeds even when client reader applications are not running and (of course) feeds to which multiple applications are subscribed are updated only once. Crucially, the PubSub framework does allow per-feed configuration settings which override the more generic per-client settings.
There is an API to PubSub which is extensively documented in the ADC Reference Library. However, PubSub stores per-user settings in a SQLite database located at ~/Library/PubSub/Database/Database.sqlite3. Since SQLite is ACID-compliant, one should be able to edit this database while PubSubAgent is running without too much fear of corrupting data. (Still, it's probably wide to back up the database before starting!) To access the database, one can use the command-line sqlite3 tool which ships with OS X, or any of the available graphical SQLite interfaces. You will of course also need some basic SQL skills, which are well beyond the scope of this hint.
The configuration database contains, amongst others, the tables Feeds (a list of RSS feeds), Clients (the "client" reader applications) and Subscriptions. An entry (row) in Subscriptions represents a specific subscription of a specific reader application to a specific RSS feed. The columns in Subscriptions containing the values we'd like to change are refreshInterval, as well as expirationInterval and/or expirationDate.
On my 2007 iMac with the new thin keyboard, the F17, F18 and F19 function keys all open the Find Bar in Safari 3. Using these function keys is an alternative to using Command-F. Safari's new Find behavior is quite nice, if you haven't played with it much. You can use the Enter and Shift-Enter keys to move forward and backwards between the found items; press Escape or Command-perido to exit when done. (In previous versions of Safari, I used SafariStand to automatically open the Find box when ever I start typing but that function doesn't work yet with Safari 3.)
For quite a few months, many Mac Safari users have been having problems with HotMail. The problem is that when they try to log in to HotMail, Microsoft's redirect commands wind up in an unending loop. This only happens when users did not manually click the link to "sign out" on their last session.
I've had to help many people solve this problem, so I thought it might be useful information for macosxhints.com. The way to solve the problem is to delete related cookies:
In Safari, go to Preferences » Security » Show Cookies.
Type in live.com
Click the Remove All button.
Now you can login to HotMail again. In the future, manually sign out each time to avoid doing these steps again. The only real disadvantage is that you'll have to retype your username and password the next time you log in after clearing the cookies.
[robg adds: A comment on the queue site notes that this should also help fix looping issues with Yahoo's websites. I'm not a user of either HotMail or Yahoo (and Safari isn't my main browser), so I can't say I've experienced any of these issues. If you have, and this hint helps, please note it in the comments.]
As input managers are in danger in Safari 3.0 and later versions, it might be useful to know that a type-ahead search feature that emulates Firefox can be enabled in Safari using a fairly simple hack that involves native OS X tricks.
To do so, quit Safari and go to System Preferences » Keyboard & Mouse » Keyboard Shortcuts. Click the '+' to add a new shortcut, select Safari as the Application, Find... as the Menu Title, and a temporary (and arbitrary) shortcut as Keyboard Shortcut. (Note that this field does not allow a simple entry, such as '/', but instead requires a modifier key like Command or Option.)
Now go to ~/Library/Preferences and edit com.apple.Safari.plist. (You may be able to just double-click and open the plist in Property List Editor if you have Xcode installed.) Find the NSUserKeyEquivalents entry and edit the string entry for Find..., replacing the arbitrary shortcut you entered earlier with /. This will remove the need for a modifier key, and allow / to activate search.
Now relaunch Safari and type /; you should see the Find box appear, emulating the type-ahead search in Firefox.
[robg adds: Queue user fds offers up a one-line Terminal alternative to creating this shortcut: defaults write com.apple.safari NSUserKeyEquivalents -dict-add Findů /. He also points out the downside of this modification: if you're in a text box, you won't be able to activate the search box, as the text box will accept all the '/' keystrokes, as it should. With the default of Command-F, you can use find even when a text field has focus.
If you'd like to undo this modification, and you used the long method above to create it, you can just delete the entry in the Keyboard Shortcuts list. If you used the Terminal shortcut, though, there won't be an entry there. You can either add it and then delete it, or this should work in Terminal: defaults write com.apple.safari NSUserKeyEquivalents -dict-add Findů @f.]