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

435 Коммитов

Автор SHA1 Сообщение Дата
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
Andi-Bogdan Postelnicu 09ec36a025 Bug 1453795 - SVG - Initialize member fields in classes/ structures. r=jwatt
--HG--
extra : rebase_source : 244f0513af145c53fbc0177d2652cf68e20b64af
2018-06-16 13:54:44 +03:00
Dan Glastonbury 367e64f0d4 Bug 1465307 - P4: Enable disabled dom/smil lighting_color tests. r=xidorn
Enable tests disabled in Bug 1457353.

MozReview-Commit-ID: Ctx9bgt9tlK

--HG--
extra : rebase_source : c319f91f4db7c4f0f5146c00760b015802be9e32
2018-06-05 14:36:20 +10:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Nazım Can Altınova 361380987c Bug 1464496 - Part 1: Merge ServoDeclarationBlock and DeclarationBlock r=emilio
MozReview-Commit-ID: By9fV70Oq0K

--HG--
extra : rebase_source : 837afe9c33b21d7db41ff19d3aaf6cf3e9eedbdf
2018-05-30 18:15:25 +02:00
Dan Glastonbury 5fe6ffd64b Bug 1457353 - P3: Disable failing SMIL tests. r=hiro,xidorn
Disable failing SMIL tests for lighting-color with currentcolor until
StyleComplexColor is extended to support addition.

MozReview-Commit-ID: 6tbDYPFI9ey

--HG--
extra : rebase_source : a8f1e363bd37c40ae2e48ef682a005aafaa27fe5
2018-05-30 14:12:08 +10:00
Emilio Cobos Álvarez aa934dea20 Bug 1465107: Remove isStyledByServo. r=xidorn
MozReview-Commit-ID: 8HWBH9kWyxV
2018-05-30 10:04:18 +02:00
Emilio Cobos Álvarez dd5f25c2f6 Bug 1465107: Cleanup remaining mochitest / reftest / crashtests stylo expectations. r=xidorn
MozReview-Commit-ID: 1IeURcnoESX
2018-05-30 10:03:50 +02:00
rahul0379 a074d3d299 Bug 1458580 - Rename GetSMILStyleOverride since it can't return null. r=emilio
MozReview-Commit-ID: JzV5hQBvlpJ
2018-05-25 12:12:37 +02:00
Chris Peterson 71422dcaa9 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

--HG--
extra : source : c14655ab3df2c9b1465dd8102b9d25683359a37b
2018-04-28 12:50:58 -07:00
Emilio Cobos Álvarez 27ca8b58c8 Bug 1458814: Remove code that is no longer called. r=hiro
Au revoir!

MozReview-Commit-ID: DjqszUSIzXs
2018-05-05 16:31:20 +02:00
Emilio Cobos Álvarez ceca84ff64 Bug 1458814: Remove a bit of trivially dead code. r=hiro
MozReview-Commit-ID: GG41v4TejBU
2018-05-05 16:31:19 +02:00
Emilio Cobos Álvarez d7f92df0f2 Bug 1458814: Make SMIL values not roundtrip through strings. r=hiro
MozReview-Commit-ID: DpbFSutIv3t
2018-05-05 16:31:17 +02:00
Emilio Cobos Álvarez e7d5158b29 Bug 1458458: Move setting SMIL override values into nsDOMCSSAttrDeclaration. r=hiro
MozReview-Commit-ID: KkXGtl6vz2L
2018-05-02 18:09:05 +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
Emilio Cobos Álvarez 46c5356b75 Bug 1454883: Fix animation tests to account for font-stretch animating as percentage. r=hiro
MozReview-Commit-ID: KPXUJSI930X
2018-04-23 18:22:14 +02:00
Boris Zbarsky 4643230674 Bug 1455055 part 6. Clean up HandleEvent implementations in dom. r=masayuki
MozReview-Commit-ID: Ht7HQEhVS8E
2018-04-20 00:49:30 -04:00
Boris Zbarsky 2b6097ae6d Bug 1455055 part 1. Convert nsIDOMEventListener to taking an Event, not an nsIDOMEvent. r=masayuki
This does no cleanup other than what's needed to compile.  Cleanup coming up in
later patches.

MozReview-Commit-ID: 3sOnkj71n09
2018-04-20 00:49:29 -04:00
Emilio Cobos Álvarez 7b41eaf443 Bug 1454596: Update font-weight property and descriptor to css-fonts-4. r=xidorn
Need to change the tests still, but that should be trivial.

MozReview-Commit-ID: 27aS2UrgXjs
2018-04-19 12:49:37 +02:00
Nathan Froyd fcd4d69f20 Bug 1454040 - part 2 - remove nsAutoPtr entirely from nsSMILTimedElement; r=dholbert
This patch handles the other use of nsAutoPtr in nsSMILTimedElement: the
storing of nsSMILTimeValueSpecs.
2018-04-16 11:15:56 -04:00
Nathan Froyd d032671b97 Bug 1454040 - part 1 - make time intervals in nsSMILTimedElement UniquePtrs; r=dholbert
UniquePtr is nicer than nsAutoPtr.
2018-04-16 11:15:56 -04:00
Sebastian Hengst 0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tristan Bourvon a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Emilio Cobos Álvarez e128bf7b1a Bug 1447827: Remove ServoRestyleManager. r=xidorn
MozReview-Commit-ID: CFafQsb4rQn
2018-04-07 15:50:06 +02:00
Emilio Cobos Álvarez b508e66696 Bug 1447827: Move members from ServoRestyleManager to RestyleManager. r=xidorn
This leaves ServoRestyleManager as just a typedef.

MozReview-Commit-ID: 5wfTkiDc2Nr
2018-04-07 15:40:00 +02:00
Robert Longson 307a272379 Bug 1450643 part 2 - remove SVGAnimationElement wrappers around GetAttr/HasAttr in favour of directly using the Element versions. r=dholbert 2018-04-04 08:16:56 +01:00
Xidorn Quan 4cf9aed667 Bug 1449400 part 5 - Remove StyleSetHandle. r=emilio
This patch basically does:
* remove StyleSetHandle and its corresponding files
* revisit #includes of related header files and change correspondingly
* change nsIPresShell::mStyleSet to be UniquePtr<ServoStyleSet>
* change the creating path of ServoStyleSet to pass UniquePtr
* change other mentions of StyleSetHandle to ServoStyleSet*
* remove AsServo() calls on ServoStyleSet

Some unfortunate bits:
* some methods of (Servo)StyleSet only accepts ServoStyleSheet while
  many places call into the methods with StyleSheet, so there are many
  ->AsServo() added to sheets

MozReview-Commit-ID: K4zYnuhOurA

--HG--
extra : rebase_source : 459e8efeb171adad089d94272e143e8c244bd279
extra : source : 65ba2f174fcf7dba4e59c00ee8908b1bd0820a48
2018-03-29 22:15:46 +11:00
Xidorn Quan efc0cdde02 Bug 1447828 part 8 - Remove remaining uses of StyleBackendType as well as the type itself. r=emilio
MozReview-Commit-ID: 6sh4eKvDpRF

--HG--
extra : rebase_source : 7d83f2b2d4e2739333016ed82754bf3a4a700de4
extra : source : 147ca562a24652c3f30add793213db70aff65e9e
2018-03-29 02:34:34 +11:00
Jonathan Watt 68e78b291f Bug 1449321 - Remove the IsServo and IsGecko methods from the style system code. r=emilio
--HG--
extra : source : 763277b299e42d8ee7eafede027ee690b66a7a2a
2018-03-23 16:01:34 +00:00
Jonathan Watt 82ebebe276 Bug 1448714 - Fix up comments referring to 'style context' after the rename of nsStyleContext. r=emilio 2018-03-23 13:49:21 +00:00
Emilio Cobos Álvarez 8fcda0e92d Bug 1448690: Remove IsStyledByServo. r=xidorn
MozReview-Commit-ID: I3MDbo2Yu7d
2018-03-26 09:39:26 +02:00
Emilio Cobos Álvarez 2265ef0801 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
Jonathan Watt 384c345f21 Bug 1448294 - Clean up naming of 'styleContext' variables after the big nsStyleContext rename. r=emilio
Reviewers: emilio

