mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 21:31:04 +00:00
Bug 1488115 - Part 1: Remove nsIUTF8ConverterService::ConvertURISpecToUTF8() since it is unused; r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D4872
This commit is contained in:
parent
08f05bd051
commit
1a28ba6ef6
@ -38,31 +38,5 @@ interface nsIUTF8ConverterService : nsISupports
|
|||||||
in string aCharset,
|
in string aCharset,
|
||||||
in boolean aSkipCheck,
|
in boolean aSkipCheck,
|
||||||
[optional] in boolean aAllowSubstitution);
|
[optional] in boolean aAllowSubstitution);
|
||||||
|
|
||||||
/* XXX : To-be-added. convertStringFromUTF8 */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Ensure that |aSpec| (after URL-unescaping it) is encoded in UTF-8.
|
|
||||||
* If not, convert it to UTF-8, assuming it's encoded in |aCharset|,
|
|
||||||
* and return the result.
|
|
||||||
*
|
|
||||||
* <p>Make sure that all characters outside US-ASCII in your input spec
|
|
||||||
* are url-escaped if your spec is not in UTF-8 (before url-escaping)
|
|
||||||
* because the presence of non-ASCII characters is <strong>blindly</strong>
|
|
||||||
* regarded as an indication that your input spec is in unescaped UTF-8
|
|
||||||
* and it will be returned without further processing. No valid spec
|
|
||||||
* going around in Mozilla code would break this assumption.
|
|
||||||
*
|
|
||||||
* <p>XXX The above may change in the future depending on the usage pattern.
|
|
||||||
*
|
|
||||||
* @param aSpec an url-escaped URI spec to ensure its UTF8ness
|
|
||||||
* @param aCharset the charset to convert from if |aSpec| is not in UTF-8
|
|
||||||
* @return the converted spec in UTF-8.
|
|
||||||
* @throws NS_ERROR_UCONV_NOCONV when there is no decoder for aCharset
|
|
||||||
* or NS_ERROR_UDEC_ILLEGALINPUT in case of conversion failure
|
|
||||||
*/
|
|
||||||
|
|
||||||
AUTF8String convertURISpecToUTF8(in ACString aSpec,
|
|
||||||
in string aCharset);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -72,38 +72,3 @@ nsUTF8ConverterService::ConvertStringToUTF8(const nsACString& aString,
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsUTF8ConverterService::ConvertURISpecToUTF8(const nsACString& aSpec,
|
|
||||||
const char* aCharset,
|
|
||||||
nsACString& aUTF8Spec)
|
|
||||||
{
|
|
||||||
// assume UTF-8 if the spec contains unescaped non-ASCII characters.
|
|
||||||
// No valid spec in Mozilla would break this assumption.
|
|
||||||
if (!IsASCII(aSpec)) {
|
|
||||||
aUTF8Spec = aSpec;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
aUTF8Spec.Truncate();
|
|
||||||
|
|
||||||
nsAutoCString unescapedSpec;
|
|
||||||
// NS_UnescapeURL does not fill up unescapedSpec unless there's at least
|
|
||||||
// one character to unescape.
|
|
||||||
bool written = NS_UnescapeURL(PromiseFlatCString(aSpec).get(),
|
|
||||||
aSpec.Length(),
|
|
||||||
esc_OnlyNonASCII,
|
|
||||||
unescapedSpec);
|
|
||||||
|
|
||||||
if (!written) {
|
|
||||||
aUTF8Spec = aSpec;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
// return if ASCII only or escaped UTF-8
|
|
||||||
if (IsASCII(unescapedSpec) || IsUTF8(unescapedSpec)) {
|
|
||||||
aUTF8Spec = unescapedSpec;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ToUTF8(unescapedSpec, aCharset, true, aUTF8Spec);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user