Commit Graph

299 Commits

Author SHA1 Message Date
Boris Zbarsky
d88c839712 Bug 1347640 part 1. Move the changing of HTMLInputElement's mType from ParseAttribute to AfterSetAttr. r=smaug
This will make the timing of the change more consistent between SetAttr and
UnsetAttr, and ensure that we have both the old and new type available in
AfterSetAttr.

MozReview-Commit-ID: Gsrxkkve7BC
2017-03-16 14:50:42 -04:00
Boris Zbarsky
b9b764f76c 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
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
8f6ad791d2 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
4d9c1783a8 Bug 1343037 part 18. Implement nsTextEditorState::SetRangeText. r=ehsan
MozReview-Commit-ID: FEo9yv5iu6U
2017-03-09 14:44:06 -05:00
Boris Zbarsky
34042de72d 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
2d2e85a356 Bug 1343037 part 15. Implement nsTextEditorState::GetSelectionDirection. r=ehsan
MozReview-Commit-ID: 1bLLYhjmlff
2017-03-09 14:44:06 -05:00
Boris Zbarsky
8c2206f672 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
5751a40e69 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
f1bf8c9867 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
b5f0f960fd 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
b90d6841a9 Bug 1343037 part 8. Get rid of nsIDOMHTMLInputElement's selectionDirection attribute. r=ehsan
MozReview-Commit-ID: FNn4vVCM50s
2017-03-09 14:44:04 -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
d41e71a037 Bug 1343037 part 4. Fix type changes on an input to properly grab the selection offsets from the old editor before we ask the editor state for them. r=ehsan
MozReview-Commit-ID: IDdt0qedJpT
2017-03-09 14:44:04 -05:00
Boris Zbarsky
b55933e687 Bug 1343037 part 2. Get rid of nsIDOMHTMLInputElement's selectionEnd accessors. r=ehsan,MattN
MozReview-Commit-ID: L2Ozu7Vvort
2017-03-09 14:44:03 -05:00
Boris Zbarsky
da687175e6 Bug 1343037 part 1. Get rid of nsIDOMHTMLInputElement's selectionStart accessors. r=ehsan,MattN
MozReview-Commit-ID: IyFv8NRuZIO
2017-03-09 14:44:03 -05:00
Boris Zbarsky
ae27c86ae2 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
Mats Palmgren
7c43dcf986 Bug 1340771 part 1 - Rename nsWeakFrame to AutoWeakFrame (automated change). r=tn
MozReview-Commit-ID: 8pl4nyeGEkr
2017-03-01 18:03:14 +01: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
Jessica Jong
fe4383d390 Bug 1341376 - Use BoolVarCache to cache preferences in HTMLInputElement. r=smaug 2017-02-23 00:27:00 -05:00
Timothy Guan-tin Chien
fdd0f80f49 Bug 1338961 - A mozinputrangeignorepreventdefault hack for input[type=range], r=smaug, sr=smaug
This is a terrible hack, asking input[type=range] in our video control
xbl binding content continue to handle mouse/touch event, even if the
event is being defaultPrevented by the content.

