diff --git a/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp b/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp index db5a9fcf78d..2d687421558 100644 --- a/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp @@ -1853,21 +1853,22 @@ NS_IMETHODIMP nsExternalHelperAppService::GetTypeFromURI(nsIURI *aURI, char **aC #ifdef XP_MAC if (NS_SUCCEEDED(rv)) { - nsCAutoString fileExt; - url->GetFileExtension(fileExt); - nsresult rv2; nsCOMPtr fileurl = do_QueryInterface( url, &rv2 ); if ( NS_SUCCEEDED ( rv2 ) ) { - nsCOMPtr file; - rv2 = fileurl->GetFile( getter_AddRefs( file ) ); - if ( NS_SUCCEEDED( rv2 ) ) - { - rv2 = GetTypeFromFile( file, aContentType ); - if( NS_SUCCEEDED ( rv2 ) ) - return rv2; - } + PRBool isFileScheme = PR_FALSE; + if (NS_SUCCEEDED(fileurl->SchemeIs("file", &isFileScheme)) && isFileScheme) + { + nsCOMPtr file; + rv2 = fileurl->GetFile(getter_AddRefs(file)); + if (NS_SUCCEEDED(rv2)) + { + rv2 = GetTypeFromFile(file, aContentType); + if (NS_SUCCEEDED(rv2)) + return rv2; + } + } } } #endif