User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9) Gecko/2008051202 Firefox/3.0 Build Identifier: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9) Gecko/2008051202 Firefox/3.0 The PDF-reader obtained from Internet Config does not match my selection in Finder. According to ... "Starting with Mac OS X, Internet Config is no longer the final authority on Internet preferences", and suggest using Launch Services to select the appropriate application instead. Reproducible: Always Steps to Reproduce: 1. Download and install Skim [http://skim-app.sourceforge.net/] (or another PDF-reader) 2. Select Skim as the default handler for PDF-files. 3. In Firefox, make sure you have no automatic action for PDF-files. 4. Go to http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf 5. Select the option marked (default) in Open pdf_reference.pdf Actual Results: The default application listed is Preview. Expected Results: The default application should match the Launch Services configuration, which points to Skim.
Created attachment 323342 [details] [diff] [review] Potential fix This replaces the function nsOSHelperAppService::GetMIMEInfoFromOS so that it fetches information from LaunchServices instead of InternetConfig. The implementation is a rough draft, and supposedly also applied to the wrong location. I guess it should rather have been integrated in nsInternetConfigSerivce? Injecting it here makes sure that Firefox does the right thing for me though.
I'd like to see the nsOSHelperAppService class shrink over time, so I'd vote for putting it in the nsInternetConfigService. Presumably, the longer-term more-correct thing we should do is replace nsInternetConfigService with something that uses LaunchServices entirely and InternetConfig not at all. Given that the nsInternetConfigService already uses LaunchServices in a few places today, making the migration happen in place seems reasonable to me, despite purity-of-nomenclature concerns. CCing Josh for his thoughts.
(In reply to comment #2) > I'd like to see the nsOSHelperAppService classes shrink over time I suspect that I may actually mean "go away entirely", but it's not entirely clear to me whether that's practical.
Complete removal of nsIInternetConfigService, as per bug 489864 also solves this issue.