Граф коммитов

252 Коммитов

Автор SHA1 Сообщение Дата
Nathan Froyd 846d8789ee Bug 1492894 - part 1 - make the node hierarchy consistently constructed with NodeInfo&&; r=mccr8
Various places in dom/ use the pattern:

  already_AddRefed<NodeInfo> ni = ...;

which is supposed to be disallowed by our static analysis code, but
isn't, for whatever reason.  To fix our static analysis code, we need to
eliminate instances of the above pattern.

Unfortunately, eliminating this pattern requires restructuring how Nodes
are created.  Most Node subclasses take `already_AddRefed<NodeInfo>&` in
their constructors, and a few accept `already_AddRefed<NodeInfo>&&`.  We
need to enforce the latter pattern consistently, which requires changing
dozens of source files.
2018-09-21 16:45:49 -04:00
Olli Pettay 57b81277a0 bug 1483963, cache the index of a child node when ordering animations for event dispatch, r=hiro,ehsan
--HG--
extra : rebase_source : f98586625b199e7b2d0eb7db8dc9c1c5235289fe
2018-09-05 00:31:57 +03:00
Olli Pettay e520af2423 Bug 1488359 - Inline GetPrevious/NextElementSibling, r=emilio 2018-09-04 13:35:16 +03:00
Emilio Cobos Álvarez 3b61137a4b Bug 1484478 - Use a node bit for connectedness. r=smaug
While trying to repro bug 1484293 I noticed that this assertion failed:

https://searchfox.org/mozilla-central/rev/ef8b3886cb173d5534b954b6fb7eb2d94a9473d0/dom/base/ShadowRoot.cpp#160

(during unlink, while unbinding the kids)

We rely on GetComposedDoc returning the right thing during unbind to cleanup
some stuff (see bug 1473637 for example), so it should probably be correct all
the time, regardless of whether something is unlinked or not.

Also this makes GetComposedDoc() much faster, which is nice too, since we call
it somewhat often.

I removed NodeHasRelevantHoverRules, since it's unused (was used by the old
style system).

I moved the SetIsConnected(false) call for the shadow root to before unbinding
the kids for consistency with what Element does with the uncomposed doc flag,
now that the children's connectedness doesn't depend on the shadow root's.

Differential Revision: https://phabricator.services.mozilla.com/D3715

--HG--
extra : moz-landing-system : lando
2018-08-20 11:56:27 +00:00
shindli b158b60c25 Backed out changeset 39f61de4e7bb (bug 1484478) for bustages in /builds/worker/workspace/build/src/dom/base/ShadowRoot.cpp:526:20 2018-08-20 14:21:08 +03:00
Emilio Cobos Álvarez ac923a49c1 Bug 1484478 - Use a node bit for connectedness. r=smaug
While trying to repro bug 1484293 I noticed that this assertion failed:

https://searchfox.org/mozilla-central/rev/ef8b3886cb173d5534b954b6fb7eb2d94a9473d0/dom/base/ShadowRoot.cpp#160

(during unlink, while unbinding the kids)

We rely on GetComposedDoc returning the right thing during unbind to cleanup
some stuff (see bug 1473637 for example), so it should probably be correct all
the time, regardless of whether something is unlinked or not.

Also this makes GetComposedDoc() much faster, which is nice too, since we call
it somewhat often.

I removed NodeHasRelevantHoverRules, since it's unused (was used by the old
style system).

I moved the SetIsConnected(false) call for the shadow root to before unbinding
the kids for consistency with what Element does with the uncomposed doc flag,
now that the children's connectedness doesn't depend on the shadow root's.

Differential Revision: https://phabricator.services.mozilla.com/D3715

--HG--
extra : moz-landing-system : lando
2018-08-19 18:22:48 +00:00
Timothy Guan-tin Chien dab48182aa Bug 1431255 - Part V, Set the reflectors of the UA Widget DOM to UA Widget Scope r=bholley
The DOM elements within the UA Widget Shadow DOM should have its reflectors in
the UA Widget Scope. This is done by calling nsINode::IsInUAWidget() which
would check its containing shadow and its UA Widget bit.

To prevent JS access of the DOM element before it is in the
UA Widget Shadom DOM tree, various DOM methods are set to inaccessible to
UA Widget script. It would need to use the two special methods in ShadowRoot
instead to insert the DOM directly into the shadow tree.

MozReview-Commit-ID: Jz9iCaVIoij

