Commit Graph

274 Commits

Author SHA1 Message Date
Jonathan Kingston
1a7a6c0746 Bug 1469592 - Add support for Element.toggleAttribute. r=bzbarsky,smaug!
MozReview-Commit-ID: KkDLMlQgESs

Differential Revision: https://phabricator.services.mozilla.com/D1710
2018-07-03 19:12:49 +00:00
Olli Pettay
9a87f70a87 Bug 1331334 - Implement :defined pseudo-class for custom elements, r=emilio 2018-06-28 14:55:45 +03:00
Olli Pettay
f8aa01762a 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
b57e2f6130 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
c3707b2e13 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
70a22b2878 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Olli Pettay
2e64f41c9f Bug 1428246 - The attributeChangedCallback is fired twice for the *first* style attribute change, r=peterv
The idea with this patch is that style code will first call
InlineStyleDeclarationWillChange before style declaration has changed, and SetInlineStyleDeclaration once it has changed.

In order to be able to report old attribute value, InlineStyleDeclarationWillChange reads the value and also calls AttributeWillChange (so that DOMMutationObserser can grab the old value). Later SetInlineStyleDeclaration passes the old value to
SetAttrAndNotify so that mutation events and attributeChanged callbacks are handled correctly.

Because of performance, declaration can't be cloned for reading the old value. And that is why the recently-added callback is used to detect when declaration is about to change (bug 1466963 and followup bug 1468665).

To keep the expected existing behavior, even if declaration isn't changed, but just a new declaration was created (since there wasn't any), we need to still run all these
willchange/set calls. That is when the code has 'if (created)' checks.

Since there are several declaration implementation and only nsDOMCSSAttributeDeclaration needs the about-to-change callback, GetPropertyChangeClosure is the one to initialize the callback closure, and the struct which is then passes as data to the closure.

Apparently we lost mutation event testing on style attribute when the pref was added, so test_style_attr_listener.html is modified to test both pref values.
2018-06-26 12:54:00 +03:00
Timothy Guan-tin Chien
4ca98dc20c Bug 1437956 - Pretty print XML with Shadow DOM r=smaug
This patch puts the transformed pretty print DOM into a Shadow DOM.
The stylesheet is loaded with an @import in a <style> block, so the
monospace stylesheet had to be left out.

The XBL binding is kept, pending removal when Shadow DOM ships.
It's still needed to handle the case when Shadow DOM is pref'd off too.

MozReview-Commit-ID: DQRsXB8tumF
2018-06-01 17:45:11 +08:00
Andreea Pavel
b2c87ce7f7 Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-05-31 13:05:59 +03:00
Emilio Cobos Álvarez
d1a8c048f5 Bug 1465478: Introduce Element::FromNode. r=smaug
And use it in a couple places I noticed.

MozReview-Commit-ID: 8baSMrbdEbF
2018-05-31 02:46:10 +02:00
Johann Hofmann
637ff0f72b Bug 1444394 - Remove Element::UnsafeSetInnerHTML. r=bz,kmag
The last remaining user is already turned off and being removed
in bug 1444395 so that we can finally remove this unsafe code and
sleep a little better knowing that XSS through markup injections
will be impossible in chrome contexts.

MozReview-Commit-ID: KcZq8fRPiD4
2018-05-28 22:55:52 +02:00
rahul0379
26f567bc2b Bug 1458580 - Rename GetSMILStyleOverride since it can't return null. r=emilio
MozReview-Commit-ID: JzV5hQBvlpJ
2018-05-25 12:12:37 +02:00
Boris Zbarsky
29bdf0fbd6 Bug 1462737. Make AsElement() not compile when called on Element or some subclass. r=mccr8
It's just noise if we already have an Element.
2018-05-18 23:37:56 -04:00
Chris Peterson
5d6b16ea3b Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L
2018-04-28 12:50:58 -07:00
Boris Zbarsky
599ef690cf Bug 1455674 part 16. Remove most use of nsIDOMElement in dom. r=qdot 2018-04-26 23:37:34 -04:00
Emilio Cobos Álvarez
e4e79e5152 Bug 1457026: Teach nsDocumentEncoder about display: contents. r=mats
MozReview-Commit-ID: 5F3qurRHMNM
2018-04-26 18:06:37 +02:00
Emilio Cobos Álvarez
7b0539b4a0 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
Emilio Cobos Álvarez
9007e9a305 Bug 1453789: Remove Element.createShadowRoot. r=smaug
MozReview-Commit-ID: Hgxbp1Icgvh
2018-04-13 20:51:55 +02:00
Emilio Cobos Álvarez
e2d66e585e Bug 1452987: Simplify ImageValue. r=heycam
MozReview-Commit-ID: 5LRaaEPSSdY
2018-04-10 16:54:57 +02:00
Ciure Andrei
ea89df62df Backed out 8 changesets (bug 1451169) on request from njn a=backout
Backed out changeset b92f856e15a8 (bug 1451169)
Backed out changeset 348e825756fa (bug 1451169)
Backed out changeset 624d82428726 (bug 1451169)
Backed out changeset 4d51610ca08e (bug 1451169)
Backed out changeset bb76a9589717 (bug 1451169)
Backed out changeset c145fbd03947 (bug 1451169)
Backed out changeset 6d36289e0f54 (bug 1451169)
Backed out changeset 914fb7cd9fc3 (bug 1451169)
2018-04-11 11:22:05 +03:00
Boris Zbarsky
5b75c1416d Bug 1449631 part 8. Remove nsIDOMEventTarget::GetEventTargetParent. r=smaug
MozReview-Commit-ID: 5wQ2LYrjUxf
2018-04-05 13:42:41 -04:00
Nicholas Nethercote
7ccd4b9401 Bug 1451169 - Use nsStaticAtom* instead of nsStaticAtom** in Element.h. r=baku
And then fix up everything else that needs to change as well.

