diff --git a/content/html/content/public/nsIFormSubmission.h b/content/html/content/public/nsIFormSubmission.h
index 364332c6d447..f183a18df9da 100644
--- a/content/html/content/public/nsIFormSubmission.h
+++ b/content/html/content/public/nsIFormSubmission.h
@@ -56,10 +56,13 @@ class nsISaveAsCharset;
* Class for form submissions; encompasses the function to call to submit as
* well as the form submission name/value pairs
*/
-class nsFormSubmission {
-
+class nsFormSubmission
+{
public:
- virtual ~nsFormSubmission();
+ virtual ~nsFormSubmission()
+ {
+ MOZ_COUNT_DTOR(nsFormSubmission);
+ }
/**
* Submit a name/value pair
@@ -103,7 +106,22 @@ protected:
*
* @param aCharset the charset of the form as a string
*/
- nsFormSubmission(const nsACString& aCharset);
+ nsFormSubmission(const nsACString& aCharset)
+ : mCharset(aCharset)
+ {
+ MOZ_COUNT_CTOR(nsFormSubmission);
+ }
+
+ // The name of the encoder charset
+ nsCString mCharset;
+};
+
+class nsEncodingFormSubmission : public nsFormSubmission
+{
+public:
+ nsEncodingFormSubmission(const nsACString& aCharset);
+
+ virtual ~nsEncodingFormSubmission();
/**
* Encode a Unicode string to bytes using the encoder (or just copy the input
@@ -114,13 +132,11 @@ protected:
*/
nsresult EncodeVal(const nsAString& aStr, nsACString& aResult);
- // The name of the encoder charset
- nsCString mCharset;
+private:
// The encoder that will encode Unicode names and values
nsCOMPtr mEncoder;
};
-
/**
* Get a submission object based on attributes in the form (ENCTYPE and METHOD)
*
@@ -130,5 +146,4 @@ protected:
nsresult GetSubmissionFromForm(nsGenericHTMLElement* aForm,
nsFormSubmission** aFormSubmission);
-
#endif /* nsIFormSubmission_h___ */
diff --git a/content/html/content/src/nsFormSubmission.cpp b/content/html/content/src/nsFormSubmission.cpp
index 784bdc0a97b7..994fc95451ee 100644
--- a/content/html/content/src/nsFormSubmission.cpp
+++ b/content/html/content/src/nsFormSubmission.cpp
@@ -89,7 +89,7 @@ SendJSWarning(nsIDocument* aDocument,
// --------------------------------------------------------------------------
-class nsFSURLEncoded : public nsFormSubmission
+class nsFSURLEncoded : public nsEncodingFormSubmission
{
public:
/**
@@ -100,7 +100,7 @@ public:
nsFSURLEncoded(const nsACString& aCharset,
PRInt32 aMethod,
nsIDocument* aDocument)
- : nsFormSubmission(aCharset),
+ : nsEncodingFormSubmission(aCharset),
mMethod(aMethod),
mDocument(aDocument),
mWarnedFileControl(PR_FALSE)
@@ -383,13 +383,14 @@ nsFSURLEncoded::URLEncode(const nsAString& aStr, nsCString& aEncoded)
* Handle multipart/form-data encoding, which does files as well as normal
* inputs. This always does POST.
*/
-class nsFSMultipartFormData : public nsFormSubmission
+class nsFSMultipartFormData : public nsEncodingFormSubmission
{
public:
/**
* @param aCharset the charset of the form as a string
*/
nsFSMultipartFormData(const nsACString& aCharset);
+ ~nsFSMultipartFormData();
virtual nsresult AddNameValuePair(const nsAString& aName,
const nsAString& aValue);
@@ -431,7 +432,7 @@ private:
};
nsFSMultipartFormData::nsFSMultipartFormData(const nsACString& aCharset)
- : nsFormSubmission(aCharset)
+ : nsEncodingFormSubmission(aCharset)
{
mPostDataStream =
do_CreateInstance("@mozilla.org/io/multiplex-input-stream;1");
@@ -611,11 +612,11 @@ nsFSMultipartFormData::AddPostDataStream()
// --------------------------------------------------------------------------
-class nsFSTextPlain : public nsFormSubmission
+class nsFSTextPlain : public nsEncodingFormSubmission
{
public:
nsFSTextPlain(const nsACString& aCharset)
- : nsFormSubmission(aCharset)
+ : nsEncodingFormSubmission(aCharset)
{
}
@@ -710,11 +711,9 @@ nsFSTextPlain::GetEncodedSubmission(nsIURI* aURI,
// --------------------------------------------------------------------------
-nsFormSubmission::nsFormSubmission(const nsACString& aCharset)
- : mCharset(aCharset)
+nsEncodingFormSubmission::nsEncodingFormSubmission(const nsACString& aCharset)
+ : nsFormSubmission(aCharset)
{
- MOZ_COUNT_CTOR(nsFormSubmission);
-
nsCAutoString charset(aCharset);
// canonical name is passed so that we just have to check against
// *our* canonical names listed in charsetaliases.properties
@@ -742,14 +741,13 @@ nsFormSubmission::nsFormSubmission(const nsACString& aCharset)
}
}
-nsFormSubmission::~nsFormSubmission()
+nsEncodingFormSubmission::~nsEncodingFormSubmission()
{
- MOZ_COUNT_DTOR(nsFormSubmission);
}
// i18n helper routines
nsresult
-nsFormSubmission::EncodeVal(const nsAString& aStr, nsACString& aOut)
+nsEncodingFormSubmission::EncodeVal(const nsAString& aStr, nsACString& aOut)
{
if (mEncoder) {
aOut.Truncate();