mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-07 18:04:46 +00:00
Bug 1787633 - Make nsTextToSubURI::UnEscapeNonAsciiURI static. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D156007
This commit is contained in:
parent
eaf1544bc4
commit
e7b3d513d4
@ -36,10 +36,10 @@
|
||||
#include "mozilla/dom/Document.h"
|
||||
#include "nsIObjectInputStream.h"
|
||||
#include "nsIObjectOutputStream.h"
|
||||
#include "nsITextToSubURI.h"
|
||||
#include "nsIWritablePropertyBag2.h"
|
||||
#include "nsIContentSecurityPolicy.h"
|
||||
#include "nsSandboxFlags.h"
|
||||
#include "nsTextToSubURI.h"
|
||||
#include "mozilla/BasePrincipal.h"
|
||||
#include "mozilla/CycleCollectedJSContext.h"
|
||||
#include "mozilla/dom/AutoEntryScript.h"
|
||||
@ -1102,15 +1102,9 @@ NS_IMPL_ISUPPORTS(nsJSProtocolHandler, nsIProtocolHandler)
|
||||
const nsCString& aSpec, const char* aCharset, nsACString& aUTF8Spec) {
|
||||
aUTF8Spec.Truncate();
|
||||
|
||||
nsresult rv;
|
||||
|
||||
nsCOMPtr<nsITextToSubURI> txtToSubURI =
|
||||
do_GetService(NS_ITEXTTOSUBURI_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsAutoString uStr;
|
||||
rv = txtToSubURI->UnEscapeNonAsciiURI(nsDependentCString(aCharset), aSpec,
|
||||
uStr);
|
||||
nsresult rv = nsTextToSubURI::UnEscapeNonAsciiURI(
|
||||
nsDependentCString(aCharset), aSpec, uStr);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (!IsAscii(uStr)) {
|
||||
|
@ -15,6 +15,7 @@ XPIDL_MODULE = "uconv"
|
||||
|
||||
EXPORTS += [
|
||||
"nsConverterInputStream.h",
|
||||
"nsTextToSubURI.h",
|
||||
]
|
||||
|
||||
UNIFIED_SOURCES += [
|
||||
|
@ -55,5 +55,6 @@ interface nsITextToSubURI : nsISupports
|
||||
* @throws NS_ERROR_UCONV_NOCONV when there is no decoder for aCharset
|
||||
* or NS_ERROR_UDEC_ILLEGALINPUT in case of conversion failure
|
||||
*/
|
||||
[binaryname(UnEscapeNonAsciiURIJS)]
|
||||
AString unEscapeNonAsciiURI(in ACString aCharset, in AUTF8String aURIFragment);
|
||||
};
|
||||
|
@ -71,6 +71,7 @@ static bool statefulCharset(const char* charset) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// static
|
||||
nsresult nsTextToSubURI::convertURItoUnicode(const nsCString& aCharset,
|
||||
const nsCString& aURI,
|
||||
nsAString& aOut) {
|
||||
@ -141,9 +142,16 @@ NS_IMETHODIMP nsTextToSubURI::UnEscapeURIForUI(const nsACString& aURIFragment,
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextToSubURI::UnEscapeNonAsciiURI(const nsACString& aCharset,
|
||||
const nsACString& aURIFragment,
|
||||
nsAString& _retval) {
|
||||
nsTextToSubURI::UnEscapeNonAsciiURIJS(const nsACString& aCharset,
|
||||
const nsACString& aURIFragment,
|
||||
nsAString& _retval) {
|
||||
return UnEscapeNonAsciiURI(aCharset, aURIFragment, _retval);
|
||||
}
|
||||
|
||||
// static
|
||||
nsresult nsTextToSubURI::UnEscapeNonAsciiURI(const nsACString& aCharset,
|
||||
const nsACString& aURIFragment,
|
||||
nsAString& _retval) {
|
||||
nsAutoCString unescapedSpec;
|
||||
NS_UnescapeURL(PromiseFlatCString(aURIFragment),
|
||||
esc_AlwaysCopy | esc_OnlyNonASCII, unescapedSpec);
|
||||
|
@ -15,12 +15,18 @@ class nsTextToSubURI : public nsITextToSubURI {
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSITEXTTOSUBURI
|
||||
|
||||
// Thread-safe function for C++ callers
|
||||
static nsresult UnEscapeNonAsciiURI(const nsACString& aCharset,
|
||||
const nsACString& aURIFragment,
|
||||
nsAString& _retval);
|
||||
|
||||
private:
|
||||
virtual ~nsTextToSubURI();
|
||||
|
||||
// We assume that the URI is encoded as UTF-8.
|
||||
nsresult convertURItoUnicode(const nsCString& aCharset, const nsCString& aURI,
|
||||
nsAString& _retval);
|
||||
static nsresult convertURItoUnicode(const nsCString& aCharset,
|
||||
const nsCString& aURI,
|
||||
nsAString& _retval);
|
||||
|
||||
// Characters defined in netwerk/dns/IDNCharacterBlocklist.inc or via the
|
||||
// network.IDN.extra_allowed_chars and network.IDN.extra_blocked_chars prefs.
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include <shlobj.h>
|
||||
#include "nsIWindowsRegKey.h"
|
||||
#include "nsUnicharUtils.h"
|
||||
#include "nsITextToSubURI.h"
|
||||
#include "nsTextToSubURI.h"
|
||||
#include "nsVariant.h"
|
||||
#include "mozilla/CmdLineAndEnvUtils.h"
|
||||
#include "mozilla/ShellHeaderOnlyUtils.h"
|
||||
@ -287,13 +287,8 @@ nsresult nsMIMEInfoWin::LoadUriInternal(nsIURI* aURL) {
|
||||
|
||||
// Unescape non-ASCII characters in the URL
|
||||
nsAutoString utf16Spec;
|
||||
|
||||
nsCOMPtr<nsITextToSubURI> textToSubURI =
|
||||
do_GetService(NS_ITEXTTOSUBURI_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (NS_FAILED(textToSubURI->UnEscapeNonAsciiURI("UTF-8"_ns, urlSpec,
|
||||
utf16Spec))) {
|
||||
if (NS_FAILED(nsTextToSubURI::UnEscapeNonAsciiURI("UTF-8"_ns, urlSpec,
|
||||
utf16Spec))) {
|
||||
CopyASCIItoUTF16(urlSpec, utf16Spec);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user