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

194 Коммитов

Автор SHA1 Сообщение Дата
André Bargull 14ca007916 Bug 1625138 - Part 41: Remove no longer needed includes for mozilla/TypeTraits. r=froydnj
Also adds missing includes in some files, these were previously only transivitely
included through mozilla/TypeTraits.h.

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

--HG--
extra : moz-landing-system : lando
2020-03-28 16:00:09 +00:00
Boris Chiou 4f3959bfee Bug 1610981 - Eliminate usage of CSSPseudoElement from KeyframeEffect. r=birtles,smaug
Replace ElementOrCSSPseudoElement with Element and add PseudoElement (which is
a DOMString) into KeyframeAnimationOptions and KeyframeEffect.

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

--HG--
extra : moz-landing-system : lando
2020-02-18 20:44:14 +00:00
Emilio Cobos Álvarez b55adec8d8 Bug 1605610 - Ensure to not create transition rules for elements that don't have any transition effect. r=hiro
There are multiple places where bogus non-empty transition rules can be created
before this patch when EffectSet's cascade information isn't up-to-date.  That
can happen as described in bug 1606176.

Anyhow, in this particular call site, this is only used to filter from
transition rules effects that are from running animations, to implement:

https://drafts.csswg.org/css-transitions/#application:

>  Implementations must add this value to the cascade if and only if that
>  property is not currently undergoing a CSS Animation ([CSS3-ANIMATIONS])
>  on the same element.

In the test-case, the EffectSet cascade info is empty, so we hit the "skip
everything" for animations (wrong), and "skip nothing for transitions" (also
wrong). This creates a transition rule node which then we never remove
(understandably, as the element never had a transition!).

This fixes the observables of this test-case, by checking the cascade level
(so that we don't create transition rule nodes with declarations coming from
animations). This is strictly more correct than what we were doing.

If we hit the proposed assertion after this change, this code may still create
transition rules that incorrectly override animations, but will never mint one
out of the blue which we'd then fail to remove (which is the problem the
test-case is hitting).

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

--HG--
extra : moz-landing-system : lando
2020-01-07 16:21:08 +00:00
Emilio Cobos Álvarez 4a3be9604a Bug 1602317 - Switch style system to associated constants-in-body. r=heycam
This is closer to the equivalent Rust code.

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

--HG--
extra : moz-landing-system : lando
2019-12-09 03:32:28 +00:00
kriswright 8c68307d03 Bug 1573268 - Convert two layers.offmainthreadcomposition.* prefs to static prefs. r=njn
Converts layers.offmainthreadcomposition.async-animations and layers.offmainthreadcomposition.log-animations to their respective static prefs. Since all IsAnimationLoggingEnabled() did was create a pref and return the variable sShouldLog, this function is removed and replaced with the static pref.

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

--HG--
extra : moz-landing-system : lando
2019-08-13 00:02:12 +00:00
Boris Chiou b5a2513e31 Bug 1534884 - Add new animation warning for animations overridden by important rules. r=birtles
We move the check of important rule and animation level into
KeyframeEffect::ShouldBlockAsyncTransformAnimations(), and add a new warning
for it.

Note:
1. ShouldBlockAsyncTransformAnimations() only cares about transforms. And
   for other compositor animation properties, we count on
   HasEffectiveAnimationOfPropertySet() (in IsMatchForCompositor()).
2. If we check the important rules in both
   EffectCompositor::HasAnimationsForCompositor() and
   ActiveLayerTracker::IsTransformMaybeAnimated(), we may get the incorrect
   animation warnings (i.e. TransformFrameInactive). In most cases, we
   check these two functions together, so perhaps move the check of important
   rules outside HasEffectiveAnimationOfPropertySet() is fine.
   Besides, ActiveLayerTracker just tracks if there is a style change on this
   property (or display item) on the active layers, so should be OK to not
   check important rules in it.

So IsMatchForCompositor() should check all transform-like properties,
instead of each one, to get the correct result. (That's why we have to
refactor KeyframeEffect::GetPropertiesForCompositor() as well.)

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