Bug #: 1448294

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

MozReview-Commit-ID: KJq2i9nrg7y
2018-03-25 20:49:58 +02:00
Narcis Beleuzu 47581f78e2 Backed out 2 changesets (bug 1448294, bug 1448337) for wpt and reftest failures on /mathml
Backed out changeset 180051cfe357 (bug 1448294)
Backed out changeset c188176f3289 (bug 1448337)
2018-03-25 21:31:08 +03:00
Emilio Cobos Álvarez dff4e17b14 Bug 1448413: Do a bit of misc cleanup. r=jwatt
Summary: Mostly removing unneeded AsServo() and such.

Reviewers: jwatt

Bug #: 1448413

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

MozReview-Commit-ID: 8muHF7uMA53
2018-03-25 18:14:36 +02:00
Jonathan Watt 21bff4e120 Summary: Bug 1448294 - Clean up naming of 'styleContext' variables after the big nsStyleContext rename. r=emilio
Reviewers: emilio

Bug #: 1448294

Differential Revision: https://phabricator.services.mozilla.com/D796
2018-03-22 13:49:21 +00:00
Emilio Cobos Álvarez e341b20ec4 Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt on a CLOSED TREE
MozReview-Commit-ID: JPopq0LudD
2018-03-22 20:06:24 +01:00
Emilio Cobos Álvarez 5dd797f154 Back out changeset b683bb3f22a1 (Bug 1447483) for not landing with all the files. r=me on a CLOSED TREE
This reverts commit 1808914126bb9f9e4a82d2c3d7ac961885fe7d62.

MozReview-Commit-ID: 5skESBseEvo
2018-03-22 20:05:22 +01:00
Emilio Cobos Álvarez ca5ac79cca Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt
MozReview-Commit-ID: JPopq0LudD
2018-03-22 19:48:42 +01:00
Emilio Cobos Álvarez f7522ae728 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
Robert Longson 202cc35695 Bug 1446584 - Make SVG use the same definition of whitespace as HTML/CSS r=jwatt 2018-03-18 07:14:32 +00:00
Emilio Cobos Álvarez d5f66d9925 Bug 1446668: Remove setUserData crashtests. r=smaug
Reviewers: smaug

Bug #: 1446668

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

MozReview-Commit-ID: wyAvCCWbrS
2018-03-18 01:53:13 +01:00
Emilio Cobos Álvarez 7dffe29d8f Bug 1432490: Make nsComputedDOMStyle::GetStyleContext / GetStyleContextNoFlush not take a presShell. r=bz
Everyone calls them with the shell of the current composed document, and this
allows the multi-presShell stuff to just be in UpdateCurrentStyleSources /
DoGetStyleContextNoFlush.

The only reason we need to use OwnerDoc()->GetShell() instead of the composed
doc in GetStyleContext / GetStyleContextNoFlush is Element::GetBindingURL, which
does expect to get the binding URL for stuff outside of the composed doc (and
changing that gave me a useless browser).

That's technically a behavior change on the cases that used to pass nullptr, but
I think all callers are fine with that. I could also just add a special function
for that particular case, it may be worth it.

MozReview-Commit-ID: 2XlnkgdgDCK
2018-02-25 02:23:59 +01:00
Hiroyuki Ikezoe 1b0cba9367 Bug 1417354 - Introduce nsIDocument::GetPresContext(). r=smaug
It would be convenient to get nsPresContext from nsIDocument.

MozReview-Commit-ID: Ei6V3UE8XGr

--HG--
extra : rebase_source : 8d2a917eb62cf341e4e1810451fd01c01dbc3bad
2018-02-21 07:00:10 +09:00
Tom Ritter aa82f54ab6 Bug 1435296 Address test failures caused by bumping timer precision to 2 ms r=baku
There are a few different reasons why tests needed updating (not an exhaustive list):

- Tests assume that successive operations take place at different times.
- Tests assume that an operation took a minimum amount of time.
- Tests hardcodes a specific delay.

In most cases we hardcode the preference off. In some cases this is the best approach,
in others, we would like to improve. The bug for tracking those improvements is Bug 1429648

An improvement that is present in some tests is to hardcode a specific precision reduction
that is acceptable based on the confides of the test. (Obviously this needs to be a fix for
the test framework and not a requirement on the feature being tested.)

In a few places, the test itself can be fixed, for example to no longer require the end
time of an operation to be strictly greater than the start time, and allows it to be equal
to it.

MozReview-Commit-ID: J59c7xQtZZJ

--HG--
extra : rebase_source : df8a03e76eaf9cdc9524dbb3eb9035af237e534b
2018-02-12 11:39:41 -06:00
Boris Zbarsky 034e47c66b Bug 1436508 part 12. Remove nsIDOMKeyEvent. r=masayuki
MozReview-Commit-ID: 8giqG5iHiIf
2018-02-09 11:17:10 -05:00
Cameron McCormack 70af884bbd Bug 1435666 - Part 2: Remove nsIDOMTimeEvent. r=bz
MozReview-Commit-ID: F2fYWhUKzyp

--HG--
extra : rebase_source : 4dc8397fe050262463d37a9829130c0af707f4ba
2018-02-05 10:31:43 +08:00
Robert Longson 7be5dd985e Bug 1435372 - pass nsSMILMilestone into the constructor of MilestoneEntry by const reference to avoid an unnecessary object copy r=birtles 2018-02-03 10:15:20 +00:00
Cameron McCormack 2cea1ba7c1 Bug 1430014 - Part 6: #ifdef out a bit more animation-related code. r=hiro
MozReview-Commit-ID: B9TaVJFak26

--HG--
extra : source : 820eed2682b6a6cda892d091ee037ff1eeacd69f
2018-02-01 15:04:04 +11:00
Cameron McCormack cc7db5c40c Bug 1430014 - Part 4: #ifdef out unnecessary code when the old style system is not built. r=xidorn
MozReview-Commit-ID: 1FZ9VzjcPzN

--HG--
extra : source : de22d220635f8c059834b76f769d5215ab1a8b5b
2018-02-01 15:04:04 +11:00
Boris Zbarsky 7c83759ad4 Bug 1428610 part 2. Change Element::GetSMILOverrideStyle to return nsDOMCSSAttributeDeclaration. r=emilio
MozReview-Commit-ID: 9R6ywUEKagK
2018-01-30 14:48:26 -05:00
Brian Birtles f5dff74bc2 Bug 1423098 - Drop support for SMIL accessKey; r=dholbert
MozReview-Commit-ID: Evrl4St3QSD

--HG--
extra : rebase_source : b5fc6574efe9e48f70c2d3affa0ed782e1909031
2017-12-14 09:58:32 -06:00
Brian Birtles 0279523bb7 Bug 1423098 - Ignore invalid time value specifications rather than failing; r=dholbert
This matches the behavior of Chrome at least, and should reduce compatibility
risk when we remove accessKey support in the next patch in this series by
ensuring that specifications such as begin="3s; accessKey(s)" will continue to
run the animation.

MozReview-Commit-ID: E6sh48yrYSm

--HG--
extra : rebase_source : 1ad85b55acfd226c660386ff579811ed2e70f260
2017-12-14 09:58:24 -06:00
Boris Chiou 570057e075 Bug 1408303 - Part 3: Move several Servo parsers into ServoCSSParser helper class. r=heycam
We have ServoCSSParser class, and I think it's better to move those
Servo FFI into this class to avoid including ServoBindings.h everywhere.

MozReview-Commit-ID: 6orXtddp9ZU

--HG--
extra : rebase_source : 6da4158c4fec606aaee49fddee3192f94d6c85a3
2017-12-01 17:35:47 +08:00
Kris Maglione bd57fba62b Bug 1415352: Part 2 - Exempt inline CSS from extension principals from CSP. r=bz
MozReview-Commit-ID: D0dofgOaLXZ