--HG--
extra : rebase_source : b7b17be68dcde00cfeb207cb39cf16b486f2ab02
2018-06-29 13:39:46 -07:00
Emilio Cobos Álvarez 1fbd784d00 Bug 1481601 - Remove now-useless aPreallocateChildren from nsINode::Clone() and friends. r=bzbarsky
Since sed on multiple lines ended up being such a pain and I didn't end up
writing a script for this because I didn't think it'd end up being so boring, I
may have made a couple cleanups here and there as well...

Differential Revision: https://phabricator.services.mozilla.com/D2887

--HG--
extra : moz-landing-system : lando
2018-08-08 23:58:44 +00:00
Olli Pettay 7315a671e1 Bug 1481399 - rename nsAttrAndChildArray to AttrArray, r=mrbkap
--HG--
rename : dom/base/nsAttrAndChildArray.cpp => dom/base/AttrArray.cpp
rename : dom/base/nsAttrAndChildArray.h => dom/base/AttrArray.h
extra : rebase_source : 488f4d9c87bf337686abfa98e79466343a9e6685
2018-08-07 22:07:26 +03:00
Olli Pettay 5a669d2747 Bug 1469521 - Change storage of previous and next children in nsINode, r=bz
--HG--
extra : rebase_source : 4cb50889c2cfc788cab7037d26d114e35205e998
2018-08-06 22:29:27 +03:00
Olli Pettay b9479cb08b Bug 1480147 - Add [ChromeOnly] Node.flattenedTreeParentNode, r=mrbkap 2018-08-02 14:54:15 +03:00
Brian Grinstead 6a6ca1a08c Bug 1475342 - Move document.getElementsByAttribute[NS] to ParentNode so it'll work for HTML document and elements;r=bz
It's currently only accessible on XULDocument and XULElement, but that makes porting existing
JS to run in an HTML document inconvenient. We could alternatively change calling JS, but
this can be easily moved and exposed in chrome contexts.

MozReview-Commit-ID: JitYET20NSE

--HG--
extra : rebase_source : 75d823c688cba8d84dc19705e83284be383962f2
2018-07-26 13:40:13 -07:00
Kristen Wright 82fd1509ba Bug 1474383 - JSRuntime hook to construct ubi::Nodes specialized for nsINode instances. r=sfink,jimb,bz
Created a runtime hook to handle DOM nodes. Specialized ubi::Concrete for nsINode-inheriting objects. Displayed outgoing nsISupports* edges on reflector JSObjects. Generated outgoing child edges from nsINodes by examining their children. Updated the UbiNodeCensus to ignore zone checks if there is no zone to be found in a node.

--HG--
extra : rebase_source : 319dccb3277a39e51a79588eac9c8f2b4ff97c2f
2018-07-06 16:52:42 -07:00
Csoregi Natalia f7a71fcb6d Backed out changeset ec8c33de4e10 (bug 1474383) for build bustage. CLOSED TREE 2018-07-24 19:32:06 +03:00
Kristen Wright 657d16c582 Bug 1474383 - JSRuntime hook to construct ubi::Nodes specialized for nsINode instances r=jimb
Created a runtime hook to handle DOM nodes. Specialized ubi::Concrete for nsINode-inheriting objects. Displayed outgoing nsISupports* edges on reflector JSObjects. Generated outgoing child edges from nsINodes by examining their children. Updated the UbiNodeCensus to ignore zone checks if there is no zone to be found in a node.
2018-07-06 16:52:42 -07:00
Emilio Cobos Álvarez 68f214df2a Bug 1450250: Make svg:use use an actual shadow tree. r=heycam
Summary:
This fixes a couple fuzz bugs and prevents special-casing <svg:use> even more in
bug 1431255.

Unfortunately not as many hacks went away as I'd have hoped, since we still need
to match document rules, see the linked SVGWG issues.

But blocks_ancestor_combinators goes away, which is nice since it's on a very
hot path.

Test Plan: WPT for style invalidation, covered by existing tests otherwise.

Reviewers: heycam

Tags: #secure-revision

Bug #: 1450250

Differential Revision: https://phabricator.services.mozilla.com/D2154

MozReview-Commit-ID: C4mthjoSNFh
2018-07-20 14:44:51 +02:00
Boris Zbarsky baa09fe66a Bug 1465907 part 2. Remove nsIAttribute. r=mccr8 2018-07-12 15:51:52 -07:00
Olli Pettay 51b5db9342 Bug 1440382, there should be no is-attribute, only internal is-value, in custom elements, r=mrbkap 2018-06-28 14:22:58 +03:00
Margareta Eliza Balazs e5cb974437 Backed out changeset 9fe49c825ba3 (bug 1440382) for causing bustage in builds/worker/workspace/build/src/dom/base/nsNodeUtils.cpp 2018-06-28 14:00:18 +03:00
Olli Pettay 7a0ce01ed8 Bug 1440382, there should be no is-attribute, only internal is-value, in custom elements, r=mrbkap 2018-06-28 13:39:05 +03:00
Jeff Gilbert 5b753da289 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Chris Peterson 2afd829d0f Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj
This patch is an automatic replacement of s/NS_NOTREACHED/MOZ_ASSERT_UNREACHABLE/. Reindenting long lines and whitespace fixups follow in patch 6b.

