Commit Graph

109 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
b3956b6171 Bug 1423990: Move the last few attribute-related methods outside of nsIContent. r=bz
MozReview-Commit-ID: 8JZuS6O8f8W
2017-12-07 19:13:50 +01:00
Emilio Cobos Álvarez
ebbcb13f05 Bug 1426494: s/StyleScope/DocumentOrShadowRoot. r=smaug
MozReview-Commit-ID: DsFPlQMGAyv
2017-12-22 01:56:36 +01:00
Emilio Cobos Álvarez
d209d9735e Bug 1426494: Share more code among Document / ShadowRoot. r=smaug
MozReview-Commit-ID: C4cJrSFPnIb
2017-12-22 01:56:17 +01:00
Emilio Cobos Álvarez
4a5b0cc09d Bug 1426494: Devirtualize StyleScope::AsNode. r=smaug
MozReview-Commit-ID: 2nDEI5aIu46
2017-12-22 01:56:16 +01:00
Sebastian Hengst
fb91277709 merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-12-21 13:41:45 +02:00
Cosmin Sabou
814cc32505 Backed out 3 changesets (bug 1426494) for build bustages on dom/base/FuzzingFunctions.h:25:44 r=backout on a CLOSED TREE
Backed out changeset 8d07cb1ef232 (bug 1426494)
Backed out changeset 74a8ebb0f5d3 (bug 1426494)
Backed out changeset 07c4aa18a0b6 (bug 1426494)
2017-12-21 03:09:22 +02:00
Emilio Cobos Álvarez
7fd83d7f37 Bug 1426494: s/StyleScope/DocumentOrShadowRoot. r=smaug
MozReview-Commit-ID: DsFPlQMGAyv
2017-12-21 00:24:28 +01:00
Emilio Cobos Álvarez
2c3cf57d32 Bug 1426494: Share more code among Document / ShadowRoot. r=smaug
MozReview-Commit-ID: C4cJrSFPnIb
2017-12-21 00:24:27 +01:00
Emilio Cobos Álvarez
9ae941aeb7 Bug 1426494: Devirtualize StyleScope::AsNode. r=smaug
MozReview-Commit-ID: 2nDEI5aIu46
2017-12-21 00:24:26 +01:00
Emilio Cobos Álvarez
ba0cde9fc6 Bug 1426536: Remove nsContentUtils::IsContentInsertionPoint. r=smaug
We're not going to need it in Shadow DOM v1.

MozReview-Commit-ID: HOokTPlm2Wt
2017-12-20 22:45:19 +01:00
Emilio Cobos Álvarez
801e2e420d Bug 1425769: Base class for ShadowRoot and Document to manage style state. r=smaug
This also removes some confusing comments around nsIDocument regarding some kind
of "special" stylesheets, which don't seem to exist anymore, and consolidates
StyleSheetList so that we only have one implementation.

I think that fixes a potential leak on the shadow root code (even though the API
is v0 only), given the pointer from the ShadowRootStyleSheetList to the
ShadowRoot wasn't being CCd.

Also, more stuff could be renamed, methods removed, etc, feel free to suggest
more cleanup, I've done mostly the minimal.

Next steps are moving the stylesets there and stop using the proto binding sheet
list / resources.

MozReview-Commit-ID: D9hnDgPQAS5
2017-12-19 11:09:59 +01:00
Dorel Luca
3cdf78a701 Backed out changeset 13faabcf8e96 (bug 1425769) for Linux bustage on build/src/dom/base/nsLineBreaker.h 2017-12-19 11:07:44 +02:00
Emilio Cobos Álvarez
db4b312701 Bug 1425769: Base class for ShadowRoot and Document to manage style state. r=smaug
This also removes some confusing comments around nsIDocument regarding some kind
of "special" stylesheets, which don't seem to exist anymore, and consolidates
StyleSheetList so that we only have one implementation.

I think that fixes a potential leak on the shadow root code (even though the API
is v0 only), given the pointer from the ShadowRootStyleSheetList to the
ShadowRoot wasn't being CCd.

Also, more stuff could be renamed, methods removed, etc, feel free to suggest
more cleanup, I've done mostly the minimal.

Next steps are moving the stylesets there and stop using the proto binding sheet
list / resources.

