Commit Graph

113 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
1c58e2a928 Bug 1773070 - Unify Gecko and Servo EventState/ElementState bits. r=smaug
Add a dom/base/rust crate called just "dom" where we can share these.

Most of the changes are automatic:

  s/mozilla::EventStates/mozilla::dom::ElementState/
  s/EventStates/ElementState/
  s/NS_EVENT_STATE_/ElementState::/
  s/NS_DOCUMENT_STATE_/DocumentState::/

And so on. This requires a new cbindgen version to avoid ugly casts for
large shifts.

Differential Revision: https://phabricator.services.mozilla.com/D148537
2022-06-07 23:09:52 +00:00
Kagami Sascha Rosylight
fc713c1725 Bug 1539884 - Part 11: Mark HTMLFormElement::Reset as CAN_RUN_SCRIPT r=masayuki
Depends on D133921

Differential Revision: https://phabricator.services.mozilla.com/D133922
2021-12-16 17:17:08 +00:00
Butkovits Atila
0f55d2ea96 Backed out 8 changesets (bug 1539884) for causing build bustages at Document.cpp. CLOSED TREE
Backed out changeset ad65ce9208ce (bug 1539884)
Backed out changeset 15d728ef97ca (bug 1539884)
Backed out changeset de9e2829d42a (bug 1539884)
Backed out changeset a8cfa2201751 (bug 1539884)
Backed out changeset ca21c5838f37 (bug 1539884)
Backed out changeset 3d3019f61b5a (bug 1539884)
Backed out changeset ca7c808621d6 (bug 1539884)
Backed out changeset 57068a40f3c9 (bug 1539884)
2021-12-16 08:12:15 +02:00
Kagami Sascha Rosylight
9aa7c5b6f1 Bug 1539884 - Part 11: Mark HTMLFormElement::Reset as CAN_RUN_SCRIPT r=masayuki
Depends on D133921

Differential Revision: https://phabricator.services.mozilla.com/D133922
2021-12-16 02:58:48 +00:00
Kagami Sascha Rosylight
95253f2665 Bug 1743439 - Part 5: Mark callers in dom/events and dom/html as MOZ_CAN_RUN_SCRIPT_BOUNDARY r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D133364
2021-12-09 19:56:09 +00:00
Alexandru Michis
b3616631ef Backed out 6 changesets (bug 1743439) for causing bustages in AnimationEventDispatcher.h
CLOSED TREE

Backed out changeset 792c405d4afc (bug 1743439)
Backed out changeset 0376e73c7dce (bug 1743439)
Backed out changeset 23202094bc00 (bug 1743439)
Backed out changeset ba0fa3a8fa0e (bug 1743439)
Backed out changeset 7ad2746ec876 (bug 1743439)
Backed out changeset a919ef50cf33 (bug 1743439)
2021-12-09 19:36:12 +02:00
Kagami Sascha Rosylight
1da93efca6 Bug 1743439 - Part 5: Mark callers in dom/events and dom/html as MOZ_CAN_RUN_SCRIPT_BOUNDARY r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D133364
2021-12-09 17:16:50 +00:00
Emilio Cobos Álvarez
1d054196f6 Bug 1740230 - Remove some prefs for pseudo-classes that we have shipped/unshipped successfully. r=dholbert
And remove code for :-moz-submit-invalid completely.

Differential Revision: https://phabricator.services.mozilla.com/D130737
2021-11-10 13:27:47 +00:00
Edgar Chen
4929cc1a94 Bug 1556351 - Part 5: Make nsGenericHTMLFormControlElement implement nsIFormControl; r=smaug
nsGenericHTMLFormElement doesn't implement nsIFormControl now as HTMLElement would
inherit it to be able to be added into HTMLFormElement and HTMLFieldSetElement and
support some common form feature.

So some places that call the nsIFormControl method on nsGenericHTMLFormElement
directly would need to queryInterface it to nsIFormControl first, this should be
fine as those places are not in a hot path.

Differential Revision: https://phabricator.services.mozilla.com/D124788
2021-10-04 20:51:27 +00:00
Edgar Chen
71042191bf Bug 1729008 - Part 2: Make HTMLFormElement::IsLastActiveElement take nsGenericHTMLFormElement as argument; r=smaug
Depends on D124459