MozReview-Commit-ID: 5UQVHElSpCr

--HG--
extra : rebase_source : 4c1b2fc32b269342f07639266b64941e2270e9c4
extra : source : 907543f6eae716f23a6de52b1ffb1c82908d158a
2018-06-17 22:43:11 -07:00
catalin.badea392@gmail.com 9c36800bd7 Bug 1469385 - Remove InsertChildAt_Deprecated and RemoveChildAt_Deprecated, r=bz,smaug 2018-06-19 12:21:18 +03:00
Olli Pettay 5dad9cd69b Bug 1467790 - Inline nsINode::IsEditable, r=masayuki 2018-06-08 15:57:13 -04:00
Boris Zbarsky 97193c4178 Bug 1464784. Hold a strong ref to the document in callers of ConvertNodesOrStringsIntoNode. r=smaug 2018-06-02 01:26:00 -04:00
Emilio Cobos Álvarez d7bfa8a3bb Bug 1460382: Make element-backed pseudos inherit from NAC subtree roots and other NAC inherit from their parents. r=heycam
Currently, NAC always inherits from the closest non-NAC ancestor element,
regardless of whether it is for an element-backed pseudo or not.

This patch changes the inheritance so that for element-backed pseudos, we
inherit from the closest native anonymous root's parent, and for other NAC we
inherit from the parent.

This prevents the following two issues and allows us to remove the
NODE_IS_NATIVE_ANONYMOUS flag:

 * Avoiding inheriting from the non-NAC ancestor in XBL bindings bound to NAC.

   - This is no longer a problem since we apply the rule only if we're a
     pseudo-element, and all pseudo-elements are in native anonymous subtrees.

   - This also allows to remove the hack that propagates the
     NODE_IS_NATIVE_ANONYMOUS flag from the ::cue pseudo-element from
     BindToTree.

 * Inheriting from the wrong thing if we're a nested NAC subtree.

   - We no longer look past our NAC subtree, with the exception of
     ::-moz-number-text's pseudo-elements, for which we do want to propagate
     ::placeholder to.

A few rules from forms.css have been modified because they're useless or needed
to propagate stuff to the anonymous form control in input[type="number"] which
previously inherited from the input itself.

MozReview-Commit-ID: IDKYt3EJtSH
2018-05-30 10:14:46 +02:00
Boris Zbarsky cb08b0de7d Bug 1455676 part 21. Remove nsIDOMNode. r=qdot 2018-05-29 22:58:51 -04:00
Boris Zbarsky 115f652b0b Bug 1455676 part 20. Remove now-unused AsDOMNode methods. r=qdot 2018-05-29 22:58:50 -04:00
Olli Pettay ae1ffbdef7 Bug 1461321 - input.list should work in shadow DOM, r=peterv
--HG--
extra : rebase_source : 17a438c4fa687d2890be70867b136b635493c00d
2018-05-24 22:46:11 +03:00
Olli Pettay ae41728c3d Bug 1404864 - ensure HTMLInputElement.form works per spec in Shadow DOM, r=peterv
--HG--
extra : rebase_source : a9a597728ec3e5f2949de6769ce4ee490993a797
2018-05-18 20:02:14 +03:00
Peter Van der Beken ddfc4b6022 Bug 1452981 - Remove qsObjectHelper. r=bz.
--HG--
extra : rebase_source : f87d70c72bd720cd57377b4b70fdf8ecec590086
2018-05-02 11:47:02 +02:00
Boris Zbarsky 25aa42d9a4 Bug 1455674 part 16. Remove most use of nsIDOMElement in dom. r=qdot 2018-04-26 23:37:34 -04:00
Adrian Wielgosik b3c501adc4 Bug 1447389 - Remove nsIDOMNodeList. r=bz
MozReview-Commit-ID: 11szZP6dS6V

--HG--
extra : rebase_source : 9acfb352750e53d3b36684fa945a18e817c9b82e
2018-04-25 23:01:30 +02:00
Emilio Cobos Álvarez 5f526b4a81 Bug 1455559: Make FromNode work for references. r=bz,Nika
MozReview-Commit-ID: 1ldU1aKeMzs