--HG--
extra : rebase_source : ee649c83191e64f5f0370e61a54b506f4767ac71
2017-11-05 12:19:34 -08:00
Nika Layzell c223b9ff2d Bug 1414974 - Part 6: Change WebIDL bindings to refer to nsGlobalWindowInner rather than nsGlobalWindow, r=bz
MozReview-Commit-ID: KbCpDFoWyTe
2017-11-09 10:44:49 -05:00
Brian Birtles c0aa9c7ed3 Bug 1411963 - Drop assertion about GetBaseValue not returning null in nsSMILCompositor::ComposeAttribute; r=dholbert
This assertion was originally added in bug 1353208 because in that bug we
changed the type of nsSMILCompositor::mCachedBaseValue from
nsAutoPtr<nsSMILValue> to just nsSMILValue. When using nsAutoPtr,
mCachedBaseValue had two null states: one where the pointer is null, and one
where the pointed-to nsSMILValue is null. Coalescing these two states simplifies
the code but there is one case where the difference is significant as described
in the commit message for that changeset (mozilla-central changeset
ad7060dae117):

  "There's a subtle difference in behavior with regards to the first sample.
  Previously we would compare the (initially) null mCachedBaseValue pointer with
  the passed-in nsSMILValue and set mForceCompositing to true. With this patch,
  however, we will only set mForceCompositing to true if the passed-in
  mCachedBaseValue is not null."

That is, if the base value we get back is a null nsSMILValue, previously we
would set mForceCompositing to true unconditionally, but with the changes in bug
1353208 we would only set that to true if the passed-in nsSMILValue was not
null.

