Commit Graph

136 Commits

Author SHA1 Message Date
Kyle Machulis
9ac74778dd Bug 1279218 - Rename HTMLSharedObjectElement to HTMLEmbedElement; r=bz
MozReview-Commit-ID: KkvRkFXAX30
2017-07-28 21:35:43 -07:00
Kyle Machulis
74bf40ac81 Bug 1279218 - Additional applet tag logic removal; r=bz
I've been having problems with interdiffs on mozreview lately, so for
ease of review, this patch is being submitted as a seperate patch for
review. Once it is r+'d, it will be folded into the first patch in
this set before landing.

MozReview-Commit-ID: CS9MngaXlBd
2017-07-28 16:44:39 -07:00
Jessica Jong
5b01fb8b01 Bug 1376695 - Check HasName() before CanHaveName(). r=ehsan
We should check HasName() first because HasName() should be cheaper and would
typically be false.

MozReview-Commit-ID: 8l7WQR7Lcxj
2017-07-29 11:56:53 -04:00
Jessica Jong
168de8a006 Bug 1376695 - Part 1: Let ElementHasName flag be applied to all nodes. r=ehsan
We'd like to use HasName() to know whether a node has a name attribute, but now
it's only applied to elements that CanHaveName(), hence we change it so that
it's applied to all nodes. Therefore, when document named items related
functions wants to use HasName() now, it must also check CanHaveName().

MozReview-Commit-ID: 2i5hfjnxXIF
2017-07-26 02:33:00 -04:00
Jessica Jong
0856214886 Bug 1375599 - Change IsDisabled() to look at NS_EVENT_STATE_DISABLED instead of the "disabled" attribute. r=bz
In order to speed up IsDisabled(), instead of querying for the @disabled
attribute, we're now using the NS_EVENT_STATE_DISABLED flag to know whether an
element is disabled.
It is safe to use the NS_EVENT_STATE_DISABLED flag for the following reasons:
- For form elements, nsGenericHTMLFormElement::IsDisabled() is only called on
  form elements that can be disabled; form elements that can't be disabled
  overrides IsDisabled() to return false directly.
  And, before this patch, NS_EVENT_STATE_DISABLED flag is set by
  nsGenericHTMLFormElement::IntrinsicState() if and only if IsDisabled() in all
  cases when CanBeDisabled() is true, and when CanBeDisabled() is false then
  IsDisabled() is always false and the flag is not set.
- For non form elements, optgroup and option have the flag matching
  IsDisabled(). Note that option's IsDisabled() should also refer to optgroup's
  (if it exists) disabled state, which was not done before this patch.

For this to work correctly, we need to set NS_EVENT_STATE_DISABLED earlier,
that is, in AfterSetAttr(), before any consumer of IsDisabled().
We also need to update the flag whenever the element's parent (e.g. fieldset or
optgroup) disabled state changes and when moving into/out of a parent
container.

Note that NS_EVENT_STATE_DISABLED/ENABLED is now part of the
EXTERNALLY_MANAGED_STATES.

MozReview-Commit-ID: KSceikeqvvU
2017-07-20 02:15:00 -04:00
Jessica Jong
19243ff95e Bug 1366361 - Part 1: .action/formAction should return the document's URL if @action/formaction is missing or empty. r=smaug
MozReview-Commit-ID: H4CK0SVpaCv
2017-07-17 14:17:19 +08:00
Boris Zbarsky
af7e457f7e Bug 1380393 part 5. Remove nsIDOMHTMLElement.offsetTop/Left. r=mccr8 2017-07-13 23:45:50 -04:00
Boris Zbarsky
d843bc168a Bug 1380393 part 4. Remove nsIDOMHTMLElement.accessKey. r=mccr8 2017-07-13 23:45:50 -04:00
Boris Zbarsky
37fa28bf2b Bug 1380393 part 3. Remove nsIDOMHTMLElement.focus. r=mccr8 2017-07-13 23:45:50 -04:00
Boris Zbarsky
636876c10b Bug 1380393 part 2. Remove nsIDOMHTMLElement.tabIndex. r=mccr8 2017-07-13 23:45:49 -04:00
Boris Zbarsky
01a42eb3b2 Bug 1380393 part 1. Remove some unused nsIDOMHTMLElement bits. r=mccr8 2017-07-13 23:45:49 -04:00
Kartikaya Gupta
94f4192698 Bug 1380375 - Remove the DOM bindings for the unused scrollgrab feature. r=smaug
MozReview-Commit-ID: 87aJOsc6zbO
2017-07-12 15:28:50 -04:00
Sylvestre Ledru
9d4a84d778 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG
2017-07-06 14:00:35 +02:00
Olli Pettay
36c7177e03 Bug 1378196, Make IsEventAttributeName non-virtual in common case, r=ehsan 2017-07-04 23:54:30 +03: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
John Dai
95546cdb0c Bug 556743 - Implement the labels attribute. r=smaug 2017-06-15 20:04:00 -04:00
Kirk Steuber
fe43804c94 Bug 1365092 - Moves side effects of nsGenericHTMLElement and Element's SetAttr, UnsetAttr, and ParseAttribute functions to the corresponding BeforeSetAttr and AfterSetAttr functions r=bz
This is necessary to facilitate the transition to cloning attributes instead of reparsing them.