Differential Revision: https://phabricator.services.mozilla.com/D124462
2021-09-03 17:21:44 +00:00
Edgar Chen
2f052986f8 Bug 1729008 - Part 1: Make HTMLFormElement::IsDefaultSubmitElement take nsGenericHTMLFormElement as argument; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D124459
2021-09-03 17:21:44 +00:00
Edgar Chen
82070f5956 Bug 1728081 - Part 4: Make HTMLFormElement::GetDefaultSubmitElement return nsGenericHTMLFormElement; r=smaug
so that the callers don't need to queryInterface it back to nsIContent.

Differential Revision: https://phabricator.services.mozilla.com/D123952
2021-08-30 18:44:51 +00:00
Edgar Chen
c791a38187 Bug 1728081 - Part 3: Merge nsIForm into HTMLFormElement; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D123951
2021-08-30 18:44:51 +00:00
Edgar Chen
efa48fcbc4 Bug 1728081 - Part 2: Remove nsIForm::GetElementAt; r=smaug
as it is only used internally.

Depends on D123949

Differential Revision: https://phabricator.services.mozilla.com/D123950
2021-08-30 18:44:51 +00:00
Edgar Chen
6536c5442c Bug 1728081 - Part 1: Remove nsIForm::GetElementCount; r=smaug
as it is only used internally.

Differential Revision: https://phabricator.services.mozilla.com/D123949
2021-08-30 18:44:50 +00:00
Edgar Chen
2a45c41a27 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
2021-07-21 09:52:20 +00:00
Edgar Chen
48de72fff7 Bug 1720314 - Part 2: Remove HTMLFormElement::mWebProgress; r=smaug
Depends on D119776

Differential Revision: https://phabricator.services.mozilla.com/D119777
2021-07-13 16:32:51 +00:00
Edgar Chen
691e17dbb8 Bug 1720314 - Part 1: Remove HTMLFormElement::mSubmittingRequest; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D119776
2021-07-13 16:32:51 +00:00
Dimi Lee
f6bacb0875 Bug 1708455 - P4. Add DOMFormHasPossibleUsernameField event to notify the password manager when a form has a text input or an email input. r=sfoster,tgiles,smaug
Right now, we limit the type of a username field in username-only forms to be either text or email.
This is different from what the password manager currently support in LoginHelper.isUsernameFieldType.
This is because text and email type are the most common cases for a username field, and we want to focus
on the cases that are more likely a username field.

This patch adds "DOMFormHasPossibleUsername" event to notify the password manager when a form has a possible
username field (text or email). The event works similar to the existing "DOMFormHasPassword" event.

Depends on D113797

Differential Revision: https://phabricator.services.mozilla.com/D113798
2021-06-11 11:56:03 +00:00
Kagami Sascha Rosylight
7c44e8d4f5 Bug 1708228 - Part 2: Remove redundant flush param from nsIRadioGroupContainer r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D113806
2021-04-30 11:25:23 +00:00
Kagami Sascha Rosylight
86f808f056 Bug 1708228 - Part 1: Remove redundant flushing from HTMLFormControlsCollection r=smaug
This was done in bug 324828 to workaround bug 22480 but shouldn't be needed anymore.

Differential Revision: https://phabricator.services.mozilla.com/D113805
2021-04-30 11:25:22 +00:00
Kagami Sascha Rosylight
1828771dc7 Bug 1707126 - Part 2: Use RadioGroupManager in HTMLFormElement r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D113578
2021-04-28 16:01:35 +00:00
Dimi Lee
d8a6e9ef56 Bug 1166995 - P2. Call onFormSubmit when a form or a password field is removed from the DOM tree r=sfoster,tgiles,smaug
This patch adds two events - `DOMFormRemoved` and `DOMInputPasswordRemoved`.
These events are notified when a form/password field is removed from
the DOM tree. When the LoginManagerChild receives the event, it calls
_onFormSubmit as the form is submitted.

This patch also adds a WeakFieldSet formlessModifiedPasswordFields to
record all the form-less password fields that users have interacted
with to track whether a formless password is removed

Depends on D106024

Differential Revision: https://phabricator.services.mozilla.com/D106025
2021-03-16 09:15:19 +00:00
Simon Giesecke
c7a36b5d58 Bug 1634281 - Use nsTHashMap instead of nsDataHashtable. r=xpcom-reviewers,necko-reviewers,jgilbert,nika,valentin
Note that this patch only transforms the use of the nsDataHashtable type alias
to a directly equivalent use of nsTHashMap. It does not change the specification
of the hash key type to make use of the key class deduction that nsTHashMap
allows for in some cases. That can be done in a separate step, but requires more
attention.