MozReview-Commit-ID: D9hnDgPQAS5
2017-12-17 22:29:10 +01:00
Olli Pettay
9c377ccc57 Bug 1412775 - Implement Event.composedPath, r=stone 2017-12-18 18:07:36 +02:00
Jessica Jong
19512bcb16 Bug 1409976 - Part 2: Signal slotchange when slot's assigned nodes changes. r=smaug
MozReview-Commit-ID: FBeeDE7UIAu
2017-12-19 23:16:33 +08:00
Jessica Jong
16a309bd7c Bug 1409975 - Part 3: Fix event get-the-parent algorithm for a node. r=smaug 2017-12-04 16:06:40 +08:00
Jessica Jong
af2b401f6a Bug 1409975 - Part 2: Include slots in the flat tree. r=smaug,emilio
We should consider slot as a parent in ChildIterator: if slot's
`assignedNodes` is not empty, use `assignedNodes`, otherwise, use direct
children as fallback content.
Also, GetFlattenedTreeParentNodeInternal should be changed to use
`assignedSlot` instead of `DestInsertionPoints`.
2017-12-04 16:06:37 +08:00
Jessica Jong
18b31b6963 Bug 1409975 - Part 1: Implementation for assignedNodes. r=smaug
Set and unset assignedNodes properly when slot is added/removed and when
slotables are added/removed/modfied. Note that assigedNodes with
flatten: true is calculated on demand.
2017-12-04 16:06:34 +08:00
Olli Pettay
9ca325753f Bug 1418002 - Remove HTMLContentElement, r=jessica 2017-11-30 10:57:15 +02:00
Ben Tian
342131c9a6 Bug 1404842 - P1: Implement Element.attachShadow and Element.slot, r=smaug
MozReview-Commit-ID: KWy8mDqEw4o
2017-10-19 14:44:35 +08:00
Emilio Cobos Álvarez
d24282b6dc Bug 1411754: Rename PresShell::DestroyFramesFor to DestroyFramesForAndRestyle. r=mats
I'm drive-by removing the comment about the frame tree state because I looked
into it, and the answer is: we properly restore it.

The gotcha is that we retain it too much, indeed, we retain it enough that it
can leak. See bug 1397239.

MozReview-Commit-ID: LP6bXkduEZ4
2017-10-25 23:12:25 +02:00
Emilio Cobos Álvarez
7d79f3c823 No bug - Remove FIXME that doesn't really apply. r=comment-only
See the explanation in bug 1404789 comment 53.

DONTBUILD because it's removing a comment.
MozReview-Commit-ID: KJEI3G4Mv96
2017-10-25 23:07:32 +02:00
Emilio Cobos Álvarez
bc1e747667 Bug 1409088: followup: Reword no longer accurate part of the comment in RemoveDestInsertionPoint. r=me
MozReview-Commit-ID: 2gbxreSgkqi
2017-10-20 00:24:44 +02:00
Emilio Cobos Álvarez
41bf05299a Bug 1404789: Be a bit better at detecting distribution changes. r=bz
MozReview-Commit-ID: JqutdNJURZU
2017-10-18 16:03:41 +02:00
Emilio Cobos Álvarez
875d9e0271 Bug 1404789: Simplify ShadowRoot::IsPooledNode. r=bz
MozReview-Commit-ID: EDUwUmca7Qv
2017-10-18 15:02:16 +02:00
Emilio Cobos Álvarez
bc87a17a58 Bug 1404789: When the shadow tree distribution changes, post a restyle + reframe. r=bz
MozReview-Commit-ID: DvRb22UfnJ4
2017-10-18 15:24:53 +02:00
Emilio Cobos Álvarez
a4dcf71ff5 Bug 1404789: Cleanup a bit the ShadowRoot code. r=bz
MozReview-Commit-ID: 8mTrXbbefX2
2017-10-17 18:22:29 +02:00
Emilio Cobos Álvarez
d54a06a8cd Bug 1409088: Fix destination insertion point removal algorithm. r=bz
When an insertion point (a) is added to the document before another insertion
point (b), and that insertion point matches nodes that used to match (b), the
following happens in RedistributeAllNodes:

 * Loop through (a), and clear the existing insertion points on nodes
   distributed into it (none, since it was just inserted).

 * Go through the node pool and add the matched nodes. That makes the node
   (which already had (b) in the insertion point array) have [(b), (a)] as the
   insertion points.

 * Go through (b), and clear the existing insertion points on the nodes
   distributed to it. That used to do IndexOf() + SetLength(), but since (b) was
   the first node by then in the insertion point array, we'll leave the
   insertion point array empty, while (a) would still think that the node is
   distributed to it.

This causes the bloom filter code, which loops through the flattened tree
parents, to not insert any (because the node doesn't know about where it's
inserted).

Also, add a debug phase to verify the flat tree before restyling that would've
caught this more clearly (happy to remove it if you don't think it's worth).

We still can't assert that the insertion point is properly referenced due to the
hacky way mInsertionPoints is cleared in
HTMLContentElement::UpdateFallbackDistribution, but we'll still clear the
insertion points either there, or on the rest of insertion point removal code in
ShadowRoot::DistributeAllNodes.