MozReview-Commit-ID: G1huxbS7oeq
2017-02-17 17:05:27 +08:00
Jeff Walden
76e0d9bbc6 Bug 1287006 - Don't pass Nullable by value in various places, rather by const&. r=bz 2017-02-13 09:07:40 -08:00
Carsten "Tomcat" Book
e1b6f23c86 Merge mozilla-central to mozilla-inbound 2017-02-09 11:38:08 +01:00
Jessica Jong
d4c3c8ce4d Bug 1310080 - Implement the step attribute for <input type=datetime-local>. r=smaug 2017-02-07 22:03:00 +08:00
Manish Goregaokar
a08e03025a 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
2017-01-26 16:51:01 -08:00
Manish Goregaokar
2d1e54b302 Bug 1334330 - Part 3: stylo: Use GenericSpecifiedValue abstraction in elements using only common mappers; r=bz,emilio
MozReview-Commit-ID: B8vg4ZiqRGK
2017-01-26 16:51:01 -08: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
Andrea Marchesini
720fe6f6e6 Bug 1331849 - Replace NS_NewNativeLocalFile with NS_NewLocalFile in dom, r=smaug 2017-01-18 14:58:37 +01:00
Andrea Marchesini
8c2cbada26 Bug 1274596 - Implement the fakepath requirement in HTMLInputElement, r=smaug 2017-01-17 09:56:56 +01:00
Jessica Jong
668b082a53 Bug 1310079 - Implement the min and max attribute for <input type=datetime-local>. r=smaug 2017-01-15 22:10:00 -05:00
Cameron McCormack
5f9911da79 Bug 1328832 - Part 2: Rename mozFlushType to mozilla::FlushType and make it an enum class. r=bzbarsky
MozReview-Commit-ID: D3fIngSHSsl
2017-01-05 15:31:56 +08:00
Jessica Jong
6ffe253651 Bug 1310078 - Implement valueAsNumber and valueAsDate for <input type=datetime-local>. r=smaug,Waldo 2017-01-03 22:33:00 +01:00
Timothy Guan-tin Chien
4ab30a1c8c 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
2016-12-30 14:26:35 +08:00
Jessica Jong
21719830eb Bug 1325009 - Find separator index dynamically when sanitizing input type=datetime-local. r=smaug 2016-12-21 19:32:00 +08:00
Jessica Jong
98eb9e529a Bug 1286182 - Implement the layout for <input type=date>. r=mconley,smaug 2016-12-19 00:50:00 +08:00
Henri Sivonen
971d2a2793 Bug 1322455 - When cloning an <input>, avoid re-initializing checkedness in DoneCreatingElement. r=smaug.
MozReview-Commit-ID: wlbZ7grT2M
2016-12-15 18:25:02 +02:00
Andrea Marchesini
aa03921b56 Bug 1319088 - FormData should not add extra '/' in the Blob path, r=smaug 2016-12-01 08:59:36 +01:00
Andrea Marchesini
5529893a5b Bug 1319370 - HTMLInputElement should select the directory for the FilePicker using the input type (file or directory), r=jwatt 2016-11-23 13:02:10 +01:00
Stone Shih
c21b59a68a Bug 1305458 Part11: Let HTMLInputElement delegate event handling to it's parent class. r=smaug
MozReview-Commit-ID: 3Ms8Rt7Fqny
2016-11-01 15:36:04 +08:00
Stone Shih
8428c7d178 Bug 1305458 Part9: Move fire events and set value from HTMLInputElement::GetEventTargetParent to PreHandleEvent. r=smaug
MozReview-Commit-ID: AbbIMmmwZMZ
2016-10-21 19:04:29 +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
Boris Zbarsky
0fa8643c26 Bug 1317367 part 4. Pass an explicit CallerType to HTMLInputElement::GetValueInternal. r=smaug
I'm not 100% sure that I'm being very consistent in my handling of
mFocusedValue, but since that's not used for file inputs, I don't think it
matters much...

A bigger problem is if people start using this caller type for things other than
file inputs.
2016-11-15 12:46:32 -05:00
Boris Zbarsky
b2eaca6676 Bug 1317367 part 3. Pass an explicit CallerType to HTMLInputElement::SetValue at all callsites. r=smaug 2016-11-15 12:46:31 -05:00
Boris Zbarsky
9535becb37 Bug 1317367 part 2. Make HTMLInputElement::GetValue infallible again; just return empty string on OOM. To a first approximation no one checks the return value anyway. r=smaug 2016-11-15 12:46:31 -05:00
Boris Zbarsky
2966e5d9fc Bug 1317367 part 1. Get rid of the XPCOM MozGet/SetFileNameArray methods on HTMLInputElement. r=smaug 2016-11-15 12:46:31 -05:00
Boris Zbarsky
f93dcbc65c Bug 1316951. The "select" events fired by HTMLInputElement code should always be trusted, since they always correspond to an actual attempt by the browser to select the text in the control. r=smaug 2016-11-15 00:18:32 -05:00
Jessica Jong
8520967004 Bug 1310077 - Implement the value sanitizing algorithm for <input type=datetime-local>. r=smaug 2016-11-09 23:48:00 -05:00
Jessica Jong
f0bd2cc848 Bug 1301306 - Stop focus events from anon. content when moving inside input=time element. r=smaug 2016-11-04 00:47:00 -04:00