mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 10:44:56 +00:00
Unescape URLs in mail subjects before passing them to ShellExecute. Bug 227268, r=bsmedberg, sr=biesi
This commit is contained in:
parent
8c1a438588
commit
fd4c554739
@ -55,6 +55,7 @@
|
||||
#include "nsIProcess.h"
|
||||
#include "nsOSHelperAppService.h"
|
||||
#include "nsUnicharUtils.h"
|
||||
#include "nsITextToSubURI.h"
|
||||
|
||||
#define RUNDLL32_EXE L"\\rundll32.exe"
|
||||
|
||||
@ -266,6 +267,18 @@ nsMIMEInfoWin::LoadUriInternal(nsIURI * aURL)
|
||||
// extract the url spec from the url
|
||||
nsCAutoString urlSpec;
|
||||
aURL->GetAsciiSpec(urlSpec);
|
||||
|
||||
// Unescape non-ASCII characters in the URL
|
||||
nsCAutoString urlCharset;
|
||||
nsAutoString utf16Spec;
|
||||
rv = aURL->GetOriginCharset(urlCharset);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsITextToSubURI> textToSubURI = do_GetService(NS_ITEXTTOSUBURI_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = textToSubURI->UnEscapeNonAsciiURI(urlCharset, urlSpec, utf16Spec);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
static const PRUnichar cmdVerb[] = L"open";
|
||||
SHELLEXECUTEINFOW sinfo;
|
||||
@ -281,8 +294,7 @@ nsMIMEInfoWin::LoadUriInternal(nsIURI * aURL)
|
||||
SFGAOF sfgao;
|
||||
|
||||
// Bug 394974
|
||||
if (SUCCEEDED(SHParseDisplayName(NS_ConvertUTF8toUTF16(urlSpec).get(),
|
||||
NULL, &pidl, 0, &sfgao))) {
|
||||
if (SUCCEEDED(SHParseDisplayName(utf16Spec.get(),NULL, &pidl, 0, &sfgao))) {
|
||||
sinfo.lpIDList = pidl;
|
||||
sinfo.fMask |= SEE_MASK_INVOKEIDLIST;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user