MozReview-Commit-ID: HzB3f1sr9y9
2017-05-31 11:01:47 -07: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
Jessica Jong
0a69701a7e Bug 1358448 - Add radio back to a radio group after moving out of a form. r=smaug
The container of a radio group is the form, if it belongs to a form, or the
document object otherwise.
When moving a radio out of a form, we should add it back to a radio group.
Similary, before moving the radio to a form, we should remove it from the
original radio group.

MozReview-Commit-ID: 22WsEhz2SXH
2017-05-01 23:10:00 +02: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
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
Manish Goregaokar
be24bd2d60 Bug 1329093 - Part 4: stylo: Delay SVG mapped attr resolution till later; r=bz
MozReview-Commit-ID: 2GvHPg1egjS
2017-03-09 17:46:26 -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
33a682c81d Bug 1334330 - Part 6: stylo: Use GenericSpecifiedValue abstraction for table elements; r=emilio
MozReview-Commit-ID: 6wo4iw4zEWP
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
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
Tim Nguyen
d6b021c4e5 Bug 1322938 - Basic implementation of HTMLDialogElement. r=smaug, masayuki
MozReview-Commit-ID: AU92mq2QZIc
2016-12-23 16:01:50 +01:00
Xidorn Quan
0b9ce06825 Bug 1323153 - Not include ElementInlines in headers. r=smaug
MozReview-Commit-ID: Gusow6LTiJI
2016-12-13 18:11:04 +11:00
Boris Zbarsky
ab063f5422 Bug 1318576. Remove entries from a form's past names map when an element is removed from the form, even if that element doesn't have a name or id anymore. r=baku 2016-11-21 12:34:02 -05:00
Stone Shih
2df3b633cd Bug 1305458 Part5: Move form control frame focus/blur from nsGenericHTMLFormElement::GetEventTargetParent to PreHandleEvent. r=smaug
MozReview-Commit-ID: H8Zn5OdZpyt
2016-10-21 16:56:58 +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
75c836b7fe Bug 1316661 part 3. Eliminate IsCallerChrome callers in nsGenericHTMLElement. r=smaug
The only nsGenericHTMLElement::GetEditor callers are
HTMLInputElement::GetEditor/HTMLTextareaElement::GetEditor (the XPCOM-y
versions), which are only called from C++ and only from two places: a11y code,
which forces itself to look like system, and typeaheadfind, which would break
badly if it could not get an editor.  So that security check simply shouldn't
exist.

The script API doesn't call down into here _and_ is [ChromeOnly] in the webidl
already.
2016-11-15 00:18:33 -05:00
Boris Zbarsky
2b94d5ff09 Bug 1314026. Add a version of SetHTMLIntAttr that does the right thing with an unsigned argument, for use from setters for unsigned long IDL attributes that reflect a content attribute. r=bkelly 2016-11-02 13:37:26 -04:00
Aryeh Gregor
152f649d79 Bug 1312742 - Match spec/other browsers for ping reflection; r=bkelly
The spec used to say that getting the .ping property on
HTMLAnchorElement or HTMLAreaElement should return a DOMTokenList of
parsed URLs, but it now says to return a plain string.  All other UAs
that implement ping match the new spec, and it's hopefully unlikely that
any sites depend on our old behavior.