--HG--
extra : moz-landing-system : lando
2019-06-28 18:18:08 +00:00
Brian Birtles 65f06d35fe Bug 1253476 - Implement Animation.commitStyles; r=boris,emilio,bzbarsky,smaug
Differential Revision: https://phabricator.services.mozilla.com/D30327

--HG--
extra : moz-landing-system : lando
2019-05-20 06:04:23 +00:00
Brian Birtles 5b145a6de4 Bug 1253476 - Add remove events; r=boris,bzbarsky
This patch introduces the machinery for dispatching remove events but does not
actually cause removing to do anything to the output of the animation beyond
updating its replaceState member.

The expected behavior is defined in:

  https://drafts.csswg.org/web-animations-1/#removing-replaced-animations

And the corresponding IDL members are defined in:

  https://drafts.csswg.org/web-animations-1/#animation
  https://drafts.csswg.org/web-animations-1/#enumdef-animationreplacestate

Tests for these events are added in the next patch in this series.

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

--HG--
extra : moz-landing-system : lando
2019-05-20 05:48:29 +00:00
Masayuki Nakano 36e5df54ec Bug 1547621 - Move all inline methods of nsIPresShell into mozilla::PresShell r=smaug
And also this patch moves some related methods which use the inline methods
and member variables used only by them.

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

--HG--
rename : layout/base/nsIPresShellInlines.h => layout/base/PresShellInlines.h
extra : moz-landing-system : lando
2019-04-30 01:52:53 +00:00
Emilio Cobos Álvarez f8a54cc34d Bug 1545781 - One of the versions of EffectCompositor::PreTraverse is dead code. r=hiro
Callers were removed in bug 1540220.

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

--HG--
extra : moz-landing-system : lando
2019-04-19 22:01:00 +00:00
Masayuki Nakano 9165a150a1 Bug 1540930 - Make nsPresContext use mozilla::PresShell directly rather than via nsIPresShell r=emilio
`nsPresContext` should use `mozilla::PresShell` directly instead of
`nsIPresShell`.  This patch makes it.

Unfortunately, `nsPresContext` and `nsIFrame` have `PresShell()`.  Therefore,
we cannot use `PresShell*` in its methods so that this patch uses `mozilla::`
namespace prefix.

It might be better to rename them as `PresShellPtr()` in another bug.

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

--HG--
extra : moz-landing-system : lando
2019-04-03 12:40:26 +00:00
Sylvestre Ledru ef0bfc3822 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-03-31 15:12:55 +00:00
Mats Palmgren 9e5f85edc2 Bug 1538618 - [css-pseudo] implement animation support for ::marker pseudos. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D25003

--HG--
extra : rebase_source : 999373f16c816cdd0dd64b1cc3f9f3f30bb12003
extra : amend_source : 829c0fc25afc55d50b70aebc1f3b9f0e8f06c458
2019-03-26 05:48:26 +01:00
Emilio Cobos Álvarez ad066f1df7 Bug 1536586 - Simplify a bit our generated bindings by getting rid of FooBorrowed and FooBorrowedMut. r=heycam
This reduces a lot the boilerplate that's needed in order to add simple binding
functions.

This starts using &Foo and Option<&Foo> instead, and as a result we need to
remove the servo_function_signatures test, which is a bit unfortunate.