--HG--
extra : rebase_source : 70a2537ab56d040f33acd84d4fd0c3d9de392198
2018-04-20 11:10:12 +02:00
Boris Zbarsky 1790f0fa04 Bug 1453828. Fix IsContainerNode to not claim true for doctype nodes. r=mccr8
MozReview-Commit-ID: BC1iBI38wfJ
2018-04-24 11:57:21 -04:00
Emilio Cobos Álvarez 5b2e86b4fb Bug 1455551: Move NS_IMPL_FROMNODE_HELPER and friends to nsINode.h. r=bz
MozReview-Commit-ID: 5PajqKEyFEW
2018-04-21 08:35:39 +02:00
Dorel Luca 644bf34f8b Backed out 8 changesets (bug 1453011, bug 1452981, bug 1146316) For xpcshell and mochitest failures on multiple files. CLOSED TREE
Backed out changeset 033299f27339 (bug 1453011)
Backed out changeset 4464997475c1 (bug 1453011)
Backed out changeset cae243fb2a3c (bug 1453011)
Backed out changeset adf56a83131b (bug 1453011)
Backed out changeset 80abe3305b24 (bug 1452981)
Backed out changeset 02178545f255 (bug 1452981)
Backed out changeset 719f7596c208 (bug 1146316)
Backed out changeset 1316c78daeb6 (bug 1146316)
2018-04-20 21:40:24 +03:00
Peter Van der Beken 79663afa7d Bug 1452981 - Remove qsObjectHelper. r=bz.
--HG--
extra : rebase_source : 931b915a05d026d826ceb5ec919c3909f9bae053
2018-03-01 09:01:00 +01:00
Emilio Cobos Álvarez 1f9cbf532c Bug 1454251: Remove nsINode::eATTRIBUTE. r=bz
MozReview-Commit-ID: 7HeUbcG6szy
2018-04-20 09:52:26 +02:00
Emilio Cobos Álvarez fea49419b0 Bug 1454251: Remove nsINode::ePROCESSING_INSTRUCTION. r=bz
MozReview-Commit-ID: Xz5UiIgRpz
2018-04-20 09:52:09 +02:00
Emilio Cobos Álvarez 6766804ba7 Bug 1454251: Remove nsINode::eCOMMENT. r=bz
MozReview-Commit-ID: AbSPU25fFbM
2018-04-20 09:51:57 +02:00
Boris Zbarsky 597b4545d2 Bug 1429903 part 4. Remove nsIDOMEventTarget. r=mccr8
MozReview-Commit-ID: 9XuenUHxfPx
2018-04-20 00:49:30 -04:00
Emilio Cobos Álvarez 81156610f9 Bug 1454233: Add a comment about why IsDocument() is the way it is. r=me
MozReview-Commit-ID: LYkYnKF9M2c
2018-04-20 03:58:01 +02:00
Emilio Cobos Álvarez 45787fc53f Bug 1454241: Remove nsINode::eDATA_NODE. r=bz
MozReview-Commit-ID: 6HQDAwiGgIo
2018-04-20 03:58:00 +02:00
Emilio Cobos Álvarez 81856604ef Bug 1454238: Remove nsINode::eMEDIA. r=bz
MozReview-Commit-ID: LPutL6PlrgG
2018-04-20 01:30:12 +02:00
Emilio Cobos Álvarez d8e55e4596 Bug 1454236: Remove nsINode::eDOCUMENT_FRAGMENT. r=bz
MozReview-Commit-ID: D2F3LbQ1pvw
2018-04-20 01:30:12 +02:00
Emilio Cobos Álvarez c83b270a33 Bug 1454236: Introduce nsINode::{IsDocumentFragment, AsDocumentFragment}. r=bz
I wonder if we should use some macros to reduce a bit the copy pasta in the As*
functions...

Also whether they should start returning references... In any case, those are
followups.

MozReview-Commit-ID: 7w4518fSHnj
2018-04-20 01:30:11 +02:00
Emilio Cobos Álvarez 83fd987aec Bug 1454233: Remove nsINode::eDOCUMENT. r=bz
MozReview-Commit-ID: ItjdI79zme7
2018-04-20 01:30:11 +02:00
Emilio Cobos Álvarez 37b05c5b37 Bug 1454233: Introduce nsINode::{IsDocument, AsDocument}. r=bz
MozReview-Commit-ID: InXKFstGgSU
2018-04-20 01:30:10 +02:00
Emilio Cobos Álvarez ac58b545f5 Bug 1454233: Ensure some casts and GetParentElement get inlined. r=bz
GetParentElement was using AsElement before being defined. This is only fine
because AsElement wasn't actually getting inlined in this case.

MozReview-Commit-ID: K41hSBEmIU0
2018-04-20 01:30:10 +02:00