We believed that would never matter since the passed-in nsSMILValue would never
be null if we called GetBaseValue. Quoting from that same commit message:

  "... if we do call GetBaseValue the result should not be a null nsSMILValue
  (except in some OOM cases where we don't really care if we miss a sample).
  This patch adds an assertion to check that GetBaseValue does, in fact, return
  a non-null value. (I checked the code and this appears to be the case. Even in
  error cases we typically return an empty nsSMILValue of a non-null type. For
  example, the early return in nsSMILCSSProperty::GetBaseValue() does this.)"

We added an assertion to validate that assumption but the crashtest included in
this patch demonstrates a case where it does not hold (specifically, when
nsStyleUtil::CSPAllowsInlineStyle returns false, nsCSSProperty::GetBaseValue
will return a null nsSMILValue).

That would seem to suggest that there is at least one case where we might fail
to set mForceIsCompositing to true and hence fail to update style on this first
sample (and presumably thereonwards too since future comparisons of
mCachedBaseValue will compare equal). However, for the case of an initial sample
mForceCompositing should already be set to true since set we update
mForceCompositing in nsSMILCompositor::GetFirstFuncToAffectSandwich() and will
make it true if *anything* in the animation function has changed and at this
point, the initial sample, *everything* will have changed. Hence, I believe
dropping this assertion is acceptable.

I have confirmed that in the crashtest in this patch, during the first sample
mForceCompositing is set to true.

I would create a reftest to test the behavior on the first sample but, at least
for the specific case where inline style is disabled due to CSP, not updating
style *is* the expected behavior so there will be no difference in behavior
regardless of whether or not the mForceCompositing flag is set.



MozReview-Commit-ID: Li0pZEH2PNl

--HG--
extra : rebase_source : a1c12a019b8481600afa4295447dc1e6fb281b22
2017-10-31 16:22:04 +09:00
Brian Birtles ebedef2a25 Bug 849593 - Skip samples of active SMIL timed elements when the sample time precedes the current interval; r=dholbert
In some circumstances it is possible to sample a timed element in the active
state with a time that precedes is current interval.

One possible sequence of steps leading to this situation is as follows:

1. A timed element (e.g. <set>, <animate>) with a non-zero begin time is the
   child of <svg> element A (its "time container") but has yet to be sampled.

2. In order to resolve its initial interval, the timed element registers a
   startup milestone with its time container at time 0.

3. However, before the sample is performed where the timed element's initial
   current interval is resolved, <svg> element A is detached from the document
   tree.

4. The timed element is then attached to a different <svg> element B that has
   a current time greater than the begin time of the timed element and less than
   that of <svg> element A.

5. Since the timed element is still in its startup state it registers its
   startup milestone again, this time with its new time container, i.e. <svg>
   element B.

6. A tick occurs or the document has its style flushed such that a sample is
   performed.

   This includes running the milestone sample which causes the timed element to
   resolve its initial current interval. Furthermore the subsequent regular
   sample of the timed element causes it to transition into its active state
   because the current time of <svg> element B is greater than the begin time of
   the timed element.

7. <svg> element A is re-attached to the document.

8. When we go to run the next sample, we iterate through all time containers
   associated with the document's animation controller which includes both <svg>
   element A, and <svg> element B.

9. <svg> element A renders up its 0 milestone from step (2) since it has yet to
   run it. It converts this to parent time, i.e. the time space of the animation
   controller, which will be zero or less depending on the current time of <svg>
   element A when it was re-attached.

10. Since the milestone from <svg> element A will be the earliest milestone
    time, it will be used as the next milestone sample time.

11. The timed element is then sampled using this time, but first it is converted
    to a time in the time space of the timed element's time container, which is
    now <svg> element B.

    As a result of this conversion, the sample time may end up being *before*
    the beginning of the timed element's current interval. Since timed elements
    never expect the time to go backwards an assertion fails when it detects
    that it is active, but is being sampled before its current interval.

For this particular case, ignoring the "early" sample seems to be the most
appropriate action.

More generally, however, we can anticipate other cases similar to this where
milestones are registered that cause the sample time to temporarily go
backwards. A quick audit of nsSMILTimedElement::DoSampleAt suggests that, with
the code changes from this patch, that is probably ok.

As an alternative we could, perhaps, try to drop and re-create all milestones
when time containers are re-attached to the document tree but that would add
more complexity and would not necessarily cover other similar cases of this
situation.

I have verified that the crashtest included in this changeset fails without the
code changes also in this changeset.

MozReview-Commit-ID: KKGYRayNkpo

--HG--
extra : rebase_source : 832d4b357a2a2fe07abf9eab3a6046599aff3ef5
2017-10-24 13:06:04 +09:00
Robert Longson 71d7fc5d25 Bug 1322849 - Add a range check when the duration is multiplied by the repeat count. r=birtles 2017-10-17 22:19:54 +01:00
Nathan Froyd c322875b57 Bug 1406441 - provide nsSMILCompositor with a move constructor, rather than a copy constructor; r=dholbert
Using a copy constructor here means that reallocating hashtables
containing nsSMILCompositor does a bunch of unnecessary work; we can use
a move constructor to avoid a lot of that unnecessary work.
2017-10-09 10:39:38 -04:00
Nathan Froyd 3e4ac652e8 Bug 1406440 - don't inline nsSMILNullType::Singleton(); r=dholbert
Defining Singleton() in the declaration of nsSMILNullType implicitly
sticks an "inline" on the function, which is not what we want: inlining
it spreads around a lot of static initialization code.  Providing an
out-of-line definition is much better in terms of code size.
2017-10-09 10:39:38 -04:00
Nicholas Nethercote d225f7151b 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

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Sebastian Hengst fd1c572923 merge mozilla-central to mozilla-inbound. r=merge a=merge on a CLOSED TREE 2017-10-05 11:47:25 +02:00
Jonathan Watt 3251040469 Bug 1403500, part 5 - Document and do some renaming for nsSMILTimeValueSpec's TimeReferenceElement. r=longsonr
MozReview-Commit-ID: AWIAeHy4DTI
2017-09-13 08:22:55 +01:00
Brian Birtles e0a0a47d5c Bug 1402547 - Add crashtest for multiple empty SMIL values; r=hiro
I have verified that this fails without the code changes from the previous patch
in this series, and passes with them.

MozReview-Commit-ID: 1respvNVQaC

--HG--
extra : rebase_source : 82007792f23465edb1d286b721edeea850e2aaa3
2017-10-02 14:04:24 +09:00
Brian Birtles 8f3566ea35 Bug 1402547 - Handle addition/interpolate of nsSMILCSSValueType objects when both objects are empty; r=hiro
In some rare cases we can end up with both arguments passed to
nsSMILCSSValueType::SandwichAdd being "empty", that is, having the type
nsSMILCSSValueType but a null pointer.

This can happen, for example, when we have a two by-animations and linear
interpolation causing us to pass the "empty" from-value up as the underlying
value from the first by-animation to the second by-animation (which it will try
to add with its empty from-value).

In this case the result of adding "empty" to "empty" should just be "empty"
which we achieve by just doing an early return (since the fallback behavior for
failed addition is to just use the second argument as the result; note that if
we return true though the result would also be the same).

We don't currently have a test case that produces this for interpolate but it
makes sense that trying to interpolate "empty" to "empty" should likewise fail
and just produce "empty". In this case failing will make us fall back to
discrete animation and just use the "empty" values as-is. Indicating failure,
however, has the additional effect of making us use the special keyTimes
behavior defined for discrete animation.

MozReview-Commit-ID: IZ5qg0Mk5Uy

--HG--
extra : rebase_source : 402e881cd8639885568e0a32fb49aa4dfa7cbbde
2017-10-02 14:03:53 +09:00
Brian Birtles ab450ccdb9 Bug 1404803 - Convert empty values to suitable zero values even when using discrete interpolation; r=hiro
Normally when we interpolate values for CSS properties we convert empty values
(such as the empty "from" value created for a by-animation) to a suitable zero
value. However, when we use discrete interpolation that step never occurs and in
some rare cases that means we end up setting the empty value on the target
attribute directly which will have an incorrect result (e.g. setting "" for the
height property will have no effect, whereas setting "0px" will).

This patch makes us perform the empty value to zero value conversion when
performing discrete animation.

Unfortunately it is not possible to test this behavior with shorthands since
there are currently no shorthand properties that are additive.

MozReview-Commit-ID: JFT1tis1RAR

--HG--
extra : rebase_source : cc444b6d4d5571c8ab231d88c4d349ea0713baaa
2017-10-04 15:04:23 +09:00
Wes Kocher 61c098eae7 Merge inbound to m-c a=merge CLOSED TREE
MozReview-Commit-ID: 3pMHYV9oXLm

--HG--
rename : dom/base/nsReferencedElement.cpp => dom/base/IDTracker.cpp
rename : dom/base/nsReferencedElement.h => dom/base/IDTracker.h
2017-09-27 16:51:49 -07:00
Jonathan Watt 862c8e7e8d Bug 1403345, part 4 - Rename nsReferencedElement to dom::IDTracker. r=longsonr
MozReview-Commit-ID: 3cGMHDHEhx0
2017-09-08 10:02:05 +01:00
Jonathan Watt 0d623a1609 Bug 1403345, part 3 - Move nsReferencedElement.h/.cpp to IDTracker.h/.cpp. r=longsonr
MozReview-Commit-ID: Ki6oS79xuhJ

--HG--
rename : dom/base/nsReferencedElement.cpp => dom/base/IDTracker.cpp
rename : dom/base/nsReferencedElement.h => dom/base/IDTracker.h
2017-09-08 10:02:05 +01:00
Sebastian Hengst cdcf3bf44b Backed out changeset 59252e3229f1 (bug 1403345)
--HG--
rename : dom/base/IDTracker.cpp => dom/base/nsReferencedElement.cpp
rename : dom/base/IDTracker.h => dom/base/nsReferencedElement.h
2017-09-27 10:43:54 +02:00
Sebastian Hengst ec33e563cc Backed out changeset 1b5d3684ecfb (bug 1403345) 2017-09-27 10:43:49 +02:00
Jonathan Watt 3c6336aaca Bug 1403345, part 3 - Rename nsReferencedElement to dom::IDTracker. r=longsonr
MozReview-Commit-ID: AkNuXab6xQr
2017-09-05 11:17:50 +01:00
Jonathan Watt 462030153c Bug 1403345, part 2 - Move nsReferencedElement.h/.cpp to IDTracker.h/.cpp. r=longsonr
MozReview-Commit-ID: 7yiAaKnXhCq

--HG--
rename : dom/base/nsReferencedElement.cpp => dom/base/IDTracker.cpp
rename : dom/base/nsReferencedElement.h => dom/base/IDTracker.h
2017-09-05 10:45:18 +01:00
Nicholas Nethercote dfd3b7e7aa Bug 1400459 (part 2) - Devirtualize nsIAtom. r=heycam.
This patch merges nsAtom into nsIAtom. For the moment, both names can be used
interchangeably due to a typedef. The patch also devirtualizes nsIAtom, by
making it not inherit from nsISupports, removing NS_DECL_NSIATOM, and dropping
the use of NS_IMETHOD_. It also removes nsIAtom's IIDs.

These changes trigger knock-on changes throughout the codebase, changing the
types of lots of things as follows.

- nsCOMPtr<nsIAtom> --> RefPtr<nsIAtom>

- nsCOMArray<nsIAtom> --> nsTArray<RefPtr<nsIAtom>>
  - Count() --> Length()
  - ObjectAt() --> ElementAt()
  - AppendObject() --> AppendElement()
  - RemoveObjectAt() --> RemoveElementAt()

- ns*Hashtable<nsISupportsHashKey, ...> -->
  ns*Hashtable<nsRefPtrHashKey<nsIAtom>, ...>

- nsInterfaceHashtable<T, nsIAtom> --> nsRefPtrHashtable<T, nsIAtom>
  - This requires adding a Get() method to nsRefPtrHashtable that it lacks but
    nsInterfaceHashtable has.

- nsCOMPtr<nsIMutableArray> --> nsTArray<RefPtr<nsIAtom>>
  - nsArrayBase::Create() --> nsTArray()
  - GetLength() --> Length()
  - do_QueryElementAt() --> operator[]

The patch also has some changes to Rust code that manipulates nsIAtom.

MozReview-Commit-ID: DykOl8aEnUJ

--HG--
extra : rebase_source : 254404e318e94b4c93ec8d4081ff0f0fda8aa7d1
2017-09-26 08:33:21 +10:00
Andrew Halberstadt 7527e600f0 Bug 1392787 - Disable manifestparser tests using 'disabled' key instead of comment, r=jmaher
MozReview-Commit-ID: IQL7hWxQX9F

--HG--
extra : rebase_source : b78cbf7913fc1b0a27dfa085c38957e2bc2467d0
2017-08-22 16:56:02 -04:00
Brian Birtles 4237554d55 Bug 1357296 - Drop warning about needing to factor out text-zoom in SMIL; r=hiro
I'm not sure exactly how this works, but test_smilTextZoom.xhtml passes so this
appears to be taken care of.

MozReview-Commit-ID: C04XjX2rtZw

--HG--
extra : rebase_source : 19c08a1267f8764f83e9e7b31731bb82e52df9e6
2017-09-07 15:50:21 +09:00
Mantaroh Yoshinaga 9124cb5ce3 Bug 1390367 - Pass SMIL mochitests of stroke-* even if a computed value has no px unit. r=birtles
Currently, Gecko converts lengths in stroke-* properties to numbers when
creating animation values and hence the result of animation is always a unitless
value for these properties.

Servo, on the other hand, converts lengths for these properties to numbers
during interpolation and hence sometimes the result of animation is a unitless
value, and other times (such as when skipping interpolation) it is not.

Other browsers produce lengths with px units and ultimately we should align
with that behavior. As a result, this patch updates various SMIL mochitests to:

 * Expect animation values with px unit
 * Compare values by stripping px units as a temporary measure until we
   correctly serialize these values with px (bug 1379908).

MozReview-Commit-ID: IsT26DKkgiP

--HG--
extra : rebase_source : 8d8dee6ad53d29801096d3affe996e4df1a9388c
2017-09-05 13:15:32 +09:00
Mantaroh Yoshinaga 4c7997db68 Bug 1390352 - Make Servo_AnimationValues_ComputeDistance return negative value instead of 0.0 when the function fails to distinguish its failure. r=hiro
We need to check whether the function fails or not in order to check whether
we support the specified paced animation values.

Current servo returns 0.0 when failed computing distance, so servo doesn't
distinguish its failure. This patch makes Servo_AnimationValue_ComputeDistance
return a negative value when the function fails.

MozReview-Commit-ID: 43Q4gu4xwHc

--HG--
extra : rebase_source : fa159b4b03e2e84c0a365455de4c0d2cf5d4f2ce
2017-08-24 10:21:14 +09:00
Andrew McCreight 78807d8776 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

--HG--
extra : rebase_source : 5388c56b2f6905c6ef969150f0c5b77bf247624d
2017-08-29 16:02:48 -07:00
Wes Kocher 4ea67d0e07 Backed out changeset e774700fe070 (bug 1392787) for build bustage a=backout CLOSED TREE
MozReview-Commit-ID: FRRUDa6rIuS
2017-08-24 13:58:52 -07:00
Andrew Halberstadt cae249f833 Bug 1392787 - Disable manifestparser tests using 'disabled' key instead of comment, r=jmaher
MozReview-Commit-ID: IQL7hWxQX9F

--HG--
extra : rebase_source : d907a5b2192687d86e3291a936c943948ed6793f
2017-08-22 16:56:02 -04:00
Eric Rahm a33f11e0f5 Bug 1391803 - Use nsStringFwd.h for forward declaring string classes. r=froydnj
We should not be declaring forward declarations for nsString classes directly,
instead we should use nsStringFwd.h. This will make changing the underlying
types easier.

--HG--
extra : rebase_source : b2c7554e8632f078167ff2f609392e63a136c299
2017-08-16 16:48:52 -07:00
Brian Birtles c3bde11c34 Bug 1390766 - Drop complex handling of shorthand properties when determining if they are discrete or not; r=hiro
MozReview-Commit-ID: 2OzjTXGE7DU

--HG--
extra : rebase_source : 536ddc208ece1f7609e9d05f877ca90b88028601
2017-08-16 16:09:40 +09:00
Mantaroh Yoshinaga 5fa9ec9b19 Bug 1390357 - Switch test result for clamping RGBA on stylo and gecko by using preference. r=birtles
MozReview-Commit-ID: I12SQwmqtr0

--HG--
extra : rebase_source : 63eba3dcdbe6b507047cc97828bdb4afbfda965d
2017-08-16 08:56:59 +09:00
Brian Birtles 46d04e2219 Bug 1390384 - Apply SMIL's calcMode=discrete handling to discretely animatable properties in Stylo; r=hiro
In SMIL if a discrete calcMode is used, the keyTimes attribute may be used to
specify the times at which the various animation values are used, overriding the
regular 50% flip behavior (see nsSMILAnimationFunction::ScaleSimpleProgress).

However, this behavior is only applied when the calcMode is known to be
discrete. If the author specifies calcMode="linear" but
attributeType="stroke-linecap" then SMIL should fall back to discrete calcMode
including applying the special keyTimes behavior.

For the Servo backend, Servo_AnimationValues_Interpolate does not return an
error for discretely animated properties so SMIL does not recognize when we fall
back to discrete calcMode. This patch adds a check before performing
interpolation that tests if the property is a discretely interpolable one and,
if it is, returns an error so that we run SMIL's special discrete calcMode
handling.

MozReview-Commit-ID: FOp8XcNbvdu

--HG--
extra : rebase_source : 57ddb333855de111aa585fe894e99937681e5cd2
2017-08-15 14:40:06 +09:00
Hiroyuki Ikezoe 9bf9d338f9 Bug 1385089 - Set restyle subtree restyle hint if the element animates display style from 'none' to other. r=emilio
When display style is changed from 'none' to other in animation-only restyle
we need to resolve descendant elements' style that were in the display:none
subtree.

Three possible ways to resolve the descendant elements' style;

1) Traversing unstyled elements in animation-only restyle
   We can't simply traverse unstyled elements in the animation-only restyle
   since when we decided to traverse the unstyled elements we don't know yet
   the elements will be initially styled or are in display:none subtree. It
   will result that the new elements are styled in animation-only restyle,
   it's undesirable.