Differential Revision: https://phabricator.services.mozilla.com/D106008
2021-03-10 10:47:47 +00:00
Emilio Cobos Álvarez
c1b452ece1 Bug 1693969 - Remove <form novalidate> handling from :-moz-ui-{valid,invalid} pseudo-classes. r=smaug
There's no way to know whether the submission will actually be
validated, because formnovalidate on submit buttons is a thing (and even
if all the submit controls had formnovalidate, you could still submit
the form and validate it via form.submit()), so it seems better to make
these pseudo-classes not depend on this.

Differential Revision: https://phabricator.services.mozilla.com/D105968
2021-02-23 11:26:17 +00:00
Simon Giesecke
46908cfb51 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Jeff Walden
06de8f4ca7 Bug 1663365 - Move DOM proxy-related details (including expand support) to separate headers out of jsfriendapi.h. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D89336
2020-09-08 22:57:14 +00:00
Andreas Farre
f91ebd0314 Bug 1590762 - Part 4: Remove nsIWebProgressListener from HTMLFormElement. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D79821
2020-06-23 12:52:59 +00:00
Andreas Farre
52f478c918 Bug 1590762 - Part 3: Keep track of current loads in BrowsingContext. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D75110
2020-06-23 13:01:37 +00:00
sefeng
a6f4e1f142 Bug 1557303 - Implement form[method="dialog"] r=smaug
Spec: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#submit-dialog

Differential Revision: https://phabricator.services.mozilla.com/D73364
2020-05-11 22:56:13 +00:00
Eric Rahm
54d71f5beb Bug 1626436 - Remove nsAutoPtr usage from dom/html. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D69106
2020-04-03 21:04:59 +00:00
John Dai
69ab7b19a5 Bug 1588715 - Implement SubmitEvent; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D62030
2020-02-11 12:46:54 +00:00
John Dai
84ecc7e496 Bug 1552301 - Implement form.requestSubmit(); r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D54278
2019-12-03 10:13:41 +00:00
John Dai
5285560976 Bug 1551758 - Form submission reentrancy protection for 'submit' and 'invalid' event; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D53696
2019-11-20 19:39:38 +00:00
John Dai
4ffe425578 Bug 1551758 - Update spec link and comments for CheckValidFormSubmission and CheckFormValidity; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D53166
2019-11-20 16:14:37 +00:00
John Dai
8880e299f9 Bug 1551758 - Centralize form submission; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D53165
2019-11-20 16:14:39 +00:00
Arthur Iakab
b3340c2de9 Backed out 3 changesets (bug 1551758) for causing wpt failures on form-submission-algorithm.html. CLOSED TREE
Backed out changeset 7f73f8d6d3b1 (bug 1551758)
Backed out changeset 295015e6e79b (bug 1551758)
Backed out changeset 6ffaf0da08d9 (bug 1551758)
2019-11-20 18:05:34 +02:00
John Dai
684213212e Bug 1551758 - Form submission reentrancy protection for 'submit' and 'invalid' event; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D53696
2019-11-19 17:02:40 +00:00
John Dai
eb79868800 Bug 1551758 - Update spec link and comments for CheckValidFormSubmission and CheckFormValidity; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D53166
2019-11-19 17:02:38 +00:00
John Dai
d33c6a0e41 Bug 1551758 - Centralize form submission; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D53165
2019-11-20 13:09:19 +00:00
John Dai
edce529109 Bug 1518442 - Part 2: Implement Event-based form participation; r=smaug,edgar
For Event-based form participation specification PR:
https://github.com/whatwg/html/pull/4239

Differential Revision: https://phabricator.services.mozilla.com/D43986
2019-09-09 13:53:27 +00:00
Narcis Beleuzu
106c0002c0 Backed out 5 changesets (bug 1518442) as requested by jdai. CLOSED TREE
Backed out changeset 9143aef9bd5e (bug 1518442)
Backed out changeset b1b08f66996c (bug 1518442)
Backed out changeset 1f3d36108982 (bug 1518442)
Backed out changeset 1ac7b20bb1d8 (bug 1518442)
Backed out changeset f280db1076a4 (bug 1518442)
2019-09-07 01:07:50 +03:00
John Dai
9cf331e8fc Bug 1518442 - Part 2: Implement Event-based form participation; r=smaug,edgar
For Event-based form participation specification PR:
https://github.com/whatwg/html/pull/4239

Differential Revision: https://phabricator.services.mozilla.com/D43986
2019-09-06 20:50:50 +00:00
Cosmin Sabou
bb559ffcc7 Backed out 6 changesets (bug 1518442) as requested by jdai.
Backed out changeset 74c27d7d13c5 (bug 1518442)
Backed out changeset a092042068ab (bug 1518442)
Backed out changeset 1df8f544b3b7 (bug 1518442)
Backed out changeset 65f7059b0080 (bug 1518442)
Backed out changeset c8fbe42eba38 (bug 1518442)
Backed out changeset e7a459689227 (bug 1518442)
2019-09-06 17:58:57 +03:00
John Dai
e564534204 Bug 1518442 - Part 2: Implement Event-based form participation; r=smaug,edgar
For Event-based form participation specification PR:
https://github.com/whatwg/html/pull/4239

Differential Revision: https://phabricator.services.mozilla.com/D43986
2019-09-06 09:47:29 +00:00
Cameron McCormack
f03f1b844c Bug 1553705 - Use a cheaper to compute state key for parser inserted form controls. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D32259
2019-07-01 10:06:16 +00:00
Narcis Beleuzu
edbd8aaa24 Backed out 2 changesets (bug 1553705) for causing Bug1562142 . CLOSED TREE
Backed out changeset fbb26a04ec1f (bug 1553705)
Backed out changeset dd6e7c0970d5 (bug 1553705)
2019-06-29 02:39:01 +03:00
Cameron McCormack
e0c2d268cb Bug 1553705 - Use a cheaper to compute state key for parser inserted form controls. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D32259
2019-06-26 21:44:11 +00:00
Emilio Cobos Álvarez
a3b32df884 Bug 1555216 - Change the signature of BindToTree to be (BindContext&, nsINode& aParentNode). r=bzbarsky
BindContext was going to have way more information at first, but then I realized
that most of the things I wanted to know were basically a flag away using the
parent node.

Still I think it's worth it, now experimenting with BindToTree will only mean
adding a field to a struct that's included from a couple cpp files, instead of a
massive pain.

I also think this is clearer, and doing this highlights quite a few
inconsistencies in our code which I've left untouched, but commented with
FIXMEs.

Steps are:

$ for file in $(rg 'nsresult BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#nsresult BindToTree(Document\* aDocument, nsIContent\* aParent,#nsresult BindToTree(BindContext\&, nsINode\& aParent)#g' $file; done
$ for file in $(rg 'nsresult BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#                      nsIContent\* aBindingParent) override#override#g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#::BindToTree(Document\* aDocument, nsIContent\* aParent,#::BindToTree(BindContext\& aContext, nsINode\& aParent)#g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#nsIContent\* aBindingParent)##g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#::BindToTree(aDocument, aParent, aBindingParent)#::BindToTree(aContext, aParent)#g' $file; done
$ ./mach clang-format

Then manual fixups.

Depends on D32948

Differential Revision: https://phabricator.services.mozilla.com/D32949
2019-05-31 23:31:52 +02:00
Emilio Cobos Álvarez
9160cd2967 Bug 1555143 - Remove unused aDeep argument from UnbindFromTree. r=bzbarsky
$ for file in $(rg UnbindFromTree | cut -d : -f 1 | sort | uniq); do sed -i 's#UnbindFromTree(bool aDeep = true,#UnbindFromTree(#g' $file; done
$ for file in $(rg UnbindFromTree | cut -d : -f 1 | sort | uniq); do sed -i 's#UnbindFromTree(bool aDeep,#UnbindFromTree(#g' $file; done
$ for file in $(rg UnbindFromTree | cut -d : -f 1 | sort | uniq); do sed -i 's#UnbindFromTree(aDeep,#UnbindFromTree(#g' $file; done
$ ./mach clang-format

And fix the two callers and little use of the aDeep argument (see the "Manual
changes" patch attached to bug).

Differential Revision: https://phabricator.services.mozilla.com/D32898
2019-05-28 22:47:08 +00:00