зеркало из https://github.com/mozilla/pjs.git
Bug 724841 - Retain case when sending location bar text to search engine service r=bz
This commit is contained in:
Родитель
705bb75e54
Коммит
c653a4646b
|
@ -3896,6 +3896,10 @@ nsDocShell::LoadURI(const PRUnichar * aURI,
|
||||||
|
|
||||||
rv = LoadURI(uri, loadInfo, extraFlags, true);
|
rv = LoadURI(uri, loadInfo, extraFlags, true);
|
||||||
|
|
||||||
|
// Save URI string in case it's needed later when
|
||||||
|
// sending to search engine service in EndPageLoad()
|
||||||
|
mOriginalUriString = uriString;
|
||||||
|
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6355,27 +6359,33 @@ nsDocShell::EndPageLoad(nsIWebProgress * aProgress,
|
||||||
|
|
||||||
if (keywordsEnabled && (kNotFound == dotLoc)) {
|
if (keywordsEnabled && (kNotFound == dotLoc)) {
|
||||||
// only send non-qualified hosts to the keyword server
|
// only send non-qualified hosts to the keyword server
|
||||||
//
|
if (!mOriginalUriString.IsEmpty()) {
|
||||||
// If this string was passed through nsStandardURL by
|
sURIFixup->KeywordToURI(mOriginalUriString,
|
||||||
// chance, then it may have been converted from UTF-8 to
|
|
||||||
// ACE, which would result in a completely bogus keyword
|
|
||||||
// query. Here we try to recover the original Unicode
|
|
||||||
// value, but this is not 100% correct since the value may
|
|
||||||
// have been normalized per the IDN normalization rules.
|
|
||||||
//
|
|
||||||
// Since we don't have access to the exact original string
|
|
||||||
// that was entered by the user, this will just have to do.
|
|
||||||
bool isACE;
|
|
||||||
nsCAutoString utf8Host;
|
|
||||||
nsCOMPtr<nsIIDNService> idnSrv =
|
|
||||||
do_GetService(NS_IDNSERVICE_CONTRACTID);
|
|
||||||
if (idnSrv &&
|
|
||||||
NS_SUCCEEDED(idnSrv->IsACE(host, &isACE)) && isACE &&
|
|
||||||
NS_SUCCEEDED(idnSrv->ConvertACEtoUTF8(host, utf8Host)))
|
|
||||||
sURIFixup->KeywordToURI(utf8Host,
|
|
||||||
getter_AddRefs(newURI));
|
getter_AddRefs(newURI));
|
||||||
else
|
}
|
||||||
sURIFixup->KeywordToURI(host, getter_AddRefs(newURI));
|
else {
|
||||||
|
//
|
||||||
|
// If this string was passed through nsStandardURL by
|
||||||
|
// chance, then it may have been converted from UTF-8 to
|
||||||
|
// ACE, which would result in a completely bogus keyword
|
||||||
|
// query. Here we try to recover the original Unicode
|
||||||
|
// value, but this is not 100% correct since the value may
|
||||||
|
// have been normalized per the IDN normalization rules.
|
||||||
|
//
|
||||||
|
// Since we don't have access to the exact original string
|
||||||
|
// that was entered by the user, this will just have to do.
|
||||||
|
bool isACE;
|
||||||
|
nsCAutoString utf8Host;
|
||||||
|
nsCOMPtr<nsIIDNService> idnSrv =
|
||||||
|
do_GetService(NS_IDNSERVICE_CONTRACTID);
|
||||||
|
if (idnSrv &&
|
||||||
|
NS_SUCCEEDED(idnSrv->IsACE(host, &isACE)) && isACE &&
|
||||||
|
NS_SUCCEEDED(idnSrv->ConvertACEtoUTF8(host, utf8Host)))
|
||||||
|
sURIFixup->KeywordToURI(utf8Host,
|
||||||
|
getter_AddRefs(newURI));
|
||||||
|
else
|
||||||
|
sURIFixup->KeywordToURI(host, getter_AddRefs(newURI));
|
||||||
|
}
|
||||||
} // end keywordsEnabled
|
} // end keywordsEnabled
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8070,6 +8080,7 @@ nsDocShell::InternalLoad(nsIURI * aURI,
|
||||||
nsIRequest** aRequest)
|
nsIRequest** aRequest)
|
||||||
{
|
{
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
|
mOriginalUriString.Truncate();
|
||||||
|
|
||||||
#ifdef PR_LOGGING
|
#ifdef PR_LOGGING
|
||||||
if (gDocShellLeakLog && PR_LOG_TEST(gDocShellLeakLog, PR_LOG_DEBUG)) {
|
if (gDocShellLeakLog && PR_LOG_TEST(gDocShellLeakLog, PR_LOG_DEBUG)) {
|
||||||
|
|
|
@ -848,7 +848,8 @@ private:
|
||||||
nsCOMPtr<nsIAtom> mForcedCharset;
|
nsCOMPtr<nsIAtom> mForcedCharset;
|
||||||
nsCOMPtr<nsIAtom> mParentCharset;
|
nsCOMPtr<nsIAtom> mParentCharset;
|
||||||
nsTObserverArray<nsWeakPtr> mPrivacyObservers;
|
nsTObserverArray<nsWeakPtr> mPrivacyObservers;
|
||||||
PRInt32 mParentCharsetSource;
|
PRInt32 mParentCharsetSource;
|
||||||
|
nsCString mOriginalUriString;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
// We're counting the number of |nsDocShells| to help find leaks
|
// We're counting the number of |nsDocShells| to help find leaks
|
||||||
|
|
Загрузка…
Ссылка в новой задаче