Discussion: https://github.com/whatwg/html/issues/1780

MozReview-Commit-ID: LpmH8ANNT9g
2016-10-30 16:04:52 +02:00
Ehsan Akhgari
4a54efddd1 Bug 1310385 - Remove support for UndoManager; r=smaug
There hasn't been any traction on this feature, and we keep
paying the maintenance and code size and memory usage penalty
of having this implementation.

We can revive this from VCS history in the future if we decide
to start working on it again.  In the mean time, it's better
to remove it.
2016-10-17 10:06:11 -04:00
Boris Zbarsky
9d8e7fdc07 Bug 921834. Add support for .dataset on SVGElement. r=bkelly 2016-08-11 16:56:34 -04:00
Nicholas Nethercote
0550795f93 Bug 1293117 (part 4) - Change many NS_IMETHODIMP occurrences to NS_IMETHOD. r=froydnj.
This patch makes the following changes on many in-class methods.

- NS_IMETHODIMP F() override;      --> NS_IMETHOD F() override;
- NS_IMETHODIMP F() override {...} --> NS_IMETHOD F() override {...}
- NS_IMETHODIMP F() final;         --> NS_IMETHOD F() final;
- NS_IMETHODIMP F() final {...}    --> NS_IMETHOD F() final {...}

Using NS_IMETHOD is the preferred way of marking in-class virtual methods.
Although these transformations add an explicit |virtual|, they are safe --
there's an implicit |virtual| anyway because |override| and |final| only work
with virtual methods.
2016-08-08 10:54:47 +10:00
Daosheng Mu
81d88710d1 Bug 778654 - Implement and move tabIndex functions to Element class to avoid duplicate work.r=peterv,heycam
MozReview-Commit-ID: uetkJztNcn
2016-05-24 12:22:17 +08:00
Andrew McCreight
3d743b65d0 Bug 1287146 - Remove unused argument from NodeInfoChanged(). r=bkelly 2016-07-20 15:18:59 -07:00
Botond Ballo
01d6b24053 Bug 1277298 - Store the 'scrollgrab' property in a NODE_FLAG_BIT rather than a new field of nsGenericHTMLElement. r=smaug
MozReview-Commit-ID: 7DV33kG2KNt
2016-06-06 17:45:46 -04:00
Olli Pettay
549b4b4d5b Bug 1276938 - Optimize string usage in setAttribute when dealing with HTML elements, r=baku 2016-05-31 18:56:20 +03:00
Boris Zbarsky
da1b7b9d44 Bug 909633. Remove the HTML Microdata API, since no one else ended up implementing it and now it's been removed from the spec. r=bkelly,jgraham 2016-05-20 23:13:17 -04:00
Aryeh Gregor
46067b8a0c Bug 1270499 - Setting reflected unsigned long to out-of-range value should set to default; r=bz
This changes to match the spec, which also aligns the behavior of get
and set (get already maps out-of-range values to the default value).
There is currently no interoperable behavior here, but this aligns us
with IE -- tested in 11, hopefully true for Edge too.

On the way, I also fixed the fact that video's height and width were
being treated as signed.
2016-05-05 21:29:54 +03:00
Jonathan Watt
947f9705a7 Bug 1263785 - Kill off the deprecated nsINode::GetCurrentDoc. r=baku 2016-03-31 12:46:32 +01:00
William Chen
3f3db96963 Bug 1259590 - Remove B2G ACL code. r=khuey 2016-04-07 09:50:01 -07:00
Ting-Yu Lin
972d7f0af5 Bug 1249556 - Implement toggling details by keyboard. r=smaug
The user can switch to the main <summary> by tab key, and toggle the
<details> by either 'space' key or 'enter' key.

'return' key is handled with 'keypress', and the 'space' key is handled
with 'keyup' like the HTMLInputElement.

MozReview-Commit-ID: HE6IduUGCpj
2016-03-19 20:37:09 +08:00
Deepthi Venkitaramanan
b00793a3d8 Bug 1244328 - Merge the functionality of DOMSettableTokenList into DOMTokenList and make everything that used to refer to DOMSettableTokenList refer to DOMTokenList instead. r=bzbarsky 2016-02-11 17:50:42 -05:00