Commit Graph

308 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
d3b86f48ae Bug 1596391 - Remove NODE_MAY_BE_IN_BINDING_MNGR. r=smaug
Never set anymore.

Depends on D52993

Differential Revision: https://phabricator.services.mozilla.com/D52994
2019-11-14 12:54:00 +00:00
Brian Grinstead
5c162e767e Bug 1593119 - unifdef MOZ_XBL r=bzbarsky
This was generated with:

```
rg -l -g '*.{cpp,h}' MOZ_XBL . | while read FILE ; do
   echo $FILE
   unifdef -m -UMOZ_XBL $FILE
done
```

After this, I manually removed the directive in nsContentUtils.cpp due to:

  unifdef: ./dom/base/nsContentUtils.cpp: 4630: Unterminated string literal
  unifdef: Output may be truncated

Differential Revision: https://phabricator.services.mozilla.com/D51337
2019-11-07 00:35:13 +00:00
Mirko Brodesser
8462bc2a30 Bug 1593222: part 12) Rename "nsNodeUtils.*" to "MutationObservers.*". r=smaug
Depends on D51827

Differential Revision: https://phabricator.services.mozilla.com/D51828
2019-11-06 09:08:06 +00:00
Mirko Brodesser
0ce85ec381 Bug 1593222: part 9) Move non-animation notification methods from nsNodeUtils to MutationObservers. r=smaug
The remaining notification methods are moved in a separate commit. The
files are renamed to `MutationObservers.*` in a follow-up commit.

Depends on D51824

Differential Revision: https://phabricator.services.mozilla.com/D51825
2019-11-05 21:32:53 +00:00
Mirko Brodesser
6c635b3550 Bug 1593222: part 8) Move nsNodeUtils::CloneAndAdopt to nsINode. r=smaug
Depends on D51823

Differential Revision: https://phabricator.services.mozilla.com/D51824
2019-11-05 21:13:45 +00:00
Mirko Brodesser
6866559dfe Bug 1593222: part 7) Move nsNodeUtils::Adopt to nsINode. r=smaug
Depends on D51821

Differential Revision: https://phabricator.services.mozilla.com/D51823
2019-11-05 20:53:00 +00:00
Mirko Brodesser
603f162c3a Bug 1593222: part 6) Move nsINodeUtils::Clone to nsINode::Clone. r=smaug
Makes `nsNodeUtils::CloneAndAdopt` temporarily public. Will be hidden
again in a follow-up commit.

Depends on D51820

Differential Revision: https://phabricator.services.mozilla.com/D51821
2019-11-05 20:43:53 +00:00
Mirko Brodesser
e2e878dab7 Bug 1593222: part 5) Merge nsNodeUtils::CloneNodeImpl into its only caller. r=smaug
Depends on D51609

Differential Revision: https://phabricator.services.mozilla.com/D51820
2019-11-05 20:25:58 +00:00
Mirko Brodesser
0fbfa6a2bc Bug 1593222: part 4) Move nsNodeUtils::LastRelease to nsINode. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D51609
2019-11-05 14:06:13 +00:00
Mirko Brodesser
212ddebc86 Bug 1593222: part 3) Move nsNodeUtils::GetFirstChildOfTemplateOrNode to nsINode. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D51608
2019-11-05 14:06:05 +00:00
Brendan Dahl
bf272a3bca Bug 1510785 - Only build XBL related code when MOZ_XBL is defined. r=bzbarsky
When XBL is disabled, no code in dom/xbl will be built. Also, adds ifdefs
to remove any of the XBL related code elsewhere. There's definitely more
that can be done here, but I think it's better to wait to do the rest of
the cleanup when we actually remove the code.

Depends on D45612

Differential Revision: https://phabricator.services.mozilla.com/D45613
2019-10-08 23:52:14 +00:00
Boris Zbarsky
dbe73fe0d2 Bug 1581315 part 3. Add MOZ_MUST_RETURN_FROM_CALLER_IF_THIS_IS_ARG to more ErrorResult methods. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D46107
2019-09-20 02:19:18 +00:00
Nicholas Nethercote
c4aacd8403 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

