Bug 1721349 - Move mSubmitter from HTMLFormSubmission to FormData and make it participate in cycle collection; r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D120334
This commit is contained in:
@@ -18,13 +18,15 @@ using namespace mozilla::dom;
|
||||
|
||||
FormData::FormData(nsISupports* aOwner, NotNull<const Encoding*> aEncoding,
|
||||
Element* aSubmitter)
|
||||
: HTMLFormSubmission(nullptr, u""_ns, aEncoding, aSubmitter),
|
||||
mOwner(aOwner) {}
|
||||
: HTMLFormSubmission(nullptr, u""_ns, aEncoding),
|
||||
mOwner(aOwner),
|
||||
mSubmitter(aSubmitter) {}
|
||||
|
||||
FormData::FormData(const FormData& aFormData)
|
||||
: HTMLFormSubmission(aFormData.mActionURL, aFormData.mTarget,
|
||||
aFormData.mEncoding, aFormData.mSubmitter) {
|
||||
aFormData.mEncoding) {
|
||||
mOwner = aFormData.mOwner;
|
||||
mSubmitter = aFormData.mSubmitter;
|
||||
mFormData = aFormData.mFormData.Clone();
|
||||
}
|
||||
|
||||
@@ -71,6 +73,7 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(FormData)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(FormData)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOwner)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mSubmitter)
|
||||
|
||||
for (uint32_t i = 0, len = tmp->mFormData.Length(); i < len; ++i) {
|
||||
ImplCycleCollectionUnlink(tmp->mFormData[i].value);
|
||||
@@ -81,6 +84,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(FormData)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mOwner)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mSubmitter)
|
||||
|
||||
for (uint32_t i = 0, len = tmp->mFormData.Length(); i < len; ++i) {
|
||||
ImplCycleCollectionTraverse(cb, tmp->mFormData[i].value,
|
||||
|
||||
@@ -149,9 +149,14 @@ class FormData final : public nsISupports,
|
||||
|
||||
nsresult CopySubmissionDataTo(HTMLFormSubmission* aFormSubmission) const;
|
||||
|
||||
Element* GetSubmitterElement() const { return mSubmitter.get(); }
|
||||
|
||||
private:
|
||||
nsCOMPtr<nsISupports> mOwner;
|
||||
|
||||
// Submitter element.
|
||||
RefPtr<Element> mSubmitter;
|
||||
|
||||
nsTArray<FormDataTuple> mFormData;
|
||||
};
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
#include "mozilla/dom/HTMLButtonElement.h"
|
||||
|
||||
#include "HTMLFormSubmissionConstants.h"
|
||||
#include "mozilla/dom/FormData.h"
|
||||
#include "mozilla/dom/HTMLButtonElementBinding.h"
|
||||
#include "mozilla/dom/HTMLFormSubmission.h"
|
||||
#include "nsAttrValueInlines.h"
|
||||
#include "nsGkAtoms.h"
|
||||
#include "nsStyleConsts.h"
|
||||
@@ -288,11 +288,11 @@ NS_IMETHODIMP
|
||||
HTMLButtonElement::Reset() { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP
|
||||
HTMLButtonElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
HTMLButtonElement::SubmitNamesValues(FormData* aFormData) {
|
||||
//
|
||||
// We only submit if we were the button pressed
|
||||
//
|
||||
if (aFormSubmission->GetSubmitterElement() != this) {
|
||||
if (aFormData->GetSubmitterElement() != this) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -319,7 +319,7 @@ HTMLButtonElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
//
|
||||
// Submit
|
||||
//
|
||||
return aFormSubmission->AddNameValuePair(name, value);
|
||||
return aFormData->AddNameValuePair(name, value);
|
||||
}
|
||||
|
||||
void HTMLButtonElement::DoneCreatingElement() {
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace mozilla {
|
||||
class EventChainPostVisitor;
|
||||
class EventChainPreVisitor;
|
||||
namespace dom {
|
||||
class FormData;
|
||||
|
||||
class HTMLButtonElement final : public nsGenericHTMLFormElementWithState,
|
||||
public nsIConstraintValidation {
|
||||
@@ -40,7 +41,7 @@ class HTMLButtonElement final : public nsGenericHTMLFormElementWithState,
|
||||
|
||||
// overriden nsIFormControl methods
|
||||
NS_IMETHOD Reset() override;
|
||||
NS_IMETHOD SubmitNamesValues(HTMLFormSubmission* aFormSubmission) override;
|
||||
NS_IMETHOD SubmitNamesValues(FormData* aFormData) override;
|
||||
NS_IMETHOD SaveState() override;
|
||||
bool RestoreState(PresState* aState) override;
|
||||
virtual bool IsDisabledForEvents(WidgetEvent* aEvent) override;
|
||||
|
||||
@@ -114,11 +114,6 @@ nsIHTMLCollection* HTMLFieldSetElement::Elements() {
|
||||
|
||||
nsresult HTMLFieldSetElement::Reset() { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP
|
||||
HTMLFieldSetElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void HTMLFieldSetElement::InsertChildBefore(nsIContent* aChild,
|
||||
nsIContent* aBeforeThis,
|
||||
bool aNotify, ErrorResult& aRv) {
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
#include "mozilla/Attributes.h"
|
||||
#include "nsGenericHTMLElement.h"
|
||||
#include "nsIConstraintValidation.h"
|
||||
#include "mozilla/dom/HTMLFormElement.h"
|
||||
#include "mozilla/dom/ValidityState.h"
|
||||
|
||||
namespace mozilla {
|
||||
class ErrorResult;
|
||||
class EventChainPreVisitor;
|
||||
namespace dom {
|
||||
class FormData;
|
||||
|
||||
class HTMLFieldSetElement final : public nsGenericHTMLFormElement,
|
||||
public nsIConstraintValidation {
|
||||
@@ -47,7 +47,7 @@ class HTMLFieldSetElement final : public nsGenericHTMLFormElement,
|
||||
|
||||
// nsIFormControl
|
||||
NS_IMETHOD Reset() override;
|
||||
NS_IMETHOD SubmitNamesValues(HTMLFormSubmission* aFormSubmission) override;
|
||||
NS_IMETHOD SubmitNamesValues(FormData* aFormData) override { return NS_OK; }
|
||||
virtual bool IsDisabledForEvents(WidgetEvent* aEvent) override;
|
||||
virtual nsresult Clone(dom::NodeInfo*, nsINode** aResult) const override;
|
||||
|
||||
|
||||
@@ -32,7 +32,9 @@ namespace mozilla {
|
||||
class EventChainPostVisitor;
|
||||
class EventChainPreVisitor;
|
||||
namespace dom {
|
||||
class DialogFormSubmission;
|
||||
class HTMLFormControlsCollection;
|
||||
class HTMLFormSubmission;
|
||||
class HTMLImageElement;
|
||||
class FormData;
|
||||
|
||||
|
||||
@@ -687,11 +687,10 @@ nsresult FSTextPlain::GetEncodedSubmission(nsIURI* aURI,
|
||||
|
||||
HTMLFormSubmission::HTMLFormSubmission(
|
||||
nsIURI* aActionURL, const nsAString& aTarget,
|
||||
mozilla::NotNull<const mozilla::Encoding*> aEncoding, Element* aSubmitter)
|
||||
mozilla::NotNull<const mozilla::Encoding*> aEncoding)
|
||||
: mActionURL(aActionURL),
|
||||
mTarget(aTarget),
|
||||
mEncoding(aEncoding),
|
||||
mSubmitter(aSubmitter),
|
||||
mInitiatedFromUserInput(UserActivation::IsHandlingUserInput()) {
|
||||
MOZ_COUNT_CTOR(HTMLFormSubmission);
|
||||
}
|
||||
@@ -699,7 +698,7 @@ HTMLFormSubmission::HTMLFormSubmission(
|
||||
EncodingFormSubmission::EncodingFormSubmission(
|
||||
nsIURI* aActionURL, const nsAString& aTarget,
|
||||
NotNull<const Encoding*> aEncoding, Element* aSubmitter)
|
||||
: HTMLFormSubmission(aActionURL, aTarget, aEncoding, aSubmitter) {
|
||||
: HTMLFormSubmission(aActionURL, aTarget, aEncoding) {
|
||||
if (!aEncoding->CanEncodeEverything()) {
|
||||
nsAutoCString name;
|
||||
aEncoding->Name(name);
|
||||
@@ -847,8 +846,8 @@ nsresult HTMLFormSubmission::GetFromForm(HTMLFormElement* aForm,
|
||||
if (aSubmitter) {
|
||||
aSubmitter->ResultForDialogSubmit(result);
|
||||
}
|
||||
*aFormSubmission = new DialogFormSubmission(result, actionURL, target,
|
||||
aEncoding, aSubmitter, dialog);
|
||||
*aFormSubmission =
|
||||
new DialogFormSubmission(result, actionURL, target, aEncoding, dialog);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
class Blob;
|
||||
class DialogFormSubmission;
|
||||
class Directory;
|
||||
class Element;
|
||||
class HTMLFormElement;
|
||||
@@ -93,8 +94,6 @@ class HTMLFormSubmission {
|
||||
*/
|
||||
void GetCharset(nsACString& aCharset) { mEncoding->Name(aCharset); }
|
||||
|
||||
Element* GetSubmitterElement() const { return mSubmitter.get(); }
|
||||
|
||||
/**
|
||||
* Get the action URI that will be used for submission.
|
||||
*/
|
||||
@@ -117,11 +116,9 @@ class HTMLFormSubmission {
|
||||
* Can only be constructed by subclasses.
|
||||
*
|
||||
* @param aEncoding the character encoding of the form
|
||||
* @param aSubmitter the submitter element (can be null)
|
||||
*/
|
||||
HTMLFormSubmission(nsIURI* aActionURL, const nsAString& aTarget,
|
||||
mozilla::NotNull<const mozilla::Encoding*> aEncoding,
|
||||
Element* aSubmitter);
|
||||
mozilla::NotNull<const mozilla::Encoding*> aEncoding);
|
||||
|
||||
// The action url.
|
||||
nsCOMPtr<nsIURI> mActionURL;
|
||||
@@ -132,9 +129,6 @@ class HTMLFormSubmission {
|
||||
// The character encoding of this form submission
|
||||
mozilla::NotNull<const mozilla::Encoding*> mEncoding;
|
||||
|
||||
// Submitter element.
|
||||
RefPtr<Element> mSubmitter;
|
||||
|
||||
// Keep track of whether this form submission was user-initiated or not
|
||||
bool mInitiatedFromUserInput;
|
||||
};
|
||||
@@ -177,9 +171,9 @@ class DialogFormSubmission final : public HTMLFormSubmission {
|
||||
public:
|
||||
DialogFormSubmission(nsAString& aResult, nsIURI* aActionURL,
|
||||
const nsAString& aTarget,
|
||||
NotNull<const Encoding*> aEncoding, Element* aSubmitter,
|
||||
NotNull<const Encoding*> aEncoding,
|
||||
HTMLDialogElement* aDialogElement)
|
||||
: HTMLFormSubmission(aActionURL, aTarget, aEncoding, aSubmitter),
|
||||
: HTMLFormSubmission(aActionURL, aTarget, aEncoding),
|
||||
mDialogElement(aDialogElement),
|
||||
mReturnValue(aResult) {}
|
||||
nsresult AddNameValuePair(const nsAString& aName,
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
#include "mozilla/dom/DocumentOrShadowRoot.h"
|
||||
#include "mozilla/dom/ElementBinding.h"
|
||||
#include "mozilla/dom/FileSystemUtils.h"
|
||||
#include "mozilla/dom/FormData.h"
|
||||
#include "mozilla/dom/GetFilesHelper.h"
|
||||
#include "mozilla/dom/HTMLFormSubmission.h"
|
||||
#include "mozilla/dom/WindowContext.h"
|
||||
#include "mozilla/dom/InputType.h"
|
||||
#include "mozilla/dom/UserActivation.h"
|
||||
@@ -5656,7 +5656,7 @@ HTMLInputElement::Reset() {
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
HTMLInputElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
HTMLInputElement::SubmitNamesValues(FormData* aFormData) {
|
||||
// Disabled elements don't submit
|
||||
// For type=reset, and type=button, we just never submit, period.
|
||||
// For type=image and type=button, we only submit if we were the button
|
||||
@@ -5666,7 +5666,7 @@ HTMLInputElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
mType == FormControlType::InputButton ||
|
||||
((mType == FormControlType::InputSubmit ||
|
||||
mType == FormControlType::InputImage) &&
|
||||
aFormSubmission->GetSubmitterElement() != this) ||
|
||||
aFormData->GetSubmitterElement() != this) ||
|
||||
((mType == FormControlType::InputRadio ||
|
||||
mType == FormControlType::InputCheckbox) &&
|
||||
!mChecked)) {
|
||||
@@ -5696,13 +5696,13 @@ HTMLInputElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
yVal.AppendInt(y);
|
||||
|
||||
if (!name.IsEmpty()) {
|
||||
aFormSubmission->AddNameValuePair(name + u".x"_ns, xVal);
|
||||
aFormSubmission->AddNameValuePair(name + u".y"_ns, yVal);
|
||||
aFormData->AddNameValuePair(name + u".x"_ns, xVal);
|
||||
aFormData->AddNameValuePair(name + u".y"_ns, yVal);
|
||||
} else {
|
||||
// If the Image Element has no name, simply return x and y
|
||||
// to Nav and IE compatibility.
|
||||
aFormSubmission->AddNameValuePair(u"x"_ns, xVal);
|
||||
aFormSubmission->AddNameValuePair(u"y"_ns, yVal);
|
||||
aFormData->AddNameValuePair(u"x"_ns, xVal);
|
||||
aFormData->AddNameValuePair(u"y"_ns, yVal);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
@@ -5730,7 +5730,7 @@ HTMLInputElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
RefPtr<File> file = blob->ToFile(u""_ns, rv);
|
||||
|
||||
if (!rv.Failed()) {
|
||||
aFormSubmission->AddNameBlobPair(name, file);
|
||||
aFormData->AddNameBlobPair(name, file);
|
||||
}
|
||||
|
||||
return rv.StealNSResult();
|
||||
@@ -5738,10 +5738,10 @@ HTMLInputElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
|
||||
for (uint32_t i = 0; i < files.Length(); ++i) {
|
||||
if (files[i].IsFile()) {
|
||||
aFormSubmission->AddNameBlobPair(name, files[i].GetAsFile());
|
||||
aFormData->AddNameBlobPair(name, files[i].GetAsFile());
|
||||
} else {
|
||||
MOZ_ASSERT(files[i].IsDirectory());
|
||||
aFormSubmission->AddNameDirectoryPair(name, files[i].GetAsDirectory());
|
||||
aFormData->AddNameDirectoryPair(name, files[i].GetAsDirectory());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5751,9 +5751,8 @@ HTMLInputElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
if (mType == FormControlType::InputHidden &&
|
||||
name.LowerCaseEqualsLiteral("_charset_")) {
|
||||
nsCString charset;
|
||||
aFormSubmission->GetCharset(charset);
|
||||
return aFormSubmission->AddNameValuePair(name,
|
||||
NS_ConvertASCIItoUTF16(charset));
|
||||
aFormData->GetCharset(charset);
|
||||
return aFormData->AddNameValuePair(name, NS_ConvertASCIItoUTF16(charset));
|
||||
}
|
||||
|
||||
//
|
||||
@@ -5773,7 +5772,7 @@ HTMLInputElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
value = defaultValue;
|
||||
}
|
||||
|
||||
return aFormSubmission->AddNameValuePair(name, value);
|
||||
return aFormData->AddNameValuePair(name, value);
|
||||
}
|
||||
|
||||
static nsTArray<FileContentData> SaveFileContentData(
|
||||
|
||||
@@ -50,6 +50,7 @@ class DispatchChangeEventCallback;
|
||||
class File;
|
||||
class FileList;
|
||||
class FileSystemEntry;
|
||||
class FormData;
|
||||
class GetFilesHelper;
|
||||
class InputType;
|
||||
|
||||
@@ -151,7 +152,7 @@ class HTMLInputElement final : public TextControlElement,
|
||||
// Overriden nsIFormControl methods
|
||||
MOZ_CAN_RUN_SCRIPT_BOUNDARY
|
||||
NS_IMETHOD Reset() override;
|
||||
NS_IMETHOD SubmitNamesValues(HTMLFormSubmission* aFormSubmission) override;
|
||||
NS_IMETHOD SubmitNamesValues(FormData* aFormData) override;
|
||||
NS_IMETHOD SaveState() override;
|
||||
MOZ_CAN_RUN_SCRIPT_BOUNDARY
|
||||
virtual bool RestoreState(PresState* aState) override;
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
#include "mozilla/EventStates.h"
|
||||
#include "mozilla/dom/BindContext.h"
|
||||
#include "mozilla/dom/HTMLFormSubmission.h"
|
||||
#include "mozilla/dom/HTMLObjectElement.h"
|
||||
#include "mozilla/dom/HTMLObjectElementBinding.h"
|
||||
#include "mozilla/dom/ElementInlines.h"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
class HTMLFormSubmission;
|
||||
class FormData;
|
||||
template <typename T>
|
||||
struct Nullable;
|
||||
class WindowProxyHolder;
|
||||
@@ -49,9 +49,7 @@ class HTMLObjectElement final : public nsGenericHTMLFormElement,
|
||||
// Overriden nsIFormControl methods
|
||||
NS_IMETHOD Reset() override { return NS_OK; }
|
||||
|
||||
NS_IMETHOD SubmitNamesValues(HTMLFormSubmission* aFormSubmission) override {
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHOD SubmitNamesValues(FormData* aFormData) override { return NS_OK; }
|
||||
|
||||
virtual void DoneAddingChildren(bool aHaveNotified) override;
|
||||
virtual bool IsDoneAddingChildren() override;
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#include "mozAutoDocUpdate.h"
|
||||
#include "mozilla/EventStates.h"
|
||||
#include "mozilla/dom/HTMLFormElement.h"
|
||||
#include "mozilla/dom/HTMLFormSubmission.h"
|
||||
#include "mozilla/dom/HTMLOutputElementBinding.h"
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsDOMTokenList.h"
|
||||
@@ -54,12 +53,6 @@ HTMLOutputElement::Reset() {
|
||||
return nsContentUtils::SetNodeTextContent(this, mDefaultValue, true);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
HTMLOutputElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
// The output element is not submittable.
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
bool HTMLOutputElement::ParseAttribute(int32_t aNamespaceID, nsAtom* aAttribute,
|
||||
const nsAString& aValue,
|
||||
nsIPrincipal* aMaybeScriptedPrincipal,
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
class HTMLFormSubmission;
|
||||
class FormData;
|
||||
|
||||
class HTMLOutputElement final : public nsGenericHTMLFormElement,
|
||||
public nsStubMutationObserver,
|
||||
@@ -32,7 +32,8 @@ class HTMLOutputElement final : public nsGenericHTMLFormElement,
|
||||
|
||||
// nsIFormControl
|
||||
NS_IMETHOD Reset() override;
|
||||
NS_IMETHOD SubmitNamesValues(HTMLFormSubmission* aFormSubmission) override;
|
||||
// The output element is not submittable.
|
||||
NS_IMETHOD SubmitNamesValues(FormData* aFormData) override { return NS_OK; }
|
||||
|
||||
nsresult Clone(dom::NodeInfo*, nsINode** aResult) const override;
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "mozilla/EventDispatcher.h"
|
||||
#include "mozilla/EventStates.h"
|
||||
#include "mozilla/dom/Element.h"
|
||||
#include "mozilla/dom/HTMLFormSubmission.h"
|
||||
#include "mozilla/dom/FormData.h"
|
||||
#include "mozilla/dom/HTMLOptGroupElement.h"
|
||||
#include "mozilla/dom/HTMLOptionElement.h"
|
||||
#include "mozilla/dom/HTMLSelectElementBinding.h"
|
||||
@@ -1388,7 +1388,7 @@ HTMLSelectElement::Reset() {
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
HTMLSelectElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
HTMLSelectElement::SubmitNamesValues(FormData* aFormData) {
|
||||
// Disabled elements don't submit
|
||||
if (IsDisabled()) {
|
||||
return NS_OK;
|
||||
@@ -1423,7 +1423,7 @@ HTMLSelectElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
nsString value;
|
||||
option->GetValue(value);
|
||||
|
||||
aFormSubmission->AddNameValuePair(name, value);
|
||||
aFormData->AddNameValuePair(name, value);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
|
||||
@@ -34,7 +34,7 @@ class PresState;
|
||||
|
||||
namespace dom {
|
||||
|
||||
class HTMLFormSubmission;
|
||||
class FormData;
|
||||
class HTMLSelectElement;
|
||||
|
||||
class MOZ_STACK_CLASS SafeOptionListMutation {
|
||||
@@ -205,7 +205,7 @@ class HTMLSelectElement final : public nsGenericHTMLFormElementWithState,
|
||||
|
||||
// Overriden nsIFormControl methods
|
||||
NS_IMETHOD Reset() override;
|
||||
NS_IMETHOD SubmitNamesValues(HTMLFormSubmission* aFormSubmission) override;
|
||||
NS_IMETHOD SubmitNamesValues(FormData* aFormData) override;
|
||||
NS_IMETHOD SaveState() override;
|
||||
virtual bool RestoreState(PresState* aState) override;
|
||||
virtual bool IsDisabledForEvents(WidgetEvent* aEvent) override;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "mozAutoDocUpdate.h"
|
||||
#include "mozilla/AsyncEventDispatcher.h"
|
||||
#include "mozilla/Attributes.h"
|
||||
#include "mozilla/dom/HTMLFormSubmission.h"
|
||||
#include "mozilla/dom/FormData.h"
|
||||
#include "mozilla/dom/HTMLTextAreaElementBinding.h"
|
||||
#include "mozilla/dom/MutationEventBinding.h"
|
||||
#include "mozilla/EventDispatcher.h"
|
||||
@@ -677,7 +677,7 @@ nsresult HTMLTextAreaElement::Reset() {
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
HTMLTextAreaElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
HTMLTextAreaElement::SubmitNamesValues(FormData* aFormData) {
|
||||
// Disabled elements don't submit
|
||||
if (IsDisabled()) {
|
||||
return NS_OK;
|
||||
@@ -701,7 +701,7 @@ HTMLTextAreaElement::SubmitNamesValues(HTMLFormSubmission* aFormSubmission) {
|
||||
//
|
||||
// Submit
|
||||
//
|
||||
return aFormSubmission->AddNameValuePair(name, value);
|
||||
return aFormData->AddNameValuePair(name, value);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
||||
@@ -32,7 +32,7 @@ class PresState;
|
||||
|
||||
namespace dom {
|
||||
|
||||
class HTMLFormSubmission;
|
||||
class FormData;
|
||||
|
||||
class HTMLTextAreaElement final : public TextControlElement,
|
||||
public nsStubMutationObserver,
|
||||
@@ -59,7 +59,7 @@ class HTMLTextAreaElement final : public TextControlElement,
|
||||
// nsIFormControl
|
||||
MOZ_CAN_RUN_SCRIPT_BOUNDARY
|
||||
NS_IMETHOD Reset() override;
|
||||
NS_IMETHOD SubmitNamesValues(HTMLFormSubmission* aFormSubmission) override;
|
||||
NS_IMETHOD SubmitNamesValues(FormData* aFormData) override;
|
||||
NS_IMETHOD SaveState() override;
|
||||
virtual bool RestoreState(PresState* aState) override;
|
||||
virtual bool IsDisabledForEvents(WidgetEvent* aEvent) override;
|
||||
|
||||
@@ -14,9 +14,8 @@ namespace mozilla {
|
||||
class PresState;
|
||||
namespace dom {
|
||||
class Element;
|
||||
class FormData;
|
||||
class HTMLFieldSetElement;
|
||||
class HTMLFormSubmission;
|
||||
class DialogFormSubmission;
|
||||
class HTMLFormElement;
|
||||
} // namespace dom
|
||||
} // namespace mozilla
|
||||
@@ -139,13 +138,13 @@ class nsIFormControl : public nsISupports {
|
||||
NS_IMETHOD Reset() = 0;
|
||||
|
||||
/**
|
||||
* Tells the form control to submit its names and values to the form
|
||||
* submission object
|
||||
* @param aFormSubmission the form submission to notify of names/values/files
|
||||
* to submit
|
||||
* Tells the form control to submit its names and values to the form data
|
||||
* object
|
||||
*
|
||||
* @param aFormData the form data to notify of names/values/files to submit
|
||||
*/
|
||||
NS_IMETHOD
|
||||
SubmitNamesValues(mozilla::dom::HTMLFormSubmission* aFormSubmission) = 0;
|
||||
SubmitNamesValues(mozilla::dom::FormData* aFormData) = 0;
|
||||
|
||||
/**
|
||||
* Save to presentation state. The form control will determine whether it
|
||||
|
||||
Reference in New Issue
Block a user