Commit Graph

325 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
5976d2974f Bug 1577043 - Turn two anonymous-content-related NS_ASSERTIONs into MOZ_ASSERTs. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D43697
2019-08-28 09:36:44 +00:00
Emilio Cobos Álvarez
13f7bd8bd0 Bug 1554498 - Fix an assertion that starts firing with the previous patch after addressing review feedback. r=smaug
After addressing review comments in the other patch of this bug, debug builds
assert all the time here when called from UnbindFromTree() on an already-unbound
subtree.

We clear the binding parent on unbind, so this is only guaranteed to match for
connected nodes, as far as I can tell.

Differential Revision: https://phabricator.services.mozilla.com/D43641
2019-08-27 22:09:26 +00:00
Gurzau Raul
ff7685aa79 Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-07-17 06:53:00 +03:00
Mirko Brodesser
a70fbb65b5 Bug 1566046: move nsContentUtils::ContentIsShadowIncludingDescendantOf to nsINode::IsShadowIncludingInclusiveDescendantOf. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D38079
2019-07-16 09:25:02 +02:00
Mirko Brodesser
23b4c95157 Bug 1566046: rename GetParentOrHostNode to GetParentOrShadowHostNode. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D38078
2019-07-16 09:25:02 +02:00
Boris Zbarsky
1b21e3069f Bug 1565767 part 1. Stop returning addrefed URIs from GetBaseURI(). r=peterv
We only needed this for xml:base.

Differential Revision: https://phabricator.services.mozilla.com/D37969
2019-07-15 17:22:30 +00:00
Thomas Nguyen
8e17cce240 Bug 1546334 - Use referrerInfo in style system. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D36478
2019-07-16 11:43:56 +00:00
Emilio Cobos Álvarez
9b6e807979 Bug 1218456 - Remove nsILinkHandler. r=smaug
Interfaces with just one implementation don't seem very useful.

Differential Revision: https://phabricator.services.mozilla.com/D37406
2019-07-09 23:08:05 +02:00
Dorel Luca
7a5944a08d Backed out 5 changesets (bug 1218456) for Crashtest failures on dom/l10n/tests/mochitest/dom_localization/test_overlay.html. CLOSED TREE
Backed out changeset 31afe89c2d42 (bug 1218456)
Backed out changeset 8bd57ebc4528 (bug 1218456)
Backed out changeset e5d37afff36a (bug 1218456)
Backed out changeset e3da86278ecf (bug 1218456)
Backed out changeset 343046089f8e (bug 1218456)
2019-07-09 22:04:13 +03:00
Emilio Cobos Álvarez
19f9994690 Bug 1218456 - Remove nsILinkHandler. r=smaug
Interfaces with just one implementation don't seem very useful.

Differential Revision: https://phabricator.services.mozilla.com/D37406
2019-07-09 16:17:47 +00:00
Mirko Brodesser
904e7e7b99 Bug 1551425: Part 2) Change reference to parent in nsAttrChildContentList from non-owning to RefPtr. r=smaug
With a non-owning reference, a JS reference to the NodeList didn't keep its
items alive. With this change, the NodeList keeps the parent node (which keeps
its children alive) alive.

Differential Revision: https://phabricator.services.mozilla.com/D34151
2019-06-25 06:56:23 +00:00
Neil Deakin
8a103f89a4 Bug 1519948, remove XUL box objects, r=bzbarsky 2019-06-04 12:45:55 -04:00
Emilio Cobos Álvarez
5e3f197e9e Bug 1555944 - Make nsIContent::GetBindingParent return an element. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D33308
2019-05-31 23:31:59 +02:00
Brian Birtles
532907ee15 Bug 1552387 - Traverse and unlink EffectSet properties on non-HTML/SVG elements too; r=hiro
The tests added in this patch do not fail any of their assertions with or
without the code changes in this patch. However, without the code changes in
this patch they will both fail due to reported memory leaks.

Differential Revision: https://phabricator.services.mozilla.com/D31577
2019-05-17 04:49:38 +00:00
Masayuki Nakano
e56c690088 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25338
2019-03-29 15:12:47 +00:00
Dorel Luca
6cd4166b18 Backed out 3 changesets (bug 1540015) for build bustage. CLOSED TREE
Backed out changeset 7b71c9da0214 (bug 1540015)
Backed out changeset 5723ddbc5c44 (bug 1540015)
Backed out changeset 9561d2c36fa5 (bug 1540015)
2019-03-29 16:14:26 +02:00
Masayuki Nakano
12ec0ad7f4 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25338
2019-03-29 13:09:26 +00:00
Randell Jesup
682721b83e Bug 1522150: Add a DeferredTimers queue ahead of the normal Idle EventQueue r=froyd
* * *
Bug 1522150: Rename NS_IdleDispatch* functions since they take queue identifiers r=froyd
2019-01-26 12:18:05 -05:00
Ehsan Akhgari
498e2df734 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset
2019-01-18 10:16:18 +01:00
Masayuki Nakano
09a048debb Bug 181137 - part 9: Move kNSURIs in Document.cpp and FragmentOrElement.cpp into their users r=smaug
Due to renaming nsContentIterator.cpp to ContentIterator.cpp, Document.cpp
and FragmentOrElement.cpp are compiled in a unified cpp file now.  However,
both of them have same name constant, kNSURIs and some build systems claim
that it in FragmentOrElement.cpp is never used.