2) Creating a SequentialTask and resolve the descendants' style with
   ServoStyleSet::StyleNewSubtree()
   We can't resolve the descendants' styles with ServoStyleSet::StyleNewSubtree()
   in SequentialTask since at the moment we are still in servo traversal (i.e.
   sInServoTraversal is true). That means AutoSetInServoTraversal fails
   in PrepareAndTraverseSubtree().

3) Creating a SequentialTask and set restyle subtree hint and defer descendants'
   restyle in a subsequent normal traversal
   Note that, when we process throttled animations flush, we don't process
   normal traversal so the descendants will not be traversed until normal
   restyle happens but it will not be a big problem since it's really rare
   that user clicks display animation element just at the right moment when
   display property changes from none to other.  Also, if it will be really
   a problem, we should process *only* transform animations on the compositor,
   it's ideally right thing to do. Display property never runs on the
   compositor.

This patch takes the third approach.

MozReview-Commit-ID: Krxa3kkdIq4

--HG--
extra : rebase_source : 33e9db953f21168c76716329568191625bd15896
2017-08-02 20:01:08 +09:00
Bobby Holley c7e4963340 Bug 1384769 - Skip two smil tests due to crashes until bug 1385089 is sorted out. r=me
MozReview-Commit-ID: 4Bkav7OzvtU
2017-07-27 17:49:46 -07:00
Bevis Tseng a7505864a8 Bug 1378930 - Part 2: Remove the aName parameter from SchedulerGroup/DocGroup/DispatcherTrait. r=billm
--HG--
extra : rebase_source : 11319e568a51d16754a6a9990f76c35c86c2bda7
2017-07-26 16:13:35 +08:00
Carsten "Tomcat" Book 679210723b merge mozilla-inbound to mozilla-central a=merge 2017-07-25 14:27:17 +02:00
Xidorn Quan c4c6fbf75a Bug 1383980 - Enable animation mochitests in mochitest-style task. r=birtles
MozReview-Commit-ID: 38Ir2MG7IMO

--HG--
extra : rebase_source : 0997b7026a24cc271ad977db5ce233c393554dfa
2017-07-25 14:17:04 +10:00
Yoshi Huang 7036b3761f Bug 1382531 - Part 1: rewrite crashtest for data: URI is unique opaque origin. r=smaug 2017-07-25 09:56:02 +08:00
Emilio Cobos Álvarez 2b7de51623 Bug 1381844: Be more explicit about the kind of style context we handle all the time. r=bholley
MozReview-Commit-ID: E0mdkhU3XBz
2017-07-22 18:02:57 +02:00
Brian Birtles f1f7ad791c Bug 1375596 - Use valueToAdd in AddAccumulateOrValue, not valueToAddWrapper; r=hiro
AddOrAccumulate in nsSMILCSSValueType.cpp sets initializes |valueToAdd| to
either &valueToAddWrapper->mGeckoValue or nullptr. It then asks
FinalizeStyleAnimationValues to fill it in. FinalizeStyleAnimationValues will
return false if it could not fill it in, in which case AddOrAccumulate returns
early. As a result, after the early return we can be assured that |valueToAdd|
is not null. However, valueToAddWrapper may still be null.

Changeset 4d87f2bf4b10369af0dd83a2ef962a23299ee8d9 from bug 1358966 changed this
code such that we pass a member of valueToAddWrapper to StyleAnimationValue::Add
where we used to pass a member of valueToAdd. As a result, we can end up passing
0x20 (since valueToAddWrapper is nullptr) to Add() and then trying to read from
it.

