mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug 393246 - Make URL fixup not query for Windows legacy encoding. r=bzbarsky.
This commit is contained in:
parent
83be9793bf
commit
ecf0de8875
@ -7,7 +7,6 @@
|
||||
#include "nsNetUtil.h"
|
||||
#include "nsCRT.h"
|
||||
|
||||
#include "nsIPlatformCharset.h"
|
||||
#include "nsIFile.h"
|
||||
#include <algorithm>
|
||||
|
||||
@ -203,19 +202,6 @@ nsDefaultURIFixup::CreateFixupURI(const nsACString& aStringURI, uint32_t aFixupF
|
||||
#endif
|
||||
}
|
||||
|
||||
// For these protocols, use system charset instead of the default UTF-8,
|
||||
// if the URI is non ASCII.
|
||||
bool bAsciiURI = IsASCII(uriString);
|
||||
bool useUTF8 = (aFixupFlags & FIXUP_FLAG_USE_UTF8) ||
|
||||
Preferences::GetBool("browser.fixup.use-utf8", false);
|
||||
bool bUseNonDefaultCharsetForURI =
|
||||
!bAsciiURI && !useUTF8 &&
|
||||
(scheme.IsEmpty() ||
|
||||
scheme.LowerCaseEqualsLiteral("http") ||
|
||||
scheme.LowerCaseEqualsLiteral("https") ||
|
||||
scheme.LowerCaseEqualsLiteral("ftp") ||
|
||||
scheme.LowerCaseEqualsLiteral("file"));
|
||||
|
||||
// Check if we want to fix up common scheme typos.
|
||||
rv = Preferences::AddBoolVarCache(&sFixTypos,
|
||||
"browser.fixup.typo.scheme",
|
||||
@ -269,8 +255,7 @@ nsDefaultURIFixup::CreateFixupURI(const nsACString& aStringURI, uint32_t aFixupF
|
||||
|
||||
if (ourHandler != extHandler || !PossiblyHostPortUrl(uriString)) {
|
||||
// Just try to create an URL out of it
|
||||
rv = NS_NewURI(aURI, uriString,
|
||||
bUseNonDefaultCharsetForURI ? GetCharsetForUrlBar() : nullptr);
|
||||
rv = NS_NewURI(aURI, uriString, nullptr);
|
||||
|
||||
if (!*aURI && rv != NS_ERROR_MALFORMED_URI) {
|
||||
return rv;
|
||||
@ -338,13 +323,9 @@ nsDefaultURIFixup::CreateFixupURI(const nsACString& aStringURI, uint32_t aFixupF
|
||||
uriString.Assign(NS_LITERAL_CSTRING("ftp://") + uriString);
|
||||
else
|
||||
uriString.Assign(NS_LITERAL_CSTRING("http://") + uriString);
|
||||
|
||||
// For ftp & http, we want to use system charset.
|
||||
if (!bAsciiURI && !useUTF8)
|
||||
bUseNonDefaultCharsetForURI = true;
|
||||
} // end if checkprotocol
|
||||
|
||||
rv = NS_NewURI(aURI, uriString, bUseNonDefaultCharsetForURI ? GetCharsetForUrlBar() : nullptr);
|
||||
rv = NS_NewURI(aURI, uriString, nullptr);
|
||||
|
||||
// Did the caller want us to try an alternative URI?
|
||||
// If so, attempt to fixup http://foo into http://www.foo.com
|
||||
@ -816,31 +797,6 @@ bool nsDefaultURIFixup::PossiblyByteExpandedFileName(const nsAString& aIn)
|
||||
return false;
|
||||
}
|
||||
|
||||
const char * nsDefaultURIFixup::GetFileSystemCharset()
|
||||
{
|
||||
if (mFsCharset.IsEmpty())
|
||||
{
|
||||
nsresult rv;
|
||||
nsAutoCString charset;
|
||||
nsCOMPtr<nsIPlatformCharset> plat(do_GetService(NS_PLATFORMCHARSET_CONTRACTID, &rv));
|
||||
if (NS_SUCCEEDED(rv))
|
||||
rv = plat->GetCharset(kPlatformCharsetSel_FileName, charset);
|
||||
|
||||
if (charset.IsEmpty())
|
||||
mFsCharset.AssignLiteral("ISO-8859-1");
|
||||
else
|
||||
mFsCharset.Assign(charset);
|
||||
}
|
||||
|
||||
return mFsCharset.get();
|
||||
}
|
||||
|
||||
const char * nsDefaultURIFixup::GetCharsetForUrlBar()
|
||||
{
|
||||
const char *charset = GetFileSystemCharset();
|
||||
return charset;
|
||||
}
|
||||
|
||||
void nsDefaultURIFixup::KeywordURIFixup(const nsACString & aURIString,
|
||||
nsIInputStream **aPostData,
|
||||
nsIURI** aURI)
|
||||
|
@ -30,10 +30,6 @@ private:
|
||||
bool PossiblyHostPortUrl(const nsACString& aUrl);
|
||||
bool MakeAlternateURI(nsIURI *aURI);
|
||||
bool IsLikelyFTP(const nsCString& aHostSpec);
|
||||
const char * GetFileSystemCharset();
|
||||
const char * GetCharsetForUrlBar();
|
||||
|
||||
nsCString mFsCharset;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -590,7 +590,6 @@ pref("browser.fixup.alternate.enabled", true);
|
||||
pref("browser.fixup.alternate.prefix", "www.");
|
||||
pref("browser.fixup.alternate.suffix", ".com");
|
||||
pref("browser.fixup.hide_user_pass", true);
|
||||
pref("browser.fixup.use-utf8", false);
|
||||
|
||||
// Location Bar AutoComplete
|
||||
pref("browser.urlbar.autocomplete.enabled", true);
|
||||
|
Loading…
Reference in New Issue
Block a user