diff --git a/mozilla/extensions/schema-validation/src/nsSchemaValidator.cpp b/mozilla/extensions/schema-validation/src/nsSchemaValidator.cpp index 24d4698c254..a1c46328047 100644 --- a/mozilla/extensions/schema-validation/src/nsSchemaValidator.cpp +++ b/mozilla/extensions/schema-validation/src/nsSchemaValidator.cpp @@ -3280,11 +3280,15 @@ nsSchemaValidator::IsValidSchemaAnyURI(const nsAString & aString) { PRBool isValid = PR_FALSE; - nsCOMPtr uri; - nsresult rv = NS_NewURI(getter_AddRefs(uri), aString); - - if (rv == NS_OK) + if (aString.IsEmpty()) { isValid = PR_TRUE; + } else { + nsCOMPtr uri; + nsresult rv = NS_NewURI(getter_AddRefs(uri), aString); + + if (rv == NS_OK) + isValid = PR_TRUE; + } return isValid; } diff --git a/mozilla/extensions/schema-validation/tests/schema.html b/mozilla/extensions/schema-validation/tests/schema.html index 8f4617fad51..b427caf301f 100644 --- a/mozilla/extensions/schema-validation/tests/schema.html +++ b/mozilla/extensions/schema-validation/tests/schema.html @@ -520,6 +520,8 @@ validate("21:30:45", "time-test-3", true); validate("http://www.foo.com", "anyuri-test-1", true); + validate("", "anyuri-test-1", true); + validate("f", "anyuri-test-1", false); validate("bar..com", "anyuri-test-1", false); validate("http://www.foo.com", "anyuri-test-2", true);