This patch makes us pass, instead, |valueToAdd| since we know that is guaranteed
to be non-null here.

MozReview-Commit-ID: 1YwT1lBHnUe

--HG--
extra : rebase_source : abec6995af68de13eacaccf7eca7b2d121eaedf3
2017-07-18 16:24:28 +09:00
Emilio Cobos Álvarez dde6942936 Bug 1381764 - style: More ComputedValuesInner cleanup. r=Manishearth on a CLOSED TREE
MozReview-Commit-ID: 8rkAP3pMEpD
2017-07-18 16:22:33 -07:00
Emilio Cobos Álvarez 9a6ef770c1 Bug 1381764: Cleanup the Gecko bits. r=manishearth
MozReview-Commit-ID: dbVDy1u4vp
2017-07-18 16:22:00 -07:00
Josh Matthews e0c37f0ed3 Bug 1352669 - Hook up Stylo CSS parser to Gecko error reporter. r=emilio
MozReview-Commit-ID: 3r5Z6KiPgRM
2017-07-10 17:52:00 -04:00
Wes Kocher 19d135c982 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 4R4GFHPiij
2017-07-06 16:19:38 -07:00
Nathan Froyd fa32de6af4 Bug 1378492 - label nsSMILTimedElement's AsyncTimeEventRunner; r=billm
Dispatching it to the associated document should be good enough.
2017-07-06 11:41:48 -04:00
Sylvestre Ledru 4e9cf83ee8 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG

--HG--
extra : rebase_source : 7235b3802f25bab29a8c6ba40a181a722f3df0ce
2017-07-06 14:00:35 +02:00
Wes Kocher a9eb08898f Backed out changeset f220d8060c14 (bug 1352669) for build bustage CLOSED TREE a=bustage
MozReview-Commit-ID: INYGT4WT1pO
2017-07-06 14:56:06 -07:00
Josh Matthews 723b20d420 Bug 1352669 - Hook up Stylo CSS parser to Gecko error reporter.
MozReview-Commit-ID: 3r5Z6KiPgRM
2017-07-06 13:15:08 -07:00
Robert Longson 57cdb660f1 Bug 1374861 - add const keyword where appropriate. r=birtles 2017-07-01 10:55:27 +01:00
Bill McCloskey f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Carsten "Tomcat" Book 8a1350b5a6 Backed out changeset 4f6302a98ae4 (bug 1372405)
--HG--
extra : rebase_source : 41632f3158e88e692809731394a683d065a73dfb
2017-06-21 13:59:26 +02:00
Bill McCloskey 6b3e84ed5f Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Carsten "Tomcat" Book ea1b86680c Backed out changeset 9846de3bd954 (bug 1372405)
--HG--
extra : rebase_source : 5d4a48e8ec394c329994689d938d2a6e9b2752b0
2017-06-20 08:27:02 +02:00
Bill McCloskey 4592152411 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Manish Goregaokar 3188b9bfd6 Bug 1373018 - Part 10: stylo: Remove StyleSource; r=bholley
MozReview-Commit-ID: 4IcROeDNoBA

--HG--
extra : rebase_source : e2f65c316be2c5640150eb5ff5628505ce446535
2017-06-10 22:27:45 -07:00
Brian Birtles f7f386ac4e Bug 1371196 - Round font-weight when interpolating, don't floor; r=hiro
The spec says,

 font weight: interpolated via discrete steps (multiples of 100). The
 interpolation happens in real number space and is converted to an integer by
 rounding to the nearest multiple of 100, with values halfway between
 multiples of 100 rounded towards positive infinity.[1]

However, our implementation pre-dates this spec text (bug 528234 landed Nov 2009
whereas the spec was updated in Mar 2012[2]).

This patch rounds the result by simply adding 50 to the result before we floor
it (which is good enough in this case because we don't need to worry about
negative values).

It also slightly simplifies the logic by re-using Clamp from MathAlgorithms.h.

[1] https://drafts.csswg.org/css-transitions/#animtype-font-weight
[2] 00c6286109

MozReview-Commit-ID: BjCg7MG70hW

--HG--
extra : rebase_source : 879ea18d7d1a49ff425d6e467081983a130a65e3
2017-06-09 12:19:47 +09:00
Hiroyuki Ikezoe b18c06da27 Bug 1358966 - Enable shorthand properties for SMIL. r=birtles
MozReview-Commit-ID: IyJIzVGpvYK

--HG--
extra : rebase_source : 90a34cf57a2af48b58c631c0e554e1710c448396
2017-06-09 06:19:38 +09:00
Hiroyuki Ikezoe 5626c5dfa9 Bug 1358966 - Serialize multiple AnimationValue(s) for sub properties of a shorthand into single shorthand string. r=birtles,manishearth
MozReview-Commit-ID: KihUZRSD6pg

--HG--
extra : rebase_source : 8a75edcde8acf5c47981ef009d7a3c2b1d40c777
2017-06-09 06:19:38 +09:00
Hiroyuki Ikezoe 19bb8c0441 Bug 1358966 - Call additive or accumulative functions for each sub properties of shorthand. r=birtles
MozReview-Commit-ID: 26uflUKa2oa

--HG--
extra : rebase_source : 7c296c94b0534e22038604963b6100cb7d02904e
2017-06-09 06:19:37 +09:00
Hiroyuki Ikezoe aca372df5b Bug 1358966 - Compute distance for each sub properties of shorthand. r=birtles
We use Euclidean distance for shorhand.

MozReview-Commit-ID: 6gUbIUl9SZ

--HG--
extra : rebase_source : ef92e2387d9bbb8da51ce3b2c89f0c2cc2d182fe
2017-06-09 06:19:37 +09:00
Hiroyuki Ikezoe d3612df34a Bug 1358966 - Call Servo_AnimationValues_Interpolate for each sub properties of shorthand. r=birtles
MozReview-Commit-ID: Ath0b06j5zm

--HG--
extra : rebase_source : 3851bcf8c3da3130b097b2c23669576afb2a8720
2017-06-09 06:19:37 +09:00
Hiroyuki Ikezoe 9af90ec795 Bug 1358966 - Use Servo_GetAnimationValues. r=birtles
MozReview-Commit-ID: 7ag2IFUViDX

--HG--
extra : rebase_source : d545bf833a4bc428bf9141ff4cdfac05f4c453e1
2017-06-09 06:19:37 +09:00
Hiroyuki Ikezoe 263593c1fa Bug 1358966 - Make RawServoAnimationValue in ValueWrapper an array. r=birtles
MozReview-Commit-ID: 15iGyKc2qe0

--HG--
extra : rebase_source : e5d565ac194b39a37731b13f5c8d20717fa71aed
2017-06-09 06:19:37 +09:00
Hiroyuki Ikezoe b90af8cd9c Bug 1358966 - Split mCSSValue into a RawServoAnimationValue and a StyleAnimationValue. r=birtles
In case of gecko, we use only the StyleAnimationValue.
Whereas in case of servo, we use RawServoAnimationValue and
make it an array to store multiple values for shorthand sub properties.

MozReview-Commit-ID: 4PnWBk9WP2Q

--HG--
extra : rebase_source : a2b5878f14241c2cbf4adeeed3a0fa08ae230fa3
2017-06-09 06:19:37 +09:00
Hiroyuki Ikezoe cdde6f6108 Bug 1368889 - Post animation restyle hint againt pseudo element instead of its parent. r=birtles
To traverse pseudo elements in animation-only restyle, the pseudo element
itself needs the animation-only dirty bit.

MozReview-Commit-ID: 11RfVqnPXfJ

--HG--
extra : rebase_source : d048c9a053c03bf3fef46fcbfd9cbd5f60204e1d
2017-06-08 10:22:25 +09:00
Brian Birtles e1de2c2e24 Bug 1355349 - Call Servo's add and accumulate methods for SMIL animations; r=hiro
MozReview-Commit-ID: 1vREV73V0Wo

