diff --git a/mozilla/htmlparser/public/nsIParserService.h b/mozilla/htmlparser/public/nsIParserService.h
index 3ea9acb2cfc..7900a419a03 100644
--- a/mozilla/htmlparser/public/nsIParserService.h
+++ b/mozilla/htmlparser/public/nsIParserService.h
@@ -103,6 +103,11 @@ class nsIParserService : public nsISupports {
NS_IMETHOD GetTopicObservers(const nsAString& aTopic,
nsIObserverEntry** aEntry) = 0;
+ virtual PRBool IsValidQName(const nsASingleFragmentString& aQName,
+ PRBool aNamespaceAware,
+ const PRUnichar** aColon) = 0;
+ virtual PRBool IsXMLLetter(PRUnichar aChar) = 0;
+ virtual PRBool IsXMLNCNameChar(PRUnichar aChar) = 0;
};
#endif // nsIParserService_h__
diff --git a/mozilla/htmlparser/src/nsExpatDriver.cpp b/mozilla/htmlparser/src/nsExpatDriver.cpp
index 91c8cf85ed6..9344b4ea767 100644
--- a/mozilla/htmlparser/src/nsExpatDriver.cpp
+++ b/mozilla/htmlparser/src/nsExpatDriver.cpp
@@ -699,10 +699,11 @@ nsExpatDriver::OpenInputStreamFromExternalDTD(const PRUnichar* aFPIStr,
{
nsresult rv;
nsCOMPtr baseURI;
- rv = NS_NewURI(getter_AddRefs(baseURI), NS_ConvertUCS2toUTF8(aBaseURL).get());
+ rv = NS_NewURI(getter_AddRefs(baseURI), NS_ConvertUTF16toUTF8(aBaseURL));
if (NS_SUCCEEDED(rv) && baseURI) {
nsCOMPtr uri;
- rv = NS_NewURI(getter_AddRefs(uri), NS_ConvertUCS2toUTF8(aURLStr).get(), baseURI);
+ rv = NS_NewURI(getter_AddRefs(uri), NS_ConvertUTF16toUTF8(aURLStr), nsnull,
+ baseURI);
if (NS_SUCCEEDED(rv) && uri) {
// check if it is alright to load this uri
PRBool isChrome = PR_FALSE;
@@ -721,7 +722,7 @@ nsExpatDriver::OpenInputStreamFromExternalDTD(const PRUnichar* aFPIStr,
rv = NS_OpenURI(in, uri);
nsCAutoString absURL;
uri->GetSpec(absURL);
- aAbsURL = NS_ConvertUTF8toUCS2(absURL);
+ CopyUTF8toUTF16(absURL, aAbsURL);
}
}
return rv;
diff --git a/mozilla/htmlparser/src/nsParserService.h b/mozilla/htmlparser/src/nsParserService.h
index 6d3baa15f06..a82cb6179c2 100644
--- a/mozilla/htmlparser/src/nsParserService.h
+++ b/mozilla/htmlparser/src/nsParserService.h
@@ -25,6 +25,11 @@
#include "nsDTDUtils.h"
#include "nsVoidArray.h"
+extern "C" int MOZ_XMLIsValidQName(const char* ptr, const char* end,
+ int ns_aware, const char** colon);
+extern "C" int MOZ_XMLIsLetter(const char* ptr);
+extern "C" int MOZ_XMLIsNCNameChar(const char* ptr);
+
class nsParserService : public nsIParserService {
public:
nsParserService();
@@ -48,7 +53,7 @@ public:
NS_IMETHOD IsContainer(PRInt32 aId, PRBool& aIsContainer) const;
NS_IMETHOD IsBlock(PRInt32 aId, PRBool& aIsBlock) const;
- // Observer mechanism5
+ // Observer mechanism
NS_IMETHOD RegisterObserver(nsIElementObserver* aObserver,
const nsAString& aTopic,
const eHTMLTags* aTags = nsnull);
@@ -57,6 +62,30 @@ public:
const nsAString& aTopic);
NS_IMETHOD GetTopicObservers(const nsAString& aTopic,
nsIObserverEntry** aEntry);
+
+ PRBool IsValidQName(const nsASingleFragmentString& aQName,
+ PRBool aNamespaceAware,
+ const PRUnichar** aColon)
+ {
+ const char* colon;
+ const PRUnichar *begin, *end;
+ aQName.BeginReading(begin);
+ aQName.EndReading(end);
+ int result = MOZ_XMLIsValidQName(NS_REINTERPRET_CAST(const char*, begin),
+ NS_REINTERPRET_CAST(const char*, end),
+ aNamespaceAware, &colon);
+ *aColon = NS_REINTERPRET_CAST(const PRUnichar*, colon);
+ return !!result;
+ }
+ PRBool IsXMLLetter(PRUnichar aChar)
+ {
+ return MOZ_XMLIsLetter(NS_REINTERPRET_CAST(const char*, &aChar));
+ }
+ PRBool IsXMLNCNameChar(PRUnichar aChar)
+ {
+ return MOZ_XMLIsNCNameChar(NS_REINTERPRET_CAST(const char*, &aChar));
+ }
+
protected:
nsObserverEntry* GetEntry(const nsAString& aTopic);
nsresult CreateEntry(const nsAString& aTopic,
diff --git a/mozilla/parser/htmlparser/public/nsIParserService.h b/mozilla/parser/htmlparser/public/nsIParserService.h
index 3ea9acb2cfc..7900a419a03 100644
--- a/mozilla/parser/htmlparser/public/nsIParserService.h
+++ b/mozilla/parser/htmlparser/public/nsIParserService.h
@@ -103,6 +103,11 @@ class nsIParserService : public nsISupports {
NS_IMETHOD GetTopicObservers(const nsAString& aTopic,
nsIObserverEntry** aEntry) = 0;
+ virtual PRBool IsValidQName(const nsASingleFragmentString& aQName,
+ PRBool aNamespaceAware,
+ const PRUnichar** aColon) = 0;
+ virtual PRBool IsXMLLetter(PRUnichar aChar) = 0;
+ virtual PRBool IsXMLNCNameChar(PRUnichar aChar) = 0;
};
#endif // nsIParserService_h__
diff --git a/mozilla/parser/htmlparser/src/nsExpatDriver.cpp b/mozilla/parser/htmlparser/src/nsExpatDriver.cpp
index 91c8cf85ed6..9344b4ea767 100644
--- a/mozilla/parser/htmlparser/src/nsExpatDriver.cpp
+++ b/mozilla/parser/htmlparser/src/nsExpatDriver.cpp
@@ -699,10 +699,11 @@ nsExpatDriver::OpenInputStreamFromExternalDTD(const PRUnichar* aFPIStr,
{
nsresult rv;
nsCOMPtr baseURI;
- rv = NS_NewURI(getter_AddRefs(baseURI), NS_ConvertUCS2toUTF8(aBaseURL).get());
+ rv = NS_NewURI(getter_AddRefs(baseURI), NS_ConvertUTF16toUTF8(aBaseURL));
if (NS_SUCCEEDED(rv) && baseURI) {
nsCOMPtr uri;
- rv = NS_NewURI(getter_AddRefs(uri), NS_ConvertUCS2toUTF8(aURLStr).get(), baseURI);
+ rv = NS_NewURI(getter_AddRefs(uri), NS_ConvertUTF16toUTF8(aURLStr), nsnull,
+ baseURI);
if (NS_SUCCEEDED(rv) && uri) {
// check if it is alright to load this uri
PRBool isChrome = PR_FALSE;
@@ -721,7 +722,7 @@ nsExpatDriver::OpenInputStreamFromExternalDTD(const PRUnichar* aFPIStr,
rv = NS_OpenURI(in, uri);
nsCAutoString absURL;
uri->GetSpec(absURL);
- aAbsURL = NS_ConvertUTF8toUCS2(absURL);
+ CopyUTF8toUTF16(absURL, aAbsURL);
}
}
return rv;
diff --git a/mozilla/parser/htmlparser/src/nsParserService.h b/mozilla/parser/htmlparser/src/nsParserService.h
index 6d3baa15f06..a82cb6179c2 100644
--- a/mozilla/parser/htmlparser/src/nsParserService.h
+++ b/mozilla/parser/htmlparser/src/nsParserService.h
@@ -25,6 +25,11 @@
#include "nsDTDUtils.h"
#include "nsVoidArray.h"
+extern "C" int MOZ_XMLIsValidQName(const char* ptr, const char* end,
+ int ns_aware, const char** colon);
+extern "C" int MOZ_XMLIsLetter(const char* ptr);
+extern "C" int MOZ_XMLIsNCNameChar(const char* ptr);
+
class nsParserService : public nsIParserService {
public:
nsParserService();
@@ -48,7 +53,7 @@ public:
NS_IMETHOD IsContainer(PRInt32 aId, PRBool& aIsContainer) const;
NS_IMETHOD IsBlock(PRInt32 aId, PRBool& aIsBlock) const;
- // Observer mechanism5
+ // Observer mechanism
NS_IMETHOD RegisterObserver(nsIElementObserver* aObserver,
const nsAString& aTopic,
const eHTMLTags* aTags = nsnull);
@@ -57,6 +62,30 @@ public:
const nsAString& aTopic);
NS_IMETHOD GetTopicObservers(const nsAString& aTopic,
nsIObserverEntry** aEntry);
+
+ PRBool IsValidQName(const nsASingleFragmentString& aQName,
+ PRBool aNamespaceAware,
+ const PRUnichar** aColon)
+ {
+ const char* colon;
+ const PRUnichar *begin, *end;
+ aQName.BeginReading(begin);
+ aQName.EndReading(end);
+ int result = MOZ_XMLIsValidQName(NS_REINTERPRET_CAST(const char*, begin),
+ NS_REINTERPRET_CAST(const char*, end),
+ aNamespaceAware, &colon);
+ *aColon = NS_REINTERPRET_CAST(const PRUnichar*, colon);
+ return !!result;
+ }
+ PRBool IsXMLLetter(PRUnichar aChar)
+ {
+ return MOZ_XMLIsLetter(NS_REINTERPRET_CAST(const char*, &aChar));
+ }
+ PRBool IsXMLNCNameChar(PRUnichar aChar)
+ {
+ return MOZ_XMLIsNCNameChar(NS_REINTERPRET_CAST(const char*, &aChar));
+ }
+
protected:
nsObserverEntry* GetEntry(const nsAString& aTopic);
nsresult CreateEntry(const nsAString& aTopic,