I think it's worth though, this causes problems on some platforms (see bug
1534844), and messing up the functions signature is not something that I've ever
seen (other than bug 1308234, which already had all the FooBorrowed mess which
I'm removing).

Also, cbindgen understands references and Option<&Foo>, so it will be the way to
go in the future.

After this patch we can also remove HasSimpleFFI, but I've kept it for now since
I still use it in a few places, and this patch is quite big on its own.

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

--HG--
extra : moz-landing-system : lando
2019-03-21 17:00:27 +00:00
Boris Chiou 87c575a7ac Bug 1533594 - Set performance warning by a property set. r=hiro
We want to set the performance warning by a property set, so update it.
Besides, add more tests for individual transforms (translate, rotate,
scale).

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

--HG--
extra : moz-landing-system : lando
2019-03-21 17:40:11 +00:00
Brian Birtles 04e79479f6 Bug 1518816 - Add EffectSet::GetEffectSetForFrame and use it in FindAnimationsForCompositor; r=hiro
There are many bugs regarding our use of EffectSet::GetEffectSet(nsIFrame*)
because the intention of the caller is not clear. If it is called for the
primary frame of display:table content do we expect it to get the EffectSet
associated with the style frame or not? Generally it depends on if we are
looking for transform animations or not.

Rather than inspecting each call site and making it choose the appropriate frame
to use, this patch introduces a new method to EffectSet to get the appropriate
EffectSet based on the properties the caller is interested in.

This patch also uses this function in FindAnimationsForCompositor which in turns
fixes the glitching observed on Tumblr that arose since a number of places in
our display list code were passing the style frame to
EffectCompositor::HasAnimationsForCompositor.

Over the remainder of this patch series we will convert more callers of
EffectSet::GetEffectSet(nsIFrame*) to this new method before renaming
EffectSet::GetEffectSet to GetEffectSetForStyleFrame to make clear how the
method is intended to work.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 04:10:30 +00:00
Emilio Cobos Álvarez 5aa8533517 Bug 1533963 - Use a single RestyleHint representation. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D22828

--HG--
extra : moz-landing-system : lando
2019-03-14 11:47:50 +00:00
Boris Chiou 192a13d12f Bug 1526850 - Part 4: Add nsCSSPropertyIDSet::IsSubsetOf() for checking the restrictions of some arguments. r=hiro
We restrict the argument (i.e. `nsCSSPropertyIDSet`) of some functions is
the subset of other property set (e.g. transform-like properties), so
add this function for better readability.

Depends on D19629

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

--HG--
extra : moz-landing-system : lando
2019-03-01 21:13:07 +00:00
Boris Chiou a47dc39197 Bug 1526850 - Part 3: Use DisplayItemType as the input of AddTransitionsAndAnimationsToLayer. r=hiro
Transform display item may have multiple properties, so it's better to
use display item type as the input.

Also, factor some code out of AddAnimationsForProperty, so we can easier
to extend this for multiple properties.

We will pass a list of layers::Animation to the compositor thread. In
this list, the animations belonging to the same property are grouped together,
so we can easily separate the animations by property and sample the animations
for each property on the compositor thread. (Will do this in Bug 1425837.)

Depends on D19628

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

--HG--
extra : moz-landing-system : lando
2019-03-01 21:13:05 +00:00
Boris Chiou 97ae508f2d Bug 1526850 - Part 2: Let FindAnimationsForCompositor take nsCSSPropertyIDSet. r=hiro
We use DisplayItemType as the input of HasAnimationsForCompositor, and
nsCSSPropertyIDSet as the input of GetAnimationsForCompositor.

The caller of HasAnimationsForCompositor just wants to check if there is
any compositor animation for a display item, so we can replace it by the
display item, and get the properties from this display item.

However, the caller of GetAnimationsForCompositor may use a subset of
transform-like properties for getting scale factors, or use all the
transform-like properties for sending all transform animations to the
compositor thread.

Depends on D19630

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

--HG--
extra : moz-landing-system : lando
2019-03-01 21:13:03 +00:00
Boris Chiou 55287b9a0b Bug 1526850 - Part 1: Add a function which sets RunningOnCompositor by DisplayItemType. r=hiro
FrameLayerBuilder needs to clear this flag by DisplayItemType, so we add
a new function for it.

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

--HG--
extra : moz-landing-system : lando
2019-03-01 21:13:01 +00:00
Ryan Hunt 00e98538aa Bug 1523969 part 6 - Move method definition inline comments to new line in 'dom/'. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D21106

--HG--
extra : rebase_source : ea3f51c2c11247114deccbc86e90fb02b8a97257
2019-02-25 16:05:29 -06:00
Emilio Cobos Álvarez dad3a20b22 Bug 1525955 - Include anon boxes in CSSPseudoElementType, to remove ComputedStyle::mPseudoTag. r=heycam
This is more consistent with what the Rust bits of the style system do, and
removes a pointer from ComputedStyle which is always nice.

This also aligns the Rust bits with the C++ bits re. not treating xul pseudos as
anonymous boxes. See the comment in nsTreeStyleCache.cpp regarding those.

Can't wait for XUL trees to die.

Depends on D19001

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

--HG--
extra : moz-landing-system : lando
2019-02-19 13:44:33 +00:00
Brian Birtles 361e464182 Bug 1518374 - Drop unused aEffectSet parameter from EffectCompositor::AllowCompositorAnimationsOnFrame; r=hiro
Depends on D15900

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

--HG--
extra : moz-landing-system : lando
2019-01-08 06:42:56 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Hiroyuki Ikezoe 852cca0069 Bug 1506988 - Move IsMatchForCompositor to KeyframeEffect. r=birtles
So that we can use for KeyframeEffect::GetPropertiesForCompositor().

Depends on D12396

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

--HG--
extra : moz-landing-system : lando
2018-11-22 04:01:10 +00:00
Hiroyuki Ikezoe 653d6188cb Bug 1506988 - Factor out EffectCompositor::AllowCompositorAnimationsOnFrame. r=birtles
Depends on D12368

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

--HG--
extra : moz-landing-system : lando
2018-11-22 04:00:42 +00:00
Hiroyuki Ikezoe 163ee505df Bug 1504929 - Avoid hashmap lookups in nsLayoutUtils::HasEffectiveAnimation and EffectCompositor::FindAnimationsForCompositor. r=birtles
Depends on D11427

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

--HG--
extra : moz-landing-system : lando
2018-11-13 10:17:44 +00:00
Hiroyuki Ikezoe 029cb0dd29 Bug 1479173 - Use nsCSSPropertyIDSet::CompositorAnimatable and HasCompositorAnimatableProperty in EffectCompositor::UpdateCascadeResults. r=birtles
Depends on D10691

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

--HG--
extra : moz-landing-system : lando
2018-11-06 21:01:43 +00:00
Hiroyuki Ikezoe f9cc71f31a Bug 1479173 - Replace LayerAnimationInfo::kRecords with nsCSSPropertyIDSet::CompositorAnimatableCount. r=birtles
Depends on D10690

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

--HG--
extra : moz-landing-system : lando
2018-11-06 21:01:28 +00:00
Margareta Eliza Balazs 4aa3a7d442 Backed out 9 changesets (bug 1479173) for build failures in src/dom/animation/EffectCompositor.cpp CLOSED TREE
Backed out changeset 439ac5cfbced (bug 1479173)
Backed out changeset 73aba16a223f (bug 1479173)
Backed out changeset 89dbc6f7f959 (bug 1479173)
Backed out changeset ed1c344ccf0d (bug 1479173)
Backed out changeset c330e7e1eb1d (bug 1479173)
Backed out changeset efcbbb9daa39 (bug 1479173)
Backed out changeset 43c6a7863536 (bug 1479173)
Backed out changeset 94f0ae94a02c (bug 1479173)
Backed out changeset 7cf0ad1af067 (bug 1479173)
2018-11-06 12:13:31 +02:00
Hiroyuki Ikezoe 3d741dd722 Bug 1479173 - Use nsCSSPropertyIDSet::CompositorAnimatable and HasCompositorAnimatableProperty in EffectCompositor::UpdateCascadeResults. r=birtles
Depends on D10691

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

--HG--
extra : moz-landing-system : lando
2018-11-06 09:40:09 +00:00
Hiroyuki Ikezoe 5906508492 Bug 1479173 - Replace LayerAnimationInfo::kRecords with nsCSSPropertyIDSet::CompositorAnimatableCount. r=birtles
Depends on D10690

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

--HG--
extra : moz-landing-system : lando
2018-11-06 09:39:45 +00:00
Hiroyuki Ikezoe 5bb979bdfb Bug 1471174 - Don't try to send invisible animations that we already throttled on the main thread. r=birtles
Even if we unthrottled the invisbile animations to update the overflow region,
we don't need to send the animations to the compositor since the scroll bar
updates caused by the overflow should have been finished before sending
animations to the compositor.

MozReview-Commit-ID: GtKdPfBSyRB

--HG--
extra : rebase_source : 3b15f4578ed60740c1409304fe35ecd4f53fbd5b
2018-06-27 09:40:52 +09:00
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
Emilio Cobos Álvarez 1e9c395548 Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj
Same approach as the other bug, mostly replacing automatically by removing
'using mozilla::Forward;' and then:

  s/mozilla::Forward/std::forward/
  s/Forward</std::forward</

The only file that required manual fixup was TestTreeTraversal.cpp, which had
a class called TestNodeForward with template parameters :)