MozReview-Commit-ID: 9k2gnsAKMEe
2017-10-19 14:45:16 +02:00
Boris Zbarsky
e5497aa079 Bug 1324463. Fix crash when xbl:children is stuck into shadow DOM. r=smaug
MozReview-Commit-ID: C602pPbIfih
2017-10-11 22:19:10 -04:00
Sebastian Hengst
6cf3d0b45b Backed out changeset 76fb9cb1078c (bug 1324463) for failing own crashtest in non-stylo builds. r=backout on a CLOSED TREE 2017-10-12 09:42:53 +02:00
Boris Zbarsky
bee4a665b7 Bug 1324463. Fix crash when xbl:children is stuck into shadow DOM. r=smaug
MozReview-Commit-ID: C602pPbIfih
2017-10-11 22:19:10 -04:00
Nicholas Nethercote
7dbfdaf890 Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP
2017-10-03 09:05:19 +11:00
Catalin Badea
fc6ab5f0ea Bug 651120 - Remove index argument from content removed/appended/inserted notifications. r=peterv 2017-10-03 11:09:08 +01:00
Olli Pettay
98580ecdff Bug 1396584 - Remove support for multiple ShadowRoots, r=mrbkap 2017-09-25 18:09:26 +03:00
Olli Pettay
65a690a8f3 Bug 1396568 - Make DocumentFragment::mHost a strong reference (so that ShadowRoot.host doesn't become null), r=mrbkap 2017-09-06 09:37:17 +01:00
Andrew McCreight
84ee98de3c Bug 1391005 - Eliminate NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED. r=peterv
Replace it with NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION, because it
has been the same for a while.

MozReview-Commit-ID: 5agRGFyUry1
2017-08-29 16:02:48 -07:00
Olli Pettay
c5b6e095f8 Bug 1377993 - Make node slots less memory hungry in common cases. r=peterv
MozReview-Commit-ID: Lhr1UsCrRTs
2017-07-18 00:25:49 +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
8867fcc4c4 Bug 1355787, nsIdentifierMapEntry should let one to use either strings or atoms as keys to avoid slow string assignments when possible. r=nfroyd 2017-04-13 22:12:20 +03:00
Andrew McCreight
209d4ee048 Bug 1323042 - forbid MOZ_COUNT_{CTOR,DTOR} for nsISupports classes; r=froydnj 2016-12-12 09:27:58 -05:00
Nathan Froyd
f2d50c26f4 Backout aba6c73511a2 (bug 1307961) for massive test bustage resulting in a CLOSED TREE; r=alltheorange 2016-12-12 08:45:46 -05:00
Andrew McCreight
2f93d6e48d Bug 1307961 - require consistent bloatview reporting for nsISupports classes; r=froydnj 2016-12-12 07:58:33 -05:00
Boris Zbarsky
8bef5cc522 Bug 1319255 part 2. Stop doing casts to HTMLContentElement* simply based on tag. r=wchen 2016-11-22 22:41:51 -05:00
Boris Zbarsky
2545e5355a Bug 1319255 part 1. Stop doing casts to HTMLShadowElement* simply based on tag. r=wchen 2016-11-22 22:41:51 -05:00
Xidorn Quan
850976ea9c Bug 1292432 part 9 - Change WebIDL interface of CSSStyleSheet to StyleSheet. r=heycam
MozReview-Commit-ID: 5AXhsuvvrwe
2016-10-14 22:25:38 +11:00
Xidorn Quan
7d6c4129ab Bug 1304302 part 10 - Replace all uses of StyleSheetHandle. r=heycam
This commit is generated by the following commands with some minor
manual adjustment:

find . \( -name '*.h' -or -name '*.cpp' \) -not -path './layout/style/StyleSheet*' -exec sed -i -b \
  -e '/^\(#include\|using\)/s/StyleSheetHandle/StyleSheet/g' \
  -e 's/\(mozilla::\)\?StyleSheetHandle::RefPtr/RefPtr<\1StyleSheet>/g' \
  -e 's/StyleSheetHandle()/nullptr/g' \
  -e 's/->AsStyleSheet()//g' \
  -e 's/StyleSheetHandle/StyleSheet*/g' {} +
sed -i -b 's/sheet->AsVoidPtr()/sheet.get()/' layout/style/Loader.cpp
sed -i -b 's/AsHandle()/this/' layout/style/StyleSheet.cpp

MozReview-Commit-ID: 7abdvlKHukd
2016-09-26 22:03:25 +10:00
Cameron McCormack
c0e9a631c2 Bug 1244074 - Part 4: Use StyleSheetHandle instead of concrete style sheet class in most places. r=dholbert 2016-02-24 18:01:12 +11:00
Nicholas Nethercote
a18297615c Bug 1246846 (part 1) - Avoid nsTHashtable::RawRemoveEntry() in dom/. r=bz.
This assumes that it's safe to possibly shrink the tables after the removal,
i.e. there are no surprising subtleties with how these tables are managed.
2016-02-09 13:52:21 +11:00
Boris Zbarsky
7b9ae9826e Bug 1201692. Add a fast path to ExplicitChildIterator::Seek for the common case of seeking an actual DOM child of the parent node. r=wchen 2015-09-08 21:23:55 -04:00
Robert O'Callahan
5bde6d4aaa Bug 1184842. Pass aOldValue to all mutation observers. r=peterv 2015-07-25 18:01:19 +12:00