Regular readers know that I am no great fan of Safari. I once would have said that it was the weakest link in the chain of Apple software, but the emergence of the Lion operating system put an end to that proposition. This has put me in a rather uncomfortable position with regard to how I use the Web. Safari continues to be flaky, even if these days it seems to freeze up, rather than just crashing and burning. On the other hand downloading images, particularly large files, has been a risk proposition on Firefox; and I do that frequently in the course of my writing for Examiner.com. Then, of course, there has been Firefox's persistent dismissal of providing any acceptable support for printing. (I still prefer paper to any screen when it comes to doing any serious reading.)
Recently, however, I discovered that I could get Firefox functionality while still enjoying Safari's ability to download images of any size and the page preview feature through which I can print with the most efficiency. The discovery was accidental and involves the Develop pull-down menu. This menu is hidden by default, but there is a Preferences setting for making it visible. I came across it when trying to figure out how I could see the HTML source for a Web page (which I have had to do from time to time). However, after reading about it in one of Topher Kessler's MacFixIt articles for CNET, I decided to see what else was in the Develop menu. It turns out there is an entry called User Agent, which opens another menu. Through that menu, a Safari used can choose to have a Web page realized by non-Safari software, one option being Firefox.
This quickly fixed the most important annoyance that required my keeping Firefox available. This was the fact that, under Safari, I could not create attachments for Yahoo! Mail messages. Presumably all User Agent options are available as open source. So all Safari has to do is link to alternative software to take care of page rendering. This strikes me as a weird way to solve the problem; but, as they say, it beats working on building your own solution. I wonder how many other software development problems are being handled by this technique, even as I write this!