Differential Revision: https://phabricator.services.mozilla.com/D39138
2019-07-26 01:10:23 +00: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
Noemi Erli
481ed55c7b Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-07-16 00:48:17 +03:00
Mirko Brodesser
090d7efc5e Bug 1565584: move nsIContentUtils::ContentIsDescendantOf to nsINode::IsInclusiveDescendantOf. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D37880
2019-07-15 10:02:21 +02:00
Boris Zbarsky
5dfb6ce034 Bug 1565767 part 3. Remove some unnecesary refcounting at nsINode::GetBaseURI callsites. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D37971
2019-07-15 17:46:43 +00: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
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
Zibi Braniecki
64a0cda64c Bug 1552714 - Remove dom::l10n namespace and unify class naming. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D33739
2019-06-06 16:32:58 +00:00
Neil Deakin
8a103f89a4 Bug 1519948, remove XUL box objects, r=bzbarsky 2019-06-04 12:45:55 -04:00
Emilio Cobos Álvarez
a3b32df884 Bug 1555216 - Change the signature of BindToTree to be (BindContext&, nsINode& aParentNode). r=bzbarsky
BindContext was going to have way more information at first, but then I realized
that most of the things I wanted to know were basically a flag away using the
parent node.

Still I think it's worth it, now experimenting with BindToTree will only mean
adding a field to a struct that's included from a couple cpp files, instead of a
massive pain.

I also think this is clearer, and doing this highlights quite a few
inconsistencies in our code which I've left untouched, but commented with
FIXMEs.

Steps are:

$ for file in $(rg 'nsresult BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#nsresult BindToTree(Document\* aDocument, nsIContent\* aParent,#nsresult BindToTree(BindContext\&, nsINode\& aParent)#g' $file; done
$ for file in $(rg 'nsresult BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#                      nsIContent\* aBindingParent) override#override#g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#::BindToTree(Document\* aDocument, nsIContent\* aParent,#::BindToTree(BindContext\& aContext, nsINode\& aParent)#g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#nsIContent\* aBindingParent)##g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#::BindToTree(aDocument, aParent, aBindingParent)#::BindToTree(aContext, aParent)#g' $file; done
$ ./mach clang-format

Then manual fixups.

Depends on D32948

Differential Revision: https://phabricator.services.mozilla.com/D32949
2019-05-31 23:31:52 +02:00
Christoph Kerschbaumer
29451e9f5e Bug 965637: Move CSP from Principal into Client, part 1: backend changes. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D27654
2019-05-21 23:14:27 +00:00
Andrea Marchesini
dfeacd64f2 Bug 1548253 - Port pref cache variables of nsContentUtils to StaticPrefs - layout.css.getBoxQuads.enabled, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D29517
2019-05-01 21:09:58 +00:00
Masayuki Nakano
cf345a4a71 Bug 1547618 - Make dom use mozilla::PresShell rather than via nsIPresShell r=smaug
Additionally, this patch makes `nsContentUtils::DispatchXULCommand()` because
it guarantees the lifetime of **only** `PresShell` in it.  So, we need to check
the lifetime of each argument at each caller here.

Differential Revision: https://phabricator.services.mozilla.com/D29199
2019-04-30 01:35:30 +00:00
Daniel Holbert
e22755d7ab Bug 1547374: Give nsINode.cpp an include for DocumentInlines.h (to provide e.g. inline definition for GetPresContext()). r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D29067
2019-04-26 20:25:46 +00:00
Zibi Braniecki
1a08c2cb39 Bug 1544118 - Move nsINode::localize to use DocumentL10n::TranslateFragment. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D28269
2019-04-24 10:35:37 +00:00
Zibi Braniecki
e7d3e82d3c Bug 1503657 - Migrate nsINode::localize and DOMLocalization.jsm to use DOMOverlays C++. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D27201
2019-04-24 05:05:15 +00:00
Zibi Braniecki
c575f063e8 Bug 1534480 - Do not update Fluent DOM attributes if they match current ones. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D23063
2019-04-16 20:45:52 +00:00
arthur.iakab
69e37b554b Backed out changeset a8acb6aa4a52 (bug 1534480)for chrome mochitest failures on dom_overlays/test_same_attribute.html CLOSED TREE 2019-04-16 20:54:11 +03:00
Zibi Braniecki
c950f0c222 Bug 1534480 - Do not update Fluent DOM attributes if they match current ones. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D23063
2019-04-16 16:29:38 +00:00
Boris Zbarsky
f84e5421de Bug 1543564 part 2. Get rid of pointless nsPIDOMWindowInner::AsInner methods. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D27027
2019-04-11 14:12:43 +00:00
Zibi Braniecki
20f3fe1822 Bug 1483036 - Report meaningful Promise values from FluentDOM C++ bits r=Gijs,smaug
Differential Revision: https://phabricator.services.mozilla.com/D24113
2019-03-26 19:34:27 +00:00
Emilio Cobos Álvarez
e4704fe595 Bug 1538661 - Simplify Owned FFI types. r=boris
And make them actually sound. We're defining functions on Rust-land that get
structs as arguments, but declaring them in C++ as getting pointers.

This is another step in order to be able to autogenerate ServoBindings.h and
remove bindings.rs altogether.

We remove FooOwned in favor of Owned<Foo>, which is generated via cbindgen.

It'd be good to actually mark Owned and such as MOZ_MUST_USE_TYPE, so I sent
https://github.com/eqrion/cbindgen/pull/307 for that.

Differential Revision: https://phabricator.services.mozilla.com/D24681
2019-03-26 18:15:59 +00:00
Jeff Walden
f4f68cd7ec Bug 1537536 - Move JS::ForOfIterator to its own header. r=arai,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D24257
2019-03-26 17:10:44 +00:00
Bogdan Tara
f9a7fc3005 Backed out 4 changesets (bug 1536584, bug 1538661, bug 1538694) for causing build bustages CLOSED TREE
Backed out changeset 563e8fb1be5d (bug 1538694)
Backed out changeset 7bd834c5800c (bug 1536584)
Backed out changeset f1eec8f7a3f8 (bug 1538694)
Backed out changeset 73a48619739e (bug 1538661)
2019-03-26 16:40:20 +02:00
Emilio Cobos Álvarez
c1bec14091 Bug 1538661 - Simplify Owned FFI types. r=boris
And make them actually sound. We're defining functions on Rust-land that get
structs as arguments, but declaring them in C++ as getting pointers.

This is another step in order to be able to autogenerate ServoBindings.h and
remove bindings.rs altogether.

We remove FooOwned in favor of Owned<Foo>, which is generated via cbindgen.

It'd be good to actually mark Owned and such as MOZ_MUST_USE_TYPE, so I sent
https://github.com/eqrion/cbindgen/pull/307 for that.

Differential Revision: https://phabricator.services.mozilla.com/D24681
2019-03-26 13:25:42 +00:00
Boris Zbarsky
2f5d08a220 Bug 1530208. Fix isEqualNode to not do a bunch of string-copying. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D21824
2019-03-04 19:43:47 +00:00
Andreea Pavel
835043ba99 Backed out changeset cc4b2dbdfd83 (bug 1530208) for failing dom/base/test/unit/test_isequalnode.js on a CLOSED TREE 2019-03-04 21:00:27 +02:00
Boris Zbarsky
dd96b152d9 Bug 1530208. Fix isEqualNode to not do a bunch of string-copying. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D21824
2019-03-04 18:00:27 +00:00
Boris Zbarsky
16ce747063 Bug 1489308 part 7. Remove now-unused mDidDocumentOpen member. r=mccr8
This was only used to check for cases when document.open changed the global and
hence elements being inserted into the document need a new reflector.  Since
document.open no longer changes the global (as of part 5 of the patches for
this bug), this code is no longer needed.

Differential Revision: https://phabricator.services.mozilla.com/D17325
2019-02-27 05:11:19 +00:00
Emilio Cobos Álvarez
dbdec3f72a Bug 1528675 - Rename NODE_CHROME_ONLY_ACCESS to NODE_HAS_BEEN_IN_UA_WIDGET, and use that to determine our wrapper scope. r=bzbarsky
It won't change then, even when removed from the UA Widget. It also gives us an
extra node bit.

Differential Revision: https://phabricator.services.mozilla.com/D20560
2019-02-21 18:39:28 +00:00
Markus Stange
619ba4cb84 Bug 1500692 - Add LAYOUT subcategories. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D11341
2019-02-16 17:38:35 +00:00
Alex Gaynor
f7bad47693 Bug 1516691 - use a release assert to prevent this scenario in release builds; r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D19505
2019-02-13 21:57:26 +00:00
Boris Zbarsky
ee53d796ef Bug 1515582. Remove the separate XBL scope setup. r=bholley
With these changes, XBL just runs in the window scope of whatever document it's
attached to.  Since (outside of tests and "remote XUL") we no longer attach XBL
to web documents, this is fine.  And "remote XUL" already ran without the XBL
scope.

Native anonymous content, which used to be placed in the XBL scope to hide it
from the page, is now placed in the unprivileged junk scope, so it stays hidden
from the page.

dom/xbl/test/test_bug944407.xul is being removed because we are changing the
behavior it's trying to test for.  Since we now always put the XBL in the same
scope as the page, script is enabled for the XBL if and only if it's enabled for
the page.

dom/base/test/test_bug419527.xhtml, dom/events/test/test_bug391568.xhtml,
dom/xbl/test/test_bug1086996.xhtml are being switched to a chrome test because
otherwise the XBL can't see the getAnonymousNodes method.

All the XBL bits are being removed from test_interfaces because we no longer
have a separate XBL scope to test the behavior of.

js/xpconnect/tests/mochitest/test_nac.xhtml is being removed because XBL no
longer has access to NAC unless the page it's attached to does too, so the test
doesn't really make sense.

layout/xul/test/test_bug1197913.xul is being switched to a chrome test because
its XUL elements use bindings that rely on APIs that are not exposed to normal
web content.

layout/reftests/bugs/495385-2f.xhtml is being removed because I can't think of
a sane way to test that in the new world, short of running the reftest as
chrome.  And it doesn't seem worthwhile to look for a way to do that.

dom/xbl/test/test_bug1098628_throw_from_construct.xhtml now needs to
expectUncaughtException(), because the exception is now being thrown in Window
scope.

dom/xbl/test/test_bug1359859.xhtml needs to expectUncaughtException() as needed
and not use XPCNativeWrapper (which it doesn't need to anyway now).

dom/xbl/test/test_bug389322.xhtml, dom/xbl/test/test_bug400705.xhtml,
dom/xbl/test/test_bug401907.xhtml, dom/xbl/test/test_bug403162.xhtml,
dom/xbl/test/test_bug526178.xhtml, dom/xbl/test/test_bug639338.xhtml don't need
to use XPCNativeWrapper anymore.

dom/xbl/test/test_bug821850.html is being removed because it exists only to test XBL scopes.

dom/xbl/test/file_bug950909.xml is being changed to work without a separate XBL
scope (though whether the test still makes sense at that point is a bit questionable).

Differential Revision: https://phabricator.services.mozilla.com/D19260
2019-02-11 21:51:47 +00:00
Brad Werth
4fee954105 Bug 1521604 Part 2: Create a Node chrome-only parentFlexElement property, for use by devtools. r=dholbert,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D17308
2019-02-01 22:29:34 +00:00