Fortunately, each of them is used only by one method.  Therefore, this patch
moves the each declaration into each user method.

Differential Revision: https://phabricator.services.mozilla.com/D16186
2019-01-11 01:53:10 +00:00
Masayuki Nakano
f2a04fe873 Bug 181137 - part 7: Get rid of nsIContentIterator interface r=smaug
Now, nobody requires nsIContentIterator interface.  So, we can get rid of it.

Unfortunately, there is no macro to keep the inherited class,
ContentSubtreeIterator, in the cycle collection to make it keep managing
ContentSubtreeIterator::mRange without nsISupports interface.  Therefore, this
patch moves it into ContentIteratorBase temporarily.  Anyway, the following
patch makes those classes not refcountable.  At that time, this issue will be
fixed.

Differential Revision: https://phabricator.services.mozilla.com/D15927
2019-01-11 01:51:42 +00:00
Csoregi Natalia
ec11d4a214 Backed out 8 changesets (bug 181137) for bustage on FragmentOrElement.cpp:1751. CLOSED TREE
Backed out changeset 99a977d519a0 (bug 181137)
Backed out changeset 65a4b245e851 (bug 181137)
Backed out changeset 5385d5fd9b8b (bug 181137)
Backed out changeset 83bec02c21d9 (bug 181137)
Backed out changeset b7ab59bf545e (bug 181137)
Backed out changeset b6fc7a332db7 (bug 181137)
Backed out changeset 654fdbad67db (bug 181137)
Backed out changeset 90a1ff49b6b1 (bug 181137)
2019-01-10 11:42:27 +02:00
Masayuki Nakano
58163408b9 Bug 181137 - part 7: Get rid of nsIContentIterator interface r=smaug
Now, nobody requires nsIContentIterator interface.  So, we can get rid of it.

Unfortunately, there is no macro to keep the inherited class,
ContentSubtreeIterator, in the cycle collection to make it keep managing
ContentSubtreeIterator::mRange without nsISupports interface.  Therefore, this
patch moves it into ContentIteratorBase temporarily.  Anyway, the following
patch makes those classes not refcountable.  At that time, this issue will be
fixed.

Differential Revision: https://phabricator.services.mozilla.com/D15927
2019-01-10 08:47:54 +00:00
Emilio Cobos Álvarez
dc336a73ba Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Emilio Cobos Álvarez
e461afa617 Bug 1516853 - Merge nsIDocument and nsDocument. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D15498
2018-12-31 14:10:19 +00:00
Emilio Cobos Álvarez
653779e555 Bug 1516366 - Move nsOnloadBlocker and nsDocumentOnStack to nsDocument.cpp, and shrink nsDocument.h to the minimmum. r=smaug
This needs to add a few of includes in other places which were relying on the
massive (now gone) list in nsDocument.h.

I also needed to move an AnimationTimeline destructor out of line because it
relied on dom::Animation being defined, yet Animation.h includes
AnimationTimeline.h, so include hell.

Differential Revision: https://phabricator.services.mozilla.com/D15366
2018-12-29 20:41:42 +01:00
Jonathan Kingston
7fe03e93db Bug 903372 - Removal of xml:base. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D13457
2018-12-13 15:16:52 +00:00
Olli Pettay
4b3dbc886b Bug 1512256 - Move FragmentOrElement::mAttrs to Element, r=ehsan 2018-12-06 15:58:40 +02:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Andreea Pavel
5576b63e80 Backed out 2 changesets (bug 903372) for multiple failures on a CLOSED TREE
Backed out changeset bf919773f9d1 (bug 903372)
Backed out changeset 6562c2392ac9 (bug 903372)
2018-11-30 04:16:21 +02:00
Jonathan Kingston
9e6dc50779 Bug 903372 - Removal of xml:base. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D8965
2018-11-29 15:31:46 +00:00
Emilio Cobos Álvarez
cb949993cb Bug 1505887 - Fix FindChromeAccessOnlySubtreeOwner so that we handle UA widget being ChromeOnlyAccess root. r=smaug
A single video controls test crashed without this, while dereferencing
a null anonOwnerRelated in:

  https://searchfox.org/mozilla-central/rev/c0b26c40769a1e5607a1ae8be37fe64df64fc55e/dom/base/FragmentOrElement.cpp#964