--HG--
extra : rebase_source : 34cd3ae04b19c3b1db01badc0016555ce5296c8c
2017-06-02 15:18:47 +09:00
Brian Birtles 4b967f386d Bug 1355349 - Reformat a ternary operator to match coding style; r=hiro
MozReview-Commit-ID: KUkqXMmzgR8

--HG--
extra : rebase_source : 45a40d595a5e2141144cd222b1236085d8143ef4
2017-06-02 15:16:48 +09:00
Brian Birtles 5273a18628 Bug 1355349 - Drop 'virtual' annotation from overridden methods in nsSMILCSSValueType.h; r=hiro
Our coding style says we should only use one of either 'virtual' or 'override'.
In the next patch I would like to add another override to this header so first
we should tidy up the existing declarations.

MozReview-Commit-ID: AFtMNvNCcNG

--HG--
extra : rebase_source : 60d0e4fc259ff05aa097a4cf2c10b75883b9deed
2017-06-02 15:14:52 +09:00
Brian Birtles 4e2036b283 Bug 1355349 - Treat properties that can't be animated by the Servo backend as unanimatable; r=hiro
If we attempt to call animation-related methods on the Servo backend (e.g.
Servo_ComputedValues_ExtractAnimationValue) and pass a property that is not
(yet) animatable by Servo, it will panic so we should avoid passing these
properties.

An alternative, is to make methods like
Servo_ComputedValues_ExtractAnimationValue fallible by having them first check
if the passed-in value is animatable and return null in that case. That too, is
probably worth doing (call sites like KeyframeEffectReadOnly::EnsureBaseStyle
that assume it is fallible could assert that the result is non-null since,
provided that property is animatable, the method should still be fallible) but
refusing to animate these properties from the start is cleaner so we just do
that for now.

MozReview-Commit-ID: ESYcbkTtfXG

--HG--
extra : rebase_source : 60e4469d0883c49b77118f9235f0f4b369f6cd3f
2017-06-02 15:14:43 +09:00
Brian Birtles 3325a83ce8 Bug 1355349 - Use Servo's zero values to fill in missing SMIL animation endpoints; r=hiro
MozReview-Commit-ID: 3WLDIlfnJcD

--HG--
extra : rebase_source : c4392aeaa07e030c147610ca7f96fbda363c030a
2017-06-05 10:28:17 +09:00
Hiroyuki Ikezoe 14e0273b91 Bug 1367293 - Don't get parent style for GetComputedKeyframeValuesFor. r=birtles
MozReview-Commit-ID: 7WjsO7P2QGz

--HG--
extra : rebase_source : b9d2d672dd670f54174a5811c7d28efe268c0c4d
2017-06-02 09:38:54 +09:00
Hiroyuki Ikezoe c4038e928d Bug 1367293 - Early return from ValueFromStringHelper() if the target element is not associated with any documents. r=birtles
MozReview-Commit-ID: 1mcCb5txtB4

--HG--
extra : rebase_source : c2cf932f1a14cdde0ceb2729de47c4996484fa60
2017-06-02 09:38:00 +09:00
Nazım Can Altınova e7316ee8fe Bug 1364746 - stylo: Continue to propagate quirks mode information to Servo r=bholley
I've propagated quirks mode information on some places. But we needed to pass
quirks mode to some other FFI functions to be able to handle that information
properly.

MozReview-Commit-ID: JovQWjN3YJx

--HG--
extra : rebase_source : bd25ba4276ae21ff4feb80e56b311202019268a0
2017-05-14 18:11:18 +03:00
Hiroyuki Ikezoe 7948721aac Bug 1363880 - Enable crashtest for SVG that no longer cause panic. r=birtles
MozReview-Commit-ID: KR7pyDUChFu

--HG--
extra : rebase_source : 662df24d0951f952aff652fa7e37c867d7ee45db
2017-05-17 05:50:58 +09:00
Hiroyuki Ikezoe 76442db0fb Bug 1357295 - Allow all numeric values for SMIL. r=birtles
MozReview-Commit-ID: Knlgs1j4dan

--HG--
extra : rebase_source : 02e84a42a377deb0489c123adaa6db4df244ca56
2017-05-13 19:47:38 +09:00
Hiroyuki Ikezoe 7cd8cdf2bb Bug 1357295 - Rename LengthParsingMode to ParsingMode and LengthParsingMode::SVG to PasingMode::AllowUnitlessLength. r=emilio
We need another flag that represents allow-negative-number for SMIL, so
this enum will also comprise the another parsing mode that allows negative number.

MozReview-Commit-ID: IDFNppjGeB

--HG--
extra : rebase_source : 456f661b33346ff4a756a66c6accf4ab1a5f2f80
2017-05-13 19:47:38 +09:00
Hiroyuki Ikezoe 9219415cbf Bug 1363574 - Allow unitless length for SMIL values. r=birtles
MozReview-Commit-ID: BkGCHgQVzHD

--HG--
extra : rebase_source : c0b0601fba6cfba04217dd6da7e942c167858496
2017-05-11 08:29:36 +09:00
Jeremy Chen e265ee592d Bug 1359343 - annotate svg related crashtests to enable stylo for SVG documents. r=heycam
The two skipped tests (1 in layout/base/ and 1 in view/) both cause leaks while
running crashtests, so annotate them with a tracking bug (bug 1363000) filed.

MozReview-Commit-ID: GhSRt4wqu44

--HG--
extra : rebase_source : ed81c75251b35cee7f940b38e3998a6df3c1fcc6
2017-05-05 09:58:56 +00:00
Mantaroh Yoshinaga 0b67f40478 Bug 1357979 - Add dom.animations-api.core.enabled preference to test of smil with transition in order to enable beta/release test. r=birtles
MozReview-Commit-ID: EmdxQMgjatu

--HG--
rename : dom/smil/test/test_smilWithTransition.html => dom/smil/test/file_smilWithTransition.html
extra : rebase_source : e4e0011a3b6a7583a1fbf69dfa02afcc1262db5c
2017-05-01 22:54:11 +09:00
Brian Birtles 0484ed8286 Bug 1355348 - Don't return early when sampling SMIL animations with Servo backend; r=heycam
MozReview-Commit-ID: 26PxOSB9C9l

--HG--
extra : rebase_source : 5b414022395ecef8c310b8e1351ca4072215faad
2017-04-26 13:00:12 +09:00
Brian Birtles 93862d0cba Bug 1355348 - Make nsSMILCSSValueType store an AnimationValue instead of a StyleAnimationValue; r=heycam
MozReview-Commit-ID: 7EF9CN2SdwQ

--HG--
extra : rebase_source : 7aba63b5b537655191d2031881e8a15d38589ac2
2017-04-26 13:00:12 +09:00
Brian Birtles 3a16a45d8f Bug 1355348 - Factor out method to remove minus sign from property values; r=hiro
This is just a minor refactoring to simplify ValueFromStringHelper before we
refactor it further in the next patch (and so we can re-use this definition to
produce debug warning for Servo since we don't handle negative values there
yet).

MozReview-Commit-ID: CfcnI2Be5di

--HG--
extra : rebase_source : 4e052cc37d24671159f32c3e0ca3bc48f5a73c54
2017-04-26 13:00:11 +09:00
Brian Birtles a7d2fa0411 Bug 1355348 - Add SMIL restyles in the stylo pretraverse; r=heycam
MozReview-Commit-ID: mwjkKr6wsr

--HG--
extra : rebase_source : 23324e128041f6d190312958dab093da382863f3
2017-04-26 13:00:11 +09:00
Aryeh Gregor af57d2df0f Bug 1251198 - Remove various obsolete events from document.createEvent r=smaug
Other browsers do not support any of these (IIRC), telemetry reports
essentially zero usage, and supporting them is contrary to the DOM spec.

Notes on specific events:

