***Thunderbird Only blocker***
Back out 213538 which attempted to remove a thunderbird ifdef in nsWebShell.cpp. This broke the ability to display mail messages on mac, linux and win95/win98 builds. Miraculously it sometimes works on win xp, but still has issues. git-svn-id: svn://10.0.0.236/trunk@145753 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -560,6 +560,49 @@ nsWebShell::OnLinkClickSync(nsIContent *aContent,
|
||||
nsIDocShell** aDocShell,
|
||||
nsIRequest** aRequest)
|
||||
{
|
||||
#ifdef MOZ_THUNDERBIRD
|
||||
// XXX ugly thunderbird hack to force all url clicks to go to the system default app
|
||||
// I promise this will be removed once we figure out a better way.
|
||||
nsCAutoString scheme;
|
||||
aURI->GetScheme(scheme);
|
||||
|
||||
nsCAutoString spec;
|
||||
aURI->GetSpec(spec);
|
||||
|
||||
static const char kMailToURI[] = "mailto";
|
||||
static const char kNewsURI[] = "news";
|
||||
static const char kSnewsURI[] = "snews";
|
||||
static const char kNntpURI[] = "nntp";
|
||||
static const char kImapURI[] = "imap";
|
||||
|
||||
if (scheme.EqualsIgnoreCase(kMailToURI))
|
||||
{
|
||||
// the scheme is mailto, we can handle it
|
||||
}
|
||||
else if (scheme.EqualsIgnoreCase(kNewsURI))
|
||||
{
|
||||
// the scheme is news, we can handle it
|
||||
}
|
||||
else if (scheme.EqualsIgnoreCase(kSnewsURI))
|
||||
{
|
||||
// the scheme is snews, we can handle it
|
||||
}
|
||||
else if (scheme.EqualsIgnoreCase(kNntpURI))
|
||||
{
|
||||
// the scheme is nntp, we can handle it
|
||||
} else if (scheme.EqualsIgnoreCase(kImapURI))
|
||||
{
|
||||
// the scheme is imap, we can handle it
|
||||
} else
|
||||
{
|
||||
// we don't handle this type, the the registered handler take it
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsIExternalProtocolService> extProtService = do_GetService(NS_EXTERNALPROTOCOLSERVICE_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
return extProtService->LoadUrl(aURI);
|
||||
}
|
||||
#endif
|
||||
|
||||
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(aContent));
|
||||
NS_ENSURE_TRUE(node, NS_ERROR_UNEXPECTED);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user