MozReview-Commit-ID: A88qFG5AccP
2018-06-02 09:33:26 +02:00
Brian Birtles 3184f30162 Bug 1456394 - Merge KeyframeEffectReadOnly and KeyframeEffect; r=bz,hiro
MozReview-Commit-ID: FvTMGjxfRXk

--HG--
extra : rebase_source : 8f7fd0903c9ca2f545dce2633eb797345a7517f8
2018-05-07 11:08:59 +09:00
Brian Birtles 9622b88217 Bug 1456394 - Rename KeyframeEffectReadOnly.{h,cpp} to KeyframeEffect.{h,cpp}; r=bz,hiro
MozReview-Commit-ID: 5Q7oQV8vmgS

--HG--
rename : dom/animation/KeyframeEffectReadOnly.cpp => dom/animation/KeyframeEffect.cpp
rename : dom/animation/KeyframeEffectReadOnly.h => dom/animation/KeyframeEffect.h
extra : rebase_source : cdc8448e7d07376691ef9187f7d6f4424800b690
2018-05-07 11:07:06 +09:00
Hiroyuki Ikezoe 13307bd629 Bug 1320608 - Drop the check for return value of EffectCompositor::GetAnimationElementAndPseudoForFrame. r=birtles
In FindAnimationsForCompositor(), we can ensure
EffectCompositor::GetAnimationElementAndPseudoForFrame doesn't return nullptr
since EffectSet::GetEffectSet(const nsIFrame*) at the top of
FindAnimationsForCompositor() also uses GetAnimationElementAndPseudoForFrame.