I think this is the right fix for it, but the code that uses this is kind of
complex, so worth double-checking... :)
2018-11-27 13:26:20 +01:00
Razvan Maries
15d8f89dca Backed out 4 changesets (bug 1505887, bug 1509989) for failing crashtests on tests/layout/style/crashtests/1509989.html on a CLOSED TREE.
Backed out changeset dc6c022e9fe1 (bug 1509989)
Backed out changeset 490a99122a7f (bug 1505887)
Backed out changeset 7b9afff4ff11 (bug 1505887)
Backed out changeset 15da6e919d80 (bug 1505887)
2018-11-27 14:10:30 +02:00
Emilio Cobos Álvarez
9a39933915 Bug 1505887 - Fix FindChromeAccessOnlySubtreeOwner so that we handle UA widget being ChromeOnlyAccess root. r=smaug
A single video controls test crashed without this, while dereferencing
a null anonOwnerRelated in:

  https://searchfox.org/mozilla-central/rev/c0b26c40769a1e5607a1ae8be37fe64df64fc55e/dom/base/FragmentOrElement.cpp#964

I think this is the right fix for it, but the code that uses this is kind of
complex, so worth double-checking... :)
2018-11-27 11:41:16 +01:00
Ehsan Akhgari
ec4bc6f227 Bug 1504574 - Remove the XPCOM registration for nsDocumentEncoder; r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D10856
2018-11-05 23:16:04 -05:00
Nicholas Nethercote
325d491a33 Bug 1451169 - Use nsStaticAtom* instead of nsStaticAtom** in Element.h. r=baku 2018-04-03 13:21:06 +10:00
Nathan Froyd
f93834868a 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
Thomas Nguyen
88143252f9 Bug 1330487 - Part 3: Propagate referrer policy from doc/sheet to URLExtraData r=heycam
Referrer policy argurment is passed from sheet/doc to URLExtraData, default
value is RP_Unset. We use default value in some cases, particularly when there's
no certain spec talks about that (svg for example)

MozReview-Commit-ID: 5VAX1ZUXD3i

Differential Revision: https://phabricator.services.mozilla.com/D1922
2018-09-17 05:36:45 +00:00
Boris Zbarsky
0558566d7e Bug 1487237. Add some content lists stored in DOM slots to memory reporting. r=smaug
This reports the memory as part of element-nodes, but I think that's OK for
now.  If we want to, we can try to add more nsWindowSizes buckets for this stuff.

Differential Revision: https://phabricator.services.mozilla.com/D4811
2018-09-01 14:55:47 +00:00
Boris Zbarsky
e2d8437e78 Bug 1486480. Add memory reporting for custom element data. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D4350
2018-08-27 19:20:53 +00:00
Emilio Cobos Álvarez
dbef1026a1 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
2018-08-20 11:56:27 +00:00
shindli
ccab0e0f23 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
2e3815789f 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
2018-08-19 18:22:48 +00:00
Emilio Cobos Álvarez
e72f751ec2 Bug 1483882 - Teach IDTracker about Shadow DOM. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D3533
2018-08-17 22:01:52 +02:00
Narcis Beleuzu
987fd9134c Backed out changeset 9c08d6d5d6f2 (bug 1483882) for reftest failures on svg/fragid-shadow. CLOSED TREE 2018-08-17 21:27:14 +03:00
Emilio Cobos Álvarez
8fbacd6bfb Bug 1483882 - Teach IDTracker about Shadow DOM. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D3533
2018-08-17 19:14:47 +02:00
Noemi Erli
0f72fdc0f5 Backed out 2 changesets (bug 1483882) for reftest failures in uilds/worker/workspace/build/tests/reftest/tests/layout/reftests/svg/fragid-shadow-3.html
Backed out changeset 4656d3bf8e9c (bug 1483882)
Backed out changeset 4105f56578d4 (bug 1483882)
2018-08-17 18:13:14 +03:00
Emilio Cobos Álvarez
0530f9d11c Bug 1483882 - Teach IDTracker about Shadow DOM. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D3533
2018-08-17 11:35:15 +00:00
Noemi Erli
26a77ed8e1 Backed out 1 changesets (bug 1483882) for reftest failures in builds/worker/workspace/build/tests/reftest/tests/layout/reftests/svg/fragid-shadow-3.html on a CLOSED TREE
Backed out changeset d25d4da4aad2 (bug 1483882)
2018-08-17 13:37:55 +03:00
Emilio Cobos Álvarez
5f46b0ffb6 Bug 1483882 - Teach IDTracker about Shadow DOM. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D3533
2018-08-17 09:19:47 +00:00