diff --git a/mozilla/content/xul/templates/src/nsXULTemplateBuilder.cpp b/mozilla/content/xul/templates/src/nsXULTemplateBuilder.cpp index 254d7c7b54f..7fce160da68 100644 --- a/mozilla/content/xul/templates/src/nsXULTemplateBuilder.cpp +++ b/mozilla/content/xul/templates/src/nsXULTemplateBuilder.cpp @@ -83,6 +83,8 @@ #include "prlog.h" #include "rdf.h" #include "rdfutil.h" +#include "nsIFormControl.h" +#include "nsIDOMHTMLFormElement.h" // Return values for EnsureElementHasGenericChild() #define NS_RDF_ELEMENT_GOT_CREATED NS_RDF_NO_VALUE @@ -3164,6 +3166,15 @@ RDFGenericBuilderImpl::CreateElement(PRInt32 aNameSpaceID, return NS_ERROR_UNEXPECTED; } + // + nsCOMPtr formControl = do_QueryInterface(result); + if (formControl) { + nsCOMPtr form; + rv = mDocument->GetForm(getter_AddRefs(form)); + if (NS_SUCCEEDED(rv) && form) + formControl->SetForm(form); + } + rv = result->SetDocument(doc, PR_FALSE); NS_ASSERTION(NS_SUCCEEDED(rv), "unable to set element's document"); if (NS_FAILED(rv)) return rv; diff --git a/mozilla/rdf/content/src/nsRDFGenericBuilder.cpp b/mozilla/rdf/content/src/nsRDFGenericBuilder.cpp index 254d7c7b54f..7fce160da68 100644 --- a/mozilla/rdf/content/src/nsRDFGenericBuilder.cpp +++ b/mozilla/rdf/content/src/nsRDFGenericBuilder.cpp @@ -83,6 +83,8 @@ #include "prlog.h" #include "rdf.h" #include "rdfutil.h" +#include "nsIFormControl.h" +#include "nsIDOMHTMLFormElement.h" // Return values for EnsureElementHasGenericChild() #define NS_RDF_ELEMENT_GOT_CREATED NS_RDF_NO_VALUE @@ -3164,6 +3166,15 @@ RDFGenericBuilderImpl::CreateElement(PRInt32 aNameSpaceID, return NS_ERROR_UNEXPECTED; } + // + nsCOMPtr formControl = do_QueryInterface(result); + if (formControl) { + nsCOMPtr form; + rv = mDocument->GetForm(getter_AddRefs(form)); + if (NS_SUCCEEDED(rv) && form) + formControl->SetForm(form); + } + rv = result->SetDocument(doc, PR_FALSE); NS_ASSERTION(NS_SUCCEEDED(rv), "unable to set element's document"); if (NS_FAILED(rv)) return rv; diff --git a/mozilla/rdf/content/src/nsXULTemplateBuilder.cpp b/mozilla/rdf/content/src/nsXULTemplateBuilder.cpp index 254d7c7b54f..7fce160da68 100644 --- a/mozilla/rdf/content/src/nsXULTemplateBuilder.cpp +++ b/mozilla/rdf/content/src/nsXULTemplateBuilder.cpp @@ -83,6 +83,8 @@ #include "prlog.h" #include "rdf.h" #include "rdfutil.h" +#include "nsIFormControl.h" +#include "nsIDOMHTMLFormElement.h" // Return values for EnsureElementHasGenericChild() #define NS_RDF_ELEMENT_GOT_CREATED NS_RDF_NO_VALUE @@ -3164,6 +3166,15 @@ RDFGenericBuilderImpl::CreateElement(PRInt32 aNameSpaceID, return NS_ERROR_UNEXPECTED; } + // + nsCOMPtr formControl = do_QueryInterface(result); + if (formControl) { + nsCOMPtr form; + rv = mDocument->GetForm(getter_AddRefs(form)); + if (NS_SUCCEEDED(rv) && form) + formControl->SetForm(form); + } + rv = result->SetDocument(doc, PR_FALSE); NS_ASSERTION(NS_SUCCEEDED(rv), "unable to set element's document"); if (NS_FAILED(rv)) return rv;