MozReview-Commit-ID: CtWdUt40Zyx

--HG--
extra : rebase_source : 7ea1058f4fb740ca35c2ebdc8d2f69d7b634a257
2018-05-09 05:54:15 +09:00
Xidorn Quan 43eb5c8140 Bug 1456364 part 4 - Convert CSS_PROPERTY_* flags to a typed enum flags. r=emilio
MozReview-Commit-ID: 4mLPe5cH80N
2018-04-26 16:24:33 +02:00
Andreea Pavel 87bf18c74d Backed out 4 changesets (bug 1456364) for build bustages at /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/dom/AnimationEffectReadOnlyBinding.h:35 on a CLOSED TREE
Backed out changeset 020151240bb8 (bug 1456364)
Backed out changeset bc0aa5224d91 (bug 1456364)
Backed out changeset d919bbe7440c (bug 1456364)
Backed out changeset ab1472823e8a (bug 1456364)
2018-04-26 08:27:45 +03:00
Xidorn Quan 8af84311ff Bug 1456364 part 4 - Convert CSS_PROPERTY_* flags to a typed enum flags. r=emilio
MozReview-Commit-ID: 4mLPe5cH80N

--HG--
extra : rebase_source : 25f7c909b199c7a83d5809b56afad50ab4f5167e
extra : source : acd1c316929682c4c19beda22d6ce1f1146fce8b
2018-04-26 15:00:50 +10:00
Hiroyuki Ikezoe 437d6b5387 Bug 1412716 - De-templatize EffectCompositor::UpdateEffectProperties and relevant stuff. r=emilio
MozReview-Commit-ID: K8yb8Kw16Mr

--HG--
extra : rebase_source : b5153f46ecd0352496b6222c847ef5663aff6ab7
2018-04-09 20:15:59 +09: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
Xidorn Quan 0401ef821e Bug 1447828 part 1 - Remove StyleBackendType uses from dom/animation. r=emilio
MozReview-Commit-ID: 3INWUuocNPm

--HG--
extra : rebase_source : 1e024084e325b075b3c1b534b544092d7f792e2e
extra : source : 1bcf22436ced3f5b2afd6a7db4250ff5b79f71c0
2018-03-29 02:29:42 +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
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