CommandEvent and SimpleGestureEvent: These are not supposed to be
web-exposed APIs, so I hid the interfaces from web content too
(necessary to avoid test_all_synthetic_events.html failures).

DataContainerEvent: This was a non-standard substitute for CustomEvent
that seemed to have only one user, so I removed it entirely and switched
the user (MozillaFileLogger.js) to CustomEvent.

ScrollAreaEvent: This is entirely non-standard, but we apparently expose
it deliberately to web content, so I didn't see any reason to remove it
from createEvent.

SimpleGestureEvent and XULCommandEvent: Can still be created from
createEvent(), but not by content.

TimeEvent: This is still in because it has no constructor, so there's no
other way to create it.  Ideally we'd update the SMIL spec to add a
constructor.  I did remove TimeEvents.

MozReview-Commit-ID: 7Yi2oCl9SM2

--HG--
extra : rebase_source : 199ab921acfc531b8b85e77f90fcd799b03c887b
2017-04-20 15:45:37 +03:00
Brian Birtles 61d7e366f8 Bug 1315874 - Use base style context to resolve base values in nsSMILCSSProperty; r=heycam
MozReview-Commit-ID: 12Y6svWgXG

--HG--
extra : rebase_source : 345712d11b268648a18660decf4d2989384cd3c3
2017-04-03 16:49:27 +09:00
Brian Birtles c94eac8983 Bug 1315874 - Pass a base style context to nsSMILCSSProperty; r=heycam
We will use this in the next patch in this series to fetch the base style.

(I tried simply passing this as a parameter to GetBaseStyle but it proved to be
more complicated since all the overrides of GetBaseStyle would need to be
updated to take a parameter that would be irrelevant to most of them.)

MozReview-Commit-ID: Fdr4rFUlE9V

--HG--
extra : rebase_source : 26978951302b4764938959a065402f05220b6093
2017-04-03 16:49:10 +09:00
Brian Birtles 33041d1214 Bug 1315874 - Drop 'ForElement' from GetStyleContextForElementXXX methods; r=heycam
In the next patch we want to add a method called
GetUnanimatedStyleContextForElementNoFlush but that's much too long. Instead it
seems better to just drop 'ForElement' from all these methods since it should be
fairly obvious we are getting the style context for an element given that the
first argument is an element.

MozReview-Commit-ID: JQKaEuCKV2F

--HG--
extra : rebase_source : 3ba51f3b00d1ec7bc91102629d9c0abb88992fef
2017-04-05 14:39:23 +09:00
Brian Birtles 6a706e8040 Bug 1315874 - Add MightNeedBaseStyle helper method; r=dholbert
We will use this in a subsequent patch in this series to determine if we need to
fetch a style context at the beginning of ComposeAttribute (when we create the
nsISMILAttr) or not.

MozReview-Commit-ID: CFBNmmFNNef

--HG--
extra : rebase_source : 4729b2e1194649f461c353fa74d99b5b7829a077
2017-04-03 16:49:09 +09:00
Brian Birtles c02e19cf1f Bug 1315874 - Add a method to nsSMILCSSValueType that takes a StyleAnimationValue; r=dholbert
In a subsequent patch we will extract a StyleAnimationValue from an
nsStyleContext. Rather than serializing it and then re-parsing it into
a StyleAnimationValue, this patch adds a method to directly accept
a StyleAnimationValue since that is what nsSMILCSSValueType stores internally
anyway.

MozReview-Commit-ID: KBaLYAzAlWZ

--HG--
extra : rebase_source : b42f25236fba52939e07c63f5195d10678ea12bd
2017-03-30 16:53:15 +09:00
Mantaroh Yoshinaga e6e8efa20f Bug 1315874 - Add test that SMIL does not trigger CSS Transitions; r=dbaron
MozReview-Commit-ID: D8zZTFkoY6p

--HG--
extra : rebase_source : 557360b8d55200b6e5e3e12c83f87f0bfb931133
2017-01-16 14:07:39 +09:00
Brian Birtles 5986b384f6 Bug 1353208 - Add check for attribute namespace ID when we decide if it should animate as a CSS property or not; r=dholbert
This seems like an existing bug. If the content specifies
attributeType="yer:opacity", we should not try to animate it as a CSS property.
This patch adds a namespace check before we try to animate as a CSS property.

MozReview-Commit-ID: 1LpBa23ddqX

--HG--
extra : rebase_source : c5a4edb4c48bfd6116e58d4ef3eb91384ee86bd5
2017-03-30 16:13:02 +09:00
Brian Birtles 6b8dbeadd1 Bug 1353208 - Simplify logic in GetCSSPropertyToAnimate to remove double negatives; r=dholbert
MozReview-Commit-ID: 41qhKdcNoNB

--HG--
extra : rebase_source : 22541e23514b950e6d48c72bb0ee4a1f992f67b1
2017-04-04 14:56:52 +09:00
Brian Birtles e96d223104 Bug 1353208 - Factor out nsSMILCompositor::GetCSSPropertyToAnimate helper method; r=dholbert
In bug 1315874 we will create a method to check if we're likely to need to
resolve base styles or not, and for that we need to extract the check for
whether or not we're animating a CSS property.

MozReview-Commit-ID: 9Ybsi91fro8

--HG--
extra : rebase_source : e2f72a7d807bfbe026fbd1a603cd993c3d502584
2017-03-30 13:10:08 +09:00
Brian Birtles 1efabc2e0b Bug 1353208 - Don't allocate separate heap memory for nsSMILCompositor::mCachedBaseValue; r=dholbert
nsSMILCompositor::mCachedBaseValue is an nsAutoPtr<nsSMILValue> that we allocate
on the heap. It looks like we did that back in bug 533291 presumably because it
makes transferring these cached values between nsSMILCompositor objects cheaper.

One drawback of this, however, is that mCachedBaseValue has two null states:
the mCachedBaseValue pointer can be null, and the pointed-to nsSMILValue can be
a null value (i.e. IsNull() returns true).

Now that we have move ctors and operators defined for nsSMILValue we can
transfer these objects between compositors cheaply without requiring the object
to be allocated as separate heap object. This patch makes mCachedBaseValue just
a regular nsSMILValue class member (i.e. drops the nsAutoPtr).

There's a subtle difference in behavior with regards to the first sample.
Previously we would compare the (initially) null mCachedBaseValue pointer with
the passed-in nsSMILValue and set mForceCompositing to true. With this patch,
however, we will only set mForceCompositing to true if the passed-in
mCachedBaseValue is not null.

I believe this is correct, however, since if we don't call GetBaseValue in
ComposeAttribute we should not be setting mForceCompositing to true (something
else should ensure that gets set to true), and if we do call GetBaseValue the
result should not be a null nsSMILValue (except in some OOM cases where we don't
really care if we miss a sample). This patch adds an assertion to check that
GetBaseValue does, in fact, return a non-null value. (I checked the code and
this appears to be the case. Even in error cases we typically return an empty
nsSMILValue of a non-null type. For example, the early return in
nsSMILCSSProperty::GetBaseValue() does this.)

MozReview-Commit-ID: BRJFa4xMdxz

--HG--
extra : rebase_source : f3e3ca1e01e73610523bde7583e2a002d2473184
2017-03-30 13:10:07 +09:00
Brian Birtles 8ff0648aee Bug 1353208 - Use UniquePtr for handling heap-allocated nsISMILAttr objects; r=dholbert
MozReview-Commit-ID: 10lA0ZaXChj

--HG--
extra : rebase_source : f5285b5363b2247ac73f63d9d13f8a109728a7c2
2017-03-30 13:10:07 +09:00
Brian Birtles b4442afb51 Bug 1353208 - Sort includes in nsSMILAnimationController.cpp; r=dholbert
We will add to these includes later in this patch series so we sort them now so
it's clear where to add to.

MozReview-Commit-ID: CgqlS3f62nu

--HG--
extra : rebase_source : 009e8de1961cfd3d0f9cd72061e2e8f254f03cad
2017-03-30 13:10:06 +09:00