MozReview-Commit-ID: GDMfERqdQAc
2018-04-03 13:21:06 +10:00
Robert Longson
a7c085a620 Bug 1450643 part 1 - add additional overloads to Element for GetAttr/HasAttr for kNameSpaceID_None to complement the existing SetAttr method that does not take a namespace. r=mystor 2018-04-04 04:58:49 +01:00
Boris Zbarsky
cfeb9c06b9 Bug 1449404 part 4. Get rid of a few virtual nsIContent methods. r=mccr8
The HasTextForTranslation implementation was just moved, with the nodetype
check up front dropped because that's enforced statically now.
2018-03-28 18:01:47 -04:00
Boris Zbarsky
868eaca19e Bug 1449019. Actually propagate out exceptions from the innerHTML getter. r=smaug
I moved the IgnoreErrors decl so it would come after the OOMReporter decl and I
could add the new conversion operator.

MozReview-Commit-ID: B1S6DXmZfvE
2018-03-26 16:41:43 -04:00
Emilio Cobos Álvarez
c48b1f646b Bug 1448690: Remove IsStyledByServo. r=xidorn
MozReview-Commit-ID: I3MDbo2Yu7d
2018-03-26 09:39:26 +02:00
Emilio Cobos Álvarez
68ee99d4c8 Bug 1448688: Remove RestyleTracker, ComputedStyle::AsServo, old style system element bits. r=xidorn
MozReview-Commit-ID: ALiOngGqozN
2018-03-26 09:38:07 +02:00
Emilio Cobos Álvarez
b1a35fbef7 Bug 1447358: Unifdef the old style system code. r=jwatt
Summary:
This has been automatically generated using:

  http://dotat.at/prog/unifdef/

And:

find $OBJDIR -type f -name '*.h' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

find $OBJDIR -type f -name '*.cpp' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

MozReview-Commit-ID: I4NdKqbMXzJ

Reviewers: jwatt

Bug #: 1447358

Differential Revision: https://phabricator.services.mozilla.com/D779
2018-03-21 10:20:34 +01:00
Emilio Cobos Álvarez
23e91e805a Bug 1425759: Make Shadow DOM not use XBL anymore. r=smaug,xidorn
More improvements to come. In particular, this still iterates through Shadow DOM
in each_xbl_cascade_data, but that should be changed later. That allows to
cleanup a bunch of stuff and finally fix Shadow DOM cascade order.

We still rely on the binding parent to be setup properly in the shadow tree, but
that requirement can go away later (we can walk the containing shadow chain
instead).

This mostly focuses on removing the XBL binding from the Shadow host.

It'd be nice to do EnumerateShadowRoots faster. I think that should also be a
followup, if needed.

MozReview-Commit-ID: Jf2iGvLC5de
2018-02-27 12:39:35 +01:00
Adrian Wielgosik
a9ff753f99 Bug 659610 - Remove nsGenericHTMLElement::SetAttrHelper and related helper macros. r=qdot
The only remaining instance of NS_IMPL_BOOL_ATTR macro was expanded by hand.

MozReview-Commit-ID: DQ8fGGNTl3y
2018-02-24 20:20:23 +01:00
Dorel Luca
ee8e21ebda Backed out changeset 38577c007450 (bug 1424371) for Marionett test failure on testing/marionette/harness/marionette_harness/tests/unit/test_window_maximize.py. CLOSED TREE 2018-02-19 22:15:23 +02:00
Milan Sreckovic
2aa2530441 Bug 1424371: Use BaseRect access methods instead of member variables in dom/ r=qdot
MozReview-Commit-ID: HXWhggOMIEK
2018-02-19 12:56:10 -05:00
Chris Peterson
767d8b1589 Bug 1436263 - Part 3: Remove virtual from final virtual function declarations. r=froydnj
MozReview-Commit-ID: 8pjYjEvQF42
2018-02-08 21:22:43 -08:00
Chris Peterson
6758bf6a84 Bug 1436263 - Part 1: Replace final override virtual function specifiers with just final. r=froydnj
MozReview-Commit-ID: DE5HkIhsZ6D
2018-02-05 22:46:57 -08:00
Boris Zbarsky
d220ac2a77 Bug 1436508 part 13. Remove nsIDOMMutationEvent constants. r=masayuki
MozReview-Commit-ID: Anl5QJZknJL
2018-02-09 11:17:10 -05:00
Cameron McCormack
02c617875f Bug 1430014 - Part 4: #ifdef out unnecessary code when the old style system is not built. r=xidorn
MozReview-Commit-ID: 1FZ9VzjcPzN
2018-02-01 15:04:04 +11:00
Boris Zbarsky
dbe9a6dd8c Bug 1428610 part 2. Change Element::GetSMILOverrideStyle to return nsDOMCSSAttributeDeclaration. r=emilio
MozReview-Commit-ID: 9R6ywUEKagK
2018-01-30 14:48:26 -05:00
Boris Zbarsky
6c455eca96 Bug 1432944 part 13. Remove the NS_FORWARD_NSIDOMELEMENT_TO_GENERIC macro. r=mccr8
MozReview-Commit-ID: 8A1VcWArVcP
2018-01-29 23:29:11 -05:00
Boris Zbarsky
7242354a36 Bug 1432944 part 11. Remove nsIDOMElement::GetAttribute. r=mccr8
MozReview-Commit-ID: 2f1vFvRdCPG
2018-01-29 23:28:00 -05:00
Boris Zbarsky
56ffc5de50 Bug 1432944 part 10. Remove nsIDOMElement::SetAttribute. r=mccr8
MozReview-Commit-ID: 6eIdX8iA5Rg
2018-01-29 23:28:00 -05:00
Boris Zbarsky
849c6cbcb6 Bug 1432944 part 9. Remove nsIDOMElement::HasAttribute. r=mccr8
MozReview-Commit-ID: KDeeVkeRmQr
2018-01-29 23:27:59 -05:00
Boris Zbarsky
895f4d4041 Bug 1432944 part 7. Remove nsIDOMElement's tagName attribute. r=mccr8
MozReview-Commit-ID: 8rmd120L2BK
2018-01-29 23:27:59 -05:00
Boris Zbarsky
a04420f06a Bug 1432186 part 19. Remove the nsIDOMNode::*_NODE constants. r=mccr8
MozReview-Commit-ID: KvKjeKIOB9K
2018-01-29 23:10:53 -05:00
Kris Maglione
9e04067677 Bug 1432966: Sanitize HTML fragments created for chrome-privileged documents. r=bz f=gijs
This is a short-term solution to our inability to apply CSP to
chrome-privileged documents.

Ideally, we should be preventing all inline script execution in
chrome-privileged documents, since the reprecussions of XSS in chrome
documents are much worse than in content documents. Unfortunately, that's not
possible in the near term because a) we don't support CSP in system principal
documents at all, and b) we rely heavily on inline JS in our static XUL.

This stop-gap solution at least prevents some of the most common vectors of
XSS attack, by automatically sanitizing any HTML fragment created for a
chrome-privileged document.

MozReview-Commit-ID: 5w17celRFr
2018-01-24 14:56:48 -08:00
Boris Zbarsky
2d9c397e9f Bug 1431964 part 8. Remove nsIDOMMozNamedAttrMap. r=mccr8
MozReview-Commit-ID: C7z0hcjC0Tg
2018-01-20 20:57:26 -05:00
Boris Zbarsky
01a5085895 Bug 1431964 part 1. Remove the XPCOM versions of GetAttributeNode(NS). r=mccr8
MozReview-Commit-ID: 5VTrCvHmMWi
2018-01-20 18:12:20 -05:00
Boris Zbarsky
09ee1dc936 Bug 1423492 part 4. Stop overring UnsetAttr in SVGElement. r=bytesized
There are now no more overrides of UnsetAttr, so it can stop being virtual.

MozReview-Commit-ID: 4QzAKCkRfgs
2018-01-03 21:03:50 -05:00
Boris Zbarsky
73cb58e0a0 Bug 1423490 part 2. Stop overriding SetAttr in SVGStyleElement. r=bytesized
This aligns the behavior with HTMLStyleElement.

There are no more overrides, so SetAttr can become non-virtual.

MozReview-Commit-ID: 9PFrHg7x0nY
2018-01-03 14:21:23 -05:00
Emilio Cobos Álvarez
ebc2e23e06 Bug 1427511: Make GetFlattenedTreeParent more straight-forward. r=smaug
Now that accessing nsIContent slots is not a blob of virtual function calls, we
should be able to unify logic here, and speed up the not-so-rare case for
chrome, while keeping the usual case fast.

MozReview-Commit-ID: 87iY5Cbhx4T
2018-01-02 18:00:25 +01:00
Emilio Cobos Álvarez
60d8807d9e Bug 1427001: Move SetXBLBinding and SetShadowRoot to Element. r=smaug
MozReview-Commit-ID: 6FL1HR2Isa
2017-12-31 13:45:58 +01:00