Commit Graph

65 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
e13a620d19 Bug 1449806: Merge {Servo,Generic}SpecifiedValues into MappedDeclarations. r=xidorn
The idea would be that this header is only included in cpp files, thus it's ok
to include ServoBindings, etc.

MozReview-Commit-ID: EgQEsR0cZd4
2018-06-25 11:14:39 +02:00
Boris Zbarsky
a0e4948ccd Bug 1465875 part 5. Eliminate nsIDOMNSEditableElement. r=qdot 2018-06-01 22:35:23 -04:00
Boris Zbarsky
da7e34a17c Bug 1465875 part 4. Eliminate random mentions of nsIDOMNSEditableElement. r=qdot 2018-06-01 22:35:23 -04:00
Boris Zbarsky
821cd16e9f Bug 1456169 part 3. Remove the now-unnecessary nsITextControlElement::GetPreviewNode. r=emilio
MozReview-Commit-ID: 3goF5VXvQap
2018-04-24 02:17:18 -04:00
Boris Zbarsky
ae88fa2749 Bug 1456169 part 2. Remove the now-unnecessary nsITextControlElement::GetPlaceholderNode. r=emilio
MozReview-Commit-ID: FcVbeHEwkMz
2018-04-24 02:17:17 -04:00
Boris Zbarsky
d0e4853121 Bug 1456169 part 1. Remove the now-unnecessary nsITextControlElement::GetRootEditorNode. r=emilio
MozReview-Commit-ID: 6DYEtQMTCRF
2018-04-24 02:17:17 -04:00
Nika Layzell
cccd4523db Bug 1438026 - Part 3: Replace nsPresState with the new PresState type, r=baku 2018-04-10 17:49:44 -04:00
Boris Zbarsky
5b75c1416d Bug 1449631 part 8. Remove nsIDOMEventTarget::GetEventTargetParent. r=smaug
MozReview-Commit-ID: 5wQ2LYrjUxf
2018-04-05 13:42:41 -04:00
Boris Zbarsky
cfeb9c06b9 Bug 1449404 part 4. Get rid of a few virtual nsIContent methods. r=mccr8
The HasTextForTranslation implementation was just moved, with the nodetype
check up front dropped because that's enforced statically now.
2018-03-28 18:01:47 -04:00
Boris Zbarsky
6ea42abd76 Bug 1447098 part 2. Rename the NS_IMPL_FROMCONTENT macros to NS_IMPL_FROMNODE. r=mystor 2018-03-21 17:39:04 -04:00
Kris Maglione
48e53b3df5 Bug 1415352: Part 1a - Pass subject principal through to ParseAttribute. r=bz
This is necessary in order to parse style attributes using the subject
principal of the caller, rather than defaulting to the page principal.

MozReview-Commit-ID: GIshajQ28la
2017-11-01 20:35:52 -07:00
Matthew Noorenberghe
5c31c07ed9 Bug 1020698 - Implement @autocomplete for <textarea>. r=baku
The dom.forms.autocomplete.formautofill check in nsContentUtils::InternalSerializeAutocompleteAttribute
will control if values other than "on" and "off" are supported.

MozReview-Commit-ID: 48X3OzvuOpV
2017-11-08 21:35:04 -08:00
Kyle Machulis
7252caefb4 Bug 1412437 - Remove nsIDOMHTMLTextAreaElement; r=bz
MozReview-Commit-ID: JAON7Rd7IAo
2017-11-01 14:28:22 -07:00
Kris Maglione
5f00cf0c65 Bug 1406278: Part 1 - Pass subject principal to SetAttribute and friends. r=bz
In order to tailor certain security checks to the caller that is attempting to
load a particular piece of content, we need to be able to attach an
appropriate triggering principal to the corresponding requests. Since most
HTML content is loaded based on attribute values, that means capturing the
subject principal of the caller who sets those attributes, which means making
it available to AfterSetAttr hooks.

MozReview-Commit-ID: BMDL2Uepg0X
2017-10-09 14:33:38 -07:00
Nicholas Nethercote
7dbfdaf890 Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP
2017-10-03 09:05:19 +11:00
Emilio Cobos Álvarez
6390dc1e8a Bug 1401706: Move ownership of editor anon content to nsTextControlFrame. r=Ehsan
MozReview-Commit-ID: 4QpbarX5dvf
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-22 02:18:30 +02:00
Olli Pettay
9e1d8496e9 Bug 1397904 - nsTextControlFrame::SetValueChanged is too QI heavy, r=baku 2017-09-08 14:07:22 +01:00
Masayuki Nakano
49283b88fb Bug 1395146 - part1: Get rid of nsITextControlElement::IsPlainTextControl() and nsTextEditorState::IsPlainTextEditor() r=smaug
nsTextEditorState::GetValue() refers nsITextControlElement::IsPlainTextControl()
via nsTextEditorState::IsPlainTextEditor().  However, it always returns true and
virtual call with QI.  So, we should get rid of these unnecessary methods.

MozReview-Commit-ID: 3gHdGrzlys4
2017-08-30 18:57:55 +09:00
Jessica Jong
f6c04bf2c6 Bug 1385478 - Part 2: Change Required/IsRequired() to look at NS_EVENT_STATE_REQUIRED instead. r=bz
In order to speed up Required/IsRequired(), instead of querying for the
@required attribute, we're now using the NS_EVENT_STATE_REQUIRED flag to know
whether an element's value is required.

For this to work correctly, we need to set NS_EVENT_STATE_REQUIRED earlier,
that is, in AfterSetAttr(), before any consumer of IsRequired(). We also need
to update or clear our required states when input type changes, since we may
have changed from a required input type to a non-required input type or
vice versa.

Note that NS_EVENT_STATE_REQUIRED/OPTIONAL is now part of the
EXTERNALLY_MANAGED_STATES.

MozReview-Commit-ID: Bjiby9GqJSB
2017-08-03 01:27:00 -04:00
Jessica Jong
2cc9e3beb6 Bug 1385478 - Part 1: Use IsRequired/Required() to get the current required state. r=bz
IsRequired() helper function returns the current 'required' state of the
element, that is, whether its required attribute is set or not. This will be
used only for input elements that @required applies.
2017-08-03 01:23:00 -04:00
Boris Zbarsky
7883a597ca Bug 1380415 part 2. Remove XPCOM constraint validation APIs. r=mccr8 2017-07-13 23:46:28 -04:00
Masayuki Nakano
53a0be1b54 Bug 1374207 - part4: Element classes should use TextEditor class instead of nIEditor r=smaug
Unfortunately, nsGenericHTMLElement::GetAssociatedEditor() cannot use concrete classes because it may return nsIEditor which is set via nsIDocShell.editor.  The editor set to nsIDocShell may be implemented by JS since nsIEditor isn't marked as builtinclass.

MozReview-Commit-ID: 6GY9LOYp4hM
2017-06-22 15:21:31 +09:00
Masayuki Nakano
e0a2ff6005 Bug 1374207 - part1: nsTextEditorState should use mozilla::TextEditor instead of editor interfaces r=smaug
Using concrete class rather than interface classes (nsI*Editor) will allow to reduce QI and some virtual calls.  Therefore, Editor classes should be used as concrete class as far as possible.

Unfortunately, if classes referring editor are initialized via scriptable interface, we cannot do this because nsI*Editor is still not marked as builtinclass.  Therefore, their editor may be implemented by JS.  E.g., inline nsIInlineSpellChecker.init() and nsIDocShell.editor.  Such remaining cases should be fixed after nsI*Editor classes are marked as builtinclass.

Note that this patch also creates nsIdentifierMapEntry.h which is separated from nsDocument.h because ShadowRoot.h needs the class but exposing nsDocument.h to the global and includes it causes bustage on Linux and Android.  Therefore, for fixing the include hell, this patch touches them and ContentChild.cpp.

MozReview-Commit-ID: i6fLWw6Qeo
2017-06-20 22:57:08 +09:00
Kirk Steuber
e2ea33731f Bug 1363481 - Add the old attribute value as a parameter to Element::AfterSetAttr r=bz
In order to facilitate the movement of code with side-effects called by Element::SetAttr to Element::BeforeSetAttr and Element::AfterSetAttr, Element::AfterSetAttr should have access to the old value of the attribute. This includes information about whether there was previously a value set or not.

Accomplishing this involved passing an additional argument through functions that find and change the old attribute value in order to ensure that we can differentiate between an empty old value and an absent old value (attribute was not set).

Note that while I tried to ensure that accurate values (and their absence) are reported to Element::AfterSetAttr, I largely ignored SVG. While the old value reported for SVG values should be however accurate the value already being reported to SetAttrAndNotify was, SVG elements do not currently report unset values properly because they will never pass a null pointer to SetAttrAndNotify.

MozReview-Commit-ID: K1mha8CNFZP
2017-05-18 14:09:01 -07:00
Kirk Steuber
9386a2f3e1 Bug 1359556 - Optimize cloneNode by preinitializing attribute and child arrays r=bz
Currently, attribute and child arrays (implemented in dom/base/nsAttrAndChildArray.h) start out empty. When cloning, the array ends up being resized multiple times in order to add the attributes and children that are being cloned from the original node. This would be quicker if the array was initialized to the correct size in the first place so that resizes are not necessary.

However, preallocating space for children is only necessary when performing a deep clone. Therefore, an additional parameter is being added to the Clone, CopyInnerTo, and CloneDocHelper methods to indicate whether preallocation of children should happen. Attributes are copied either way, so that part of the array is preallocated in both cases.

MozReview-Commit-ID: 3iVezeAKXnI
2017-04-20 12:57:48 -07:00
Ray Lin
cdc9d749a6 Bug 1340483 - Part 4. Update input visibility accordingly. r=heycam
MozReview-Commit-ID: 7eBhj7w4qhP
2017-03-30 17:38:59 +08:00
Ray Lin
d37849aaa3 Bug 1340483 - Part 3. Enable preview function only when input is marked as autofill field. r=heycam
MozReview-Commit-ID: FFqYJ3icRd7
2017-03-22 16:55:56 +08:00
Ray Lin
f4d11417f9 Bug 1340483 - Part 2. Expose chrome-only previewValue attribute. r=baku,heycam
MozReview-Commit-ID: BCu0vXVm6wj
2017-03-21 00:08:01 +08:00
Ray Lin
78ff382026 Bug 1340483 - Part 1. Create empty anonymous node for autofill preview. r=heycam
MozReview-Commit-ID: GTVgIPoogp9
2017-03-20 11:53:40 +08:00
Olli Pettay
45822311b7 Bug 1351860 - Move mType from HTMLInputElement to nsIFormControl and make GetType non-virtual inlined, r=jessica 2017-03-31 22:49:00 -04:00
Olli Pettay
694b05ce02 Backout Bug 1351860, r=backout 2017-03-31 16:55:32 -04:00
Olli Pettay
fa83f6684e Bug 1351860 - Move mType from HTMLInputElement to nsIFormControl and make GetType non-virtual inlined, r=jessica 2017-03-31 13:13:36 -04:00
Boris Zbarsky
d40e452ea9 Bug 656197 part 1. Remove the generic attr preparsing mechanism from BeforeSetAttr and just preparse class attributes directly in the one place that needs to do it. r=smaug
This removes the requirement that BeforeSetAttr comes before AttributeWillChange
(which needs the preparsed new value).

MozReview-Commit-ID: 87C6Mjc7ARh
2017-03-16 14:50:41 -04:00
Boris Zbarsky
08408b8e31 Bug 1345237. Propagate uint32_t deeper into the editor state and text control frame code. r=mystor
MozReview-Commit-ID: KeUo8My6eBJ
2017-03-09 14:44:45 -05:00
Boris Zbarsky
4d9c1783a8 Bug 1343037 part 18. Implement nsTextEditorState::SetRangeText. r=ehsan
MozReview-Commit-ID: FEo9yv5iu6U
2017-03-09 14:44:06 -05:00
Boris Zbarsky
4a34a6fc7b Bug 1343037 part 17. Remove the now-unused nsITextControlElement::GetSelectionRange. r=ehsan
This makes GetSelectionRange non-virtual on HTMLInputElement and HTMLTextareaElement.

MozReview-Commit-ID: HhmTHjw8AwW
2017-03-09 14:44:06 -05:00
Boris Zbarsky
0ff1feefd2 Bug 1343037 part 6. Simplify the setup around the editor state's GetSelectionRange function. r=ehsan
Really, there are only two cases we need to worry about.  Either
IsSelectionCached(), and then our SelectionProperties has the data we want, or
not and then we have a non-null mSelCon which has the data we want.

Since we are now using cached selection state a lot more (instead of
initializing the editor whenever someone asks for selection state), we need to
actually update it more correctly when .value is set.

And since we now update the cached selection state for the case when .value has
been set (to point to the end of the text), we need to change
HTMLInputElement::HasCachedSelection to return false for that case.  Otherwise
we will always do eager editor init on value set.  We handle that by not doing
eager init if the cached selection is collapsed.

The web platform test changes test the "update on .value set" behavior.  They
fail without this patch, pass with it.

MozReview-Commit-ID: DDU8U4MGb23
2017-03-09 14:44:04 -05:00
Boris Zbarsky
f7b36aa0e6 Bug 1342197 part 4. Move GetSelectionRange from nsTextControlFrame to the editor state. r=ehsan
At this point, all this method does is ensure editor initialization and then ask
the editor state for various information.  Let's cut out the middleman.

MozReview-Commit-ID: p491umScJO
2017-02-28 12:41:37 -05:00
Boris Zbarsky
9cfe389bfb Bug 1342197 part 1. Change nsITextControlElement::GetRootEditorNode to return Element*. r=ehsan
MozReview-Commit-ID: BmTw3rAzCuc
2017-02-28 12:41:37 -05:00
Manish Goregaokar
7e8e84c24b Bug 1334330 - Part 1: stylo: Abstractify nsMappedAttributes to work on arbitrary containers of specified value data; r=bz,emilio
MozReview-Commit-ID: BSM4TC9RKot
2017-01-26 13:39:13 -08:00
Stone Shih
8a5d11ce9f Bug 1305458 Part6: Move fire change event from HTMLTextAreaElement::GetEventTargetParent to PreHandleEvent. r=smaug
MozReview-Commit-ID: K0tuWlUOLw7
2016-10-21 17:33:41 +08:00
Stone Shih
b921261b1b Bug 1305458 Part1: Rename nsIDOMEventTarget::PreHandleEvent to nsIDOMEventTarget::GetEventTargetParent. r=smaug
MozReview-Commit-ID: FM3vDUyLOCb
2016-10-21 10:11:07 +08:00
Aryeh Gregor
3f9b164401 Bug 1296929 - Match spec for col/colgroup.span, textarea.rows/cols; r=jst
The spec recently changed to match browsers better.  There's currently
not much interop in exact details of how this work.  This brings us in
line with the spec except for the limit of 1000 on the span attribute.

The added textarea failures are spurious, because I'm not updating our
local tests in this commit.  The new tests are submitted upstream at
<https://github.com/w3c/web-platform-tests/pull/3518>.

MozReview-Commit-ID: 1L8aUtF47Qi
2016-08-25 17:23:37 +03:00
Bobby Holley
8a8ef9811d Bug 1295370 - Add missing include. r=ehsan
Including this header without this causes compilation problems.
2016-08-17 12:46:49 -07:00
Thomas Wisniewski
f8c3308791 Bug 932755 - Add support for input/textarea minLength and tooShort. r=mrbkap 2016-08-17 00:11:24 -04:00
Jessica Jong
e04ff71004 Bug 1281769 - Do not throw when getting selectionDirection/selectionStart/selectionEnd on input/textarea. r=smaug 2016-08-08 23:19:00 +02:00
Thomas Wisniewski
59fe578703 Bug 613019 - Track whether the last input/textarea change was done interactively, and enable the commented-out maxLength tracking code. r=mrbkap 2016-08-06 11:59:08 -04:00
Andrea Marchesini
790712f749 Bug 1279860 - part 1 - Renaming nsFormSubmission to mozilla::dom::HTMLFormSubmission, r=smaug 2016-06-16 08:24:16 +01:00
John Dai
f27c6c5b07 Bug 1088761 - Support reportValidity() for form controls. r=smaug
From 2c2f7223e9d88f431f3e3fee7384dffbca07d8a9 Mon Sep 17 00:00:00 2001
2016-04-15 16:13:00 +08:00
John Dai
44fea04816 Bug 1088761 - Remove redundant trailing spaces. r=smaug
From b52ed31558ac41e31b7a885a988475b07f3aa3fe Mon Sep 17 00:00:00 2001
2016-04-12 19:02:42 +08:00