mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 11:25:00 +00:00
Landing fix for bug 249366. Better error handing for webservices. Patch by keeda@hotpop.com, r=chantepie@altern.org, sr=jst@mozilla.org
This commit is contained in:
parent
97d293e4bd
commit
3c883bda20
@ -44,13 +44,13 @@ interface nsISchemaType;
|
||||
interface nsIDOMElement;
|
||||
interface nsISchemaLoadListener;
|
||||
|
||||
[scriptable, uuid(77061d1d-e191-11d8-a3cc-000393b6661a)]
|
||||
[scriptable, uuid(9B2F0B4A-8F00-4a78-961A-7E84ED49B0B6)]
|
||||
interface nsISchemaLoader : nsISupports {
|
||||
nsISchema load(in AString schemaURI);
|
||||
void loadAsync(in AString schemaURI,
|
||||
in nsISchemaLoadListener listener);
|
||||
nsISchema processSchemaElement(in nsIWebServiceErrorHandler aErrorHandler,
|
||||
in nsIDOMElement element);
|
||||
nsISchema processSchemaElement(in nsIDOMElement element,
|
||||
in nsIWebServiceErrorHandler aErrorHandler);
|
||||
};
|
||||
|
||||
[scriptable, function, uuid(8d9aa9ce-e191-11d8-9f31-000393b6661a)]
|
||||
|
@ -155,7 +155,7 @@ LoadListener::HandleEvent(nsIDOMEvent *event)
|
||||
|
||||
//XXXTelemac TODO Use an nsIWebServiceErrorHandler instead of nsnull
|
||||
if (element)
|
||||
rv = mLoader->ProcessSchemaElement(nsnull, element, getter_AddRefs(schema));
|
||||
rv = mLoader->ProcessSchemaElement(element, nsnull, getter_AddRefs(schema));
|
||||
else
|
||||
rv = NS_ERROR_SCHEMA_NOT_SCHEMA_ELEMENT;
|
||||
}
|
||||
@ -708,7 +708,8 @@ nsSchemaLoader::Load(const nsAString& schemaURI,
|
||||
nsCOMPtr<nsIDOMElement> element;
|
||||
document->GetDocumentElement(getter_AddRefs(element));
|
||||
if (element) {
|
||||
rv = ProcessSchemaElement(nsnull, element, _retval); //XXXTelemac TODO Have an error handler there instead or nsnull
|
||||
//XXXTelemac TODO Have an error handler there instead or nsnull
|
||||
rv = ProcessSchemaElement(element, nsnull, _retval);
|
||||
}
|
||||
else {
|
||||
rv = NS_ERROR_SCHEMA_NOT_SCHEMA_ELEMENT;
|
||||
@ -784,10 +785,10 @@ static const char* kSchemaNamespaces[] = {NS_SCHEMA_1999_NAMESPACE,
|
||||
NS_SCHEMA_2001_NAMESPACE};
|
||||
static PRUint32 kSchemaNamespacesLength = sizeof(kSchemaNamespaces) / sizeof(const char*);
|
||||
|
||||
/* nsISchema processSchemaElement (in nsIWebServiceErrorHandler aErrorHandler, in nsIDOMElement element); */
|
||||
/* nsISchema processSchemaElement (in nsIDOMElement element, in nsIWebServiceErrorHandler aErrorHandler); */
|
||||
NS_IMETHODIMP
|
||||
nsSchemaLoader::ProcessSchemaElement(nsIWebServiceErrorHandler* aErrorHandler,
|
||||
nsIDOMElement* aElement,
|
||||
nsSchemaLoader::ProcessSchemaElement(nsIDOMElement* aElement,
|
||||
nsIWebServiceErrorHandler* aErrorHandler,
|
||||
nsISchema **_retval)
|
||||
{
|
||||
NS_ENSURE_ARG(aElement);
|
||||
|
@ -378,7 +378,7 @@ nsWSDLLoadRequest::LoadDefinition(const nsAString& aURI)
|
||||
IsElementOfNamespace(element,
|
||||
NS_LITERAL_STRING(SCHEMA_1999_NAMESPACE))) {
|
||||
nsCOMPtr<nsISchema> schema;
|
||||
rv = mSchemaLoader->ProcessSchemaElement(mErrorHandler, element,
|
||||
rv = mSchemaLoader->ProcessSchemaElement(element, mErrorHandler,
|
||||
getter_AddRefs(schema));
|
||||
if (NS_FAILED(rv)) {
|
||||
return NS_ERROR_WSDL_SCHEMA_PROCESSING_ERROR;
|
||||
@ -511,7 +511,7 @@ nsWSDLLoadRequest::HandleEvent(nsIDOMEvent *event)
|
||||
IsElementOfNamespace(element,
|
||||
NS_LITERAL_STRING(SCHEMA_1999_NAMESPACE))) {
|
||||
nsCOMPtr<nsISchema> schema;
|
||||
rv = mSchemaLoader->ProcessSchemaElement(mErrorHandler, element,
|
||||
rv = mSchemaLoader->ProcessSchemaElement(element, mErrorHandler,
|
||||
getter_AddRefs(schema));
|
||||
if (NS_FAILED(rv)) {
|
||||
return NS_ERROR_WSDL_SCHEMA_PROCESSING_ERROR;
|
||||
@ -994,7 +994,7 @@ nsWSDLLoadRequest::ProcessTypesElement(nsIDOMElement* aElement)
|
||||
// XXX : We need to deal with xs:import elements too.
|
||||
if (tagName == nsWSDLAtoms::sSchema_atom) {
|
||||
nsCOMPtr<nsISchema> schema;
|
||||
rv = mSchemaLoader->ProcessSchemaElement(mErrorHandler, childElement,
|
||||
rv = mSchemaLoader->ProcessSchemaElement(childElement, mErrorHandler,
|
||||
getter_AddRefs(schema));
|
||||
if (NS_FAILED(rv)) {
|
||||
return NS_ERROR_WSDL_SCHEMA_PROCESSING_ERROR;
|
||||
|
@ -310,7 +310,7 @@ nsXFormsModelElement::DoneAddingChildren()
|
||||
nsCOMPtr<nsISchema> schema;
|
||||
// no need to observe errors via the callback. instead, rely on
|
||||
// this method returning a failure code when it encounters errors.
|
||||
rv = mSchemas->ProcessSchemaElement(nsnull, el,
|
||||
rv = mSchemas->ProcessSchemaElement(el, nsnull,
|
||||
getter_AddRefs(schema));
|
||||
if (NS_SUCCEEDED(rv))
|
||||
mSchemaCount++;
|
||||
@ -535,7 +535,7 @@ nsXFormsModelElement::HandleEvent(nsIDOMEvent* aEvent)
|
||||
nsCOMPtr<nsISchema> schema;
|
||||
// no need to observe errors via the callback. instead, rely on
|
||||
// this method returning a failure code when it encounters errors.
|
||||
rv = mSchemas->ProcessSchemaElement(nsnull, el,
|
||||
rv = mSchemas->ProcessSchemaElement(el, nsnull,
|
||||
getter_AddRefs(schema));
|
||||
if (NS_SUCCEEDED(rv))
|
||||
mSchemaCount++;
|
||||
|
Loading…
Reference in New Issue
Block a user