Commit graph

61 commits

Author SHA1 Message Date
Olli Pettay
d47c995985 Bug 1351860 - Move mType from HTMLInputElement to nsIFormControl and make GetType non-virtual inlined, r=jessica
--HG--
extra : rebase_source : b7d76ce3321ea0d622da74a72b7278fd0fa63310
2017-03-31 22:49:00 -04:00
Olli Pettay
31b1f5cc92 Backout Bug 1351860, r=backout 2017-03-31 16:55:32 -04:00
Olli Pettay
b84c192a09 Bug 1351860 - Move mType from HTMLInputElement to nsIFormControl and make GetType non-virtual inlined, r=jessica
--HG--
extra : rebase_source : 5f2cac2c4e944e2c9f2f1acf0d3064e153c40451
2017-03-31 13:13:36 -04:00
Boris Zbarsky
70911690a2 Bug 656197 part 5. Remove UpdateState calls from AfterSetAttr, since they are no longer needed there. r=smaug
MozReview-Commit-ID: DmCf6Ndno2i
2017-03-16 14:50:42 -04:00
Boris Zbarsky
f890715ffc 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
f80dd7a663 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
0bf4f56f8c Bug 1345606. setRangeText should mark the text control as dirty. r=ehsan
MozReview-Commit-ID: 9le2PoelGei
2017-03-09 14:44:36 -05:00
Boris Zbarsky
0cf9adf6a5 Bug 1343037 part 18. Implement nsTextEditorState::SetRangeText. r=ehsan
MozReview-Commit-ID: FEo9yv5iu6U
2017-03-09 14:44:06 -05:00
Boris Zbarsky
060aadda89 Bug 1343037 part 16. Implement a version of nsTextEditorState::SetSelectionRange that takes a string for the direction. r=ehsan
MozReview-Commit-ID: E8zYAWolg94
2017-03-09 14:44:06 -05:00
Boris Zbarsky
0270554a22 Bug 1343037 part 15. Implement nsTextEditorState::GetSelectionDirection. r=ehsan
MozReview-Commit-ID: 1bLLYhjmlff
2017-03-09 14:44:06 -05:00
Boris Zbarsky
b72fd0bc98 Bug 1343037 part 14. Implement nsTextEditorState::SetSelectionDirection. r=ehsan
This introduces two behavior changes:

1)  In cached mode, we used to treat unknown selection directions as "none".
    Now we treat it like "forward", consistently with the "have an editor" mode.
2)  Before this change, in cached mode, we did not fire "select" events on
    selectionDirection changes.

MozReview-Commit-ID: 4nBCAm3mAiz
2017-03-09 14:44:06 -05:00
Boris Zbarsky
e0ef9813e4 Bug 1343037 part 13. Implement nsTextEditorState::SetSelectionEnd. r=ehsan
This introduces three behavior changes:

1)  Before this change, in cached mode, we did not enforce the "start <= end"
    invariant.
2)  Before this change, in cached mode, we did not fire "select" events on
    selectionEnd changes.
3)  Changes the IDL type of HTMLInputElement's selectionEnd attribute to
    "unsigned long" to match the spec and HTMLTextareaElement.

MozReview-Commit-ID: J3Gkhr8VnbS
2017-03-09 14:44:05 -05:00
Boris Zbarsky
badbeff5ec Bug 1343037 part 12. Implement nsTextEditorState::SetSelectionStart. r=ehsan
This introduces three behavior changes:

1)  Before this change, in cached mode, we did not enforce the "start <= end"
    invariant.
2)  Before this change, in cached mode, we did not fire "select" events on
    selectionStart changes.
3)  Changes the IDL type of HTMLInputElement's selectionStart attribute to
    "unsigned long" to match the spec and HTMLTextareaElement.

MozReview-Commit-ID: JM9XXMMPUHM
2017-03-09 14:44:05 -05:00
Boris Zbarsky
a44c859126 Bug 1343037 part 9. Simplify the setup around the editor state's GetSelectionDirection 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.

MozReview-Commit-ID: AEW9D1zG6sM
2017-03-09 14:44:05 -05:00
Boris Zbarsky
be3f78fea8 Bug 1343037 part 7. Get rid of nsIDOMHTMLTextareaElement's selectionDirection attribute. r=ehsan
MozReview-Commit-ID: EQWxjgTdloR
2017-03-09 14:44:04 -05:00
Boris Zbarsky
5ae7da9d14 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
6075a757b2 Bug 1343037 part 5. Make <textarea> behave more like <input type=text> in terms of reset behavior. r=ehsan
In particular this ensures that our ValueChanged() is correctly set to false
when we call SetValue() on our editor state with our default value.  We will be
relying on this very shortly.

MozReview-Commit-ID: AIIIHwfQPQE
2017-03-09 14:44:04 -05:00
Boris Zbarsky
7f964a7045 Bug 1343037 part 3. Get rid of nsIDOMHTMLTextareaElement's selectionStart and selectionEnd accessors. r=ehsan
MozReview-Commit-ID: Ca95YfRaq9r
2017-03-09 14:44:04 -05:00
Boris Zbarsky
fdab22f79c Bug 1343886. Handle input or textarea elements having a non-textcontrol frame better. r=ehsan
MozReview-Commit-ID: FRzdvTLMAID
2017-03-06 10:29:38 -05:00
Boris Zbarsky
d2afbdd254 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
12dc2641c8 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
e4852035e0 Bug 1334330 - Part 11: stylo: Use ServoUtils abstraction for GenericSpecifiedValues to remove virtual dispatch overhead in nostylo mode; r=bz,emilio
MozReview-Commit-ID: 8yGWs2uOjES

--HG--
extra : rebase_source : 2fed3ab11c243a3b045116abd04dbb9e939c5dc2
2017-01-26 16:51:01 -08:00
Manish Goregaokar
18a42c058c Bug 1334330 - Part 5: stylo: Use GenericSpecifiedValue abstraction for <li>,<pre>,<ol>,<ul>,<textarea>; r=bz,emilio
MozReview-Commit-ID: JQaa26ay5va

--HG--
extra : rebase_source : b4ca53adbf1e1be2fd6c081bfe6c704c434fb2e6
2017-01-26 16:51:01 -08:00
Manish Goregaokar
48bc1c741c Bug 1334330 - Part 1: stylo: Abstractify nsMappedAttributes to work on arbitrary containers of specified value data; r=bz,emilio
MozReview-Commit-ID: BSM4TC9RKot

--HG--
extra : rebase_source : 5f2c5d998b9e2bc10a2c9ce8d0b3ce90817a0d39
2017-01-26 13:39:13 -08:00
Timothy Guan-tin Chien
c325756c29 Bug 570893 - Only re-enable the form controls when reload, not re-disable it, r=bz
With this patch, the disabled state is still kept in the nsPresState,
but we will only honor that if the state saved asks as to re-enable the
control.

The behavior is changed so that controls disabled by JavaScript will be
kept enabled as the JavaScript world gets reloaded.

MozReview-Commit-ID: 6PchHfx6KYX

--HG--
extra : rebase_source : 19399db854cc7cb80f45940bfc378c3e09c2979c
2016-12-30 14:26:35 +08:00
Stone Shih
8400e13089 Bug 1305458 Part6: Move fire change event from HTMLTextAreaElement::GetEventTargetParent to PreHandleEvent. r=smaug
MozReview-Commit-ID: K0tuWlUOLw7

--HG--
extra : rebase_source : ade1219fe5e90b8c08a596b919a118a0508d23d0
2016-10-21 17:33:41 +08:00
Stone Shih
1ed10ff082 Bug 1305458 Part1: Rename nsIDOMEventTarget::PreHandleEvent to nsIDOMEventTarget::GetEventTargetParent. r=smaug
MozReview-Commit-ID: FM3vDUyLOCb

--HG--
extra : rebase_source : 5a513af84718a6d591f77437a0704984c8fc2b67
2016-10-21 10:11:07 +08:00
Boris Zbarsky
e46938f336 Bug 1316661 part 5. Eliminate IsCallerChrome caller in HTMLTextareaElement. r=smaug
The WebIDL caller of SetUserInput is [ChromeOnly] and the other callers are all C++ code that should be able to set the value.
2016-11-15 00:18:33 -05:00
Domenic Denicola
8052df3b1f Bug 230307. When cloning a <textarea>, preserve the current value just like we do for <input>. r=ehsan
The web platform test is just lifted wholesale from
<https://github.com/w3c/web-platform-tests/pull/3734>.
2016-09-15 13:52:37 -04:00
Thomas Wisniewski
e18ef07821 Bug 1069015 - Restore code for :placeholder-shown pseudo-class. r=dbaron 2016-08-31 14:21:44 -04:00
Aryeh Gregor
d384462b47 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
Thomas Wisniewski
fe6139c017 Bug 932755 - Add support for input/textarea minLength and tooShort. r=mrbkap
--HG--
extra : rebase_source : 064985cbb241ef8705dcec28f60db9f4caf65ae4
2016-08-17 00:11:24 -04:00
Jessica Jong
6f6b9ca3bc 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
30ab766837 Bug 613019 - Track whether the last input/textarea change was done interactively, and enable the commented-out maxLength tracking code. r=mrbkap
--HG--
extra : rebase_source : 59c0986d6184f09f79fcda848de9d822949aa47b
2016-08-06 11:59:08 -04:00
Decky Coss
b69450d2ea Bug 1287655 - place textarea/input cursor at end of text when initialized; r=smaug
MozReview-Commit-ID: 2srGXFmla07

--HG--
extra : transplant_source : %3Cn%D30%86%24%82%90%29%191%9C%8A%EB%0D%5D%E2%20%22%E5
2016-07-21 14:52:49 -04:00
Jeremy Chen
122a1b7056 Bug 906116 - part3.3: Replace NS_STYLE_HINT_FRAMECHANGE with nsChangeHint_ReconstructFrame. r=dbaron
Use ReconstructFrame to replace NS_STYLE_HINT_FRAMECHANGE in many places, such
as HTML*Element::GetAttributeChangeHint and HTMLFrameSetElement::SetAttr.

MozReview-Commit-ID: EHbc4RMeuu0

--HG--
extra : rebase_source : afffc0d2ee2861a58dee82f0af06a67f4b8e3a78
2016-07-06 13:06:14 +08:00
Carsten "Tomcat" Book
45017d7986 Backed out changeset 8c1f9996a7d6 (bug 906116) 2016-07-06 05:40:06 +02:00
Jeremy Chen
160b96f9a4 Bug 906116 - part3.3: Replace NS_STYLE_HINT_FRAMECHANGE with nsChangeHint_ReconstructFrame. r=dbaron
Use ReconstructFrame to replace NS_STYLE_HINT_FRAMECHANGE in many places, such
as HTML*Element::GetAttributeChangeHint and HTMLFrameSetElement::SetAttr.

MozReview-Commit-ID: EHbc4RMeuu0

--HG--
extra : rebase_source : f5163608c88362595ef5af5fcd36fa64c9c79ce7
2016-07-06 09:59:56 +08:00
Andrea Marchesini
aadce059f5 Bug 1279860 - part 1 - Renaming nsFormSubmission to mozilla::dom::HTMLFormSubmission, r=smaug
--HG--
rename : dom/html/nsFormSubmission.cpp => dom/html/HTMLFormSubmission.cpp
rename : dom/html/nsFormSubmission.h => dom/html/HTMLFormSubmission.h
rename : dom/html/nsFormSubmissionConstants.h => dom/html/HTMLFormSubmissionConstants.h
2016-06-16 08:24:16 +01:00
Eric Rahm
f5b4b3b7b8 Bug 1270310 - Part 1: Make allocation in ConvertStringLineBreaks fallible. r=froydnj, r=smaug
ConvertStringLineBreaks calls ConvertUnicharLineBreaksInSitu which uses
fallible allocation. We should make the potential allocation in |BeginWriting|
fallible as well and handle the failure. This also updates the callers to
|ConvertStringLineBreaks| to handle the error properly in release builds.
2016-05-05 15:50:35 -07:00
Jeremy Chen
685cf4c3d8 Bug 1273766 - part3: purge NS_UpdateHint inline. r=heycam
MozReview-Commit-ID: IIOT9jq8hOl

--HG--
extra : rebase_source : dfb3d874ce4419f32f13e662bd495e97ac9cac10
2016-05-23 11:26:03 +08:00
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Masayuki Nakano
35e18152d5 Bug 895274 part.70 Rename NS_BLUR_CONTENT to eBlur r=smaug 2015-09-02 15:08:00 +09:00
Masayuki Nakano
cc5db3b160 Bug 895274 part.69 Rename NS_FOCUS_CONTENT to eFocus r=smaug 2015-09-02 15:08:00 +09:00
Masayuki Nakano
2586c79eb1 Bug 895274 part.66 Rename NS_FORM_SELECTED to eFormSelect r=smaug 2015-09-02 15:08:00 +09:00
Masayuki Nakano
a516285180 Bug 895274 part.31 Rename NS_MOUSE_CLICK to eMouseClick r=smaug 2015-08-29 08:58:32 +09:00
Masayuki Nakano
0d22745cda Bug 895274 part.3 Make the enum of event messages a named enum IGNORE IDL r=smaug 2015-08-26 21:56:59 +09:00
Masayuki Nakano
66f2c27305 Bug 895274 part.1 Rename WidgetEvent::message to WidgetEvent::mMessage r=smaug 2015-08-22 10:34:51 +09:00
Robert O'Callahan
d5d49432af Bug 1184842. Allow BeforeSetAttr to preparse aValue. r=peterv
We will pass the preparsed value into AttributeWillChange.

--HG--
extra : commitid : HCiY4DRKWkC
extra : rebase_source : aa17a819a20578322380d388299279e4e41a690b
2015-08-01 17:14:06 +12:00
Masayuki Nakano
ecdd7a7f0f Bug 549674 part.1 Commit composition string at setting value of <input> or <textarea> r=smaug 2015-06-18 23:56:20 +09:00