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

1884 Коммитов

Автор SHA1 Сообщение Дата
sotaro b5daf817d6 Bug 1522407 - Update test_animation_performance_warning.html for WebRender r=mattwoodrow
Bug 1508522 relaxed async animation size restriction with WebRender. Then test_animation_performance_warning.html also needs to be updated to accept it.

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

--HG--
extra : moz-landing-system : lando
2019-01-25 04:43:09 +00:00
Brian Birtles 068c417c60 Bug 1523229 - Don't reference animations from AnimationTimeline just because they're relevant; r=hiro
I don't know why this check was ever added. A comment here suggests we expected
irrelevant animations to be removed from their timeline:

  https://hg.mozilla.org/mozilla-central/rev/8406c5300ab7051ae6fe9bf41a1d30261cf70a4a#l2.16

Furthermore, a comment in the changeset description for that same changeset
suggests that to be the case:

  "For example, if a CSS animation is finished (IsRelevant() == false so that
  animation will have been removed from the timeline)"

Another comment removed in that patch has:

  "Note that we only store relevant animations on the timeline since they are
  the only ones that need ticks and are the only ones returned from
  AnimationTimeline::GetAnimations"

which suggests it was added a point when we had a GetAnimations() method on
AnimationTimeline and hence it was needed for that.

The other possibility is that we were preempting a point when timelines would
switch between being active and inactive:

  "FIXME: Once we expect animations to go back and forth betweeen being inactive
  and active, we will need to store more than just relevant animations on the
  timeline. This is because an animation might be deemed irrelevant because its
  timeline is inactive. If it is removed from the timeline at that point the
  timeline will have no way of getting the animation to add itself again once it
  becomes active."

Indeed, we might need this for ScrollTimelines. For now, however, it seems
unnecessary (a try run with simply this check removed passes all test).

(Furthermore, in bug 1253476 or one of its dependencies, this check will prevent
us from combining filling animations since the original (filling) animations
will be kept alive by the timeline. Should this indeed prove necessary for bug
1253476, that bug will add an automated test that will fail if we re-introduce
this condition.)

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

--HG--
extra : moz-landing-system : lando
2019-01-28 08:04:24 +00:00
Margareta Eliza Balazs 9dda825205 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-01-18 12:31:59 +02:00
sotaro c7b3c3a546 Bug 1508522 - Relax aysnc animation size restriction with WebRender r=mattwoodrow
Performance of sync animation with large images is worse with WebRender than non-WebRender case. We want to use async animation as much as possible and relax aysnc animation size restriction. With WebRender, memory usage increase for async animation is limited compared to non-WebRender case.  Image does not needs additional TextureClient allocation for async animation and majority of frames are comverted to WebRenderCommands. Then we could relax aysnc animation size restriction with WebRender.

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

--HG--
extra : moz-landing-system : lando
2019-01-17 23:59:44 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Brian Birtles 9b742685c0 Bug 1518982 - Don't register animations with playbackRate == 0 with a timeline; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D16153

--HG--
extra : moz-landing-system : lando
2019-01-10 06:56:09 +00:00
Brian Birtles 1041509881 Bug 1518403 - Add test that animations with a negative playback rate are sent to the compositor even in the delay phase; r=hiro
Depends on D16131

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

--HG--
extra : moz-landing-system : lando
2019-01-10 00:40:27 +00:00
Brian Birtles 075271a248 Bug 1518403 - Make IsCurrent return false for animations with playback rate == 0 that are in before/active phase; r=hiro
As per following spec update:

  0c369c0806

Depends on D16001

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

--HG--
extra : moz-landing-system : lando
2019-01-10 01:03:24 +00:00
Brian Birtles 1ec94901a9 Bug 1518403 - Make "is current" depend on the direction of the associated animation's playback rate; r=hiro
As per the following spec change:

  4ec1deb76a

Spec issue:

  https://github.com/w3c/csswg-drafts/issues/3193

Of the added test cases, only the last one, "Returns reversed animations yet to
reach their active phase" fails without this code change. The others pass
because the animation is finished at that point but I added them for consistency
with the previous tests.

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

--HG--
extra : moz-landing-system : lando
2019-01-10 00:31:54 +00:00
Oana Pop Rus aec8de62bb Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-01-08 12:37:02 +02:00
Brian Birtles c3ebaf6de2 Bug 1518374 - Add missing dom:: declaration to PendingAnimationTracker.cpp; r=hiro
Depends on D15903

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

--HG--
extra : moz-landing-system : lando
2019-01-08 06:46:23 +00:00
Brian Birtles d012e4ca2e Bug 1518374 - Fix a bunch of fallout from changes to mozilla::dom::Document; r=hiro
Bug 1517241 renamed nsIDocument to mozilla::dom::Document but unfortunately in
the process it messed up the ordering of includes which, according to the coding
style[1], should be alphabetically sorted.

Also, in TimingParams.cpp it didn't add the dom::* prefix so when the unified
build chunking changes, if the "using namespace mozilla::dom" declaration
disappears from the chunk, it will fail to build.

[1] https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#CC_practices

Depends on D15902

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

--HG--
extra : moz-landing-system : lando
2019-01-08 06:45:18 +00:00
Brian Birtles 1fd4653bf3 Bug 1518374 - Move a couple of bool members next to each other in KeyframeEffect.h so they can be packed together; r=hiro
Depends on D15901

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

--HG--
extra : moz-landing-system : lando
2019-01-08 06:43:52 +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
Brian Birtles 8285a179ca Bug 1518374 - Mark GetKeyframes and GetTargetComputedStyle as const; r=hiro
Depends on D15899

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

--HG--
extra : moz-landing-system : lando
2019-01-08 06:42:17 +00:00
Brian Birtles 3ce2f154a0 Bug 1518374 - Remove obsolete comment in Animation.h about kNoIndex; r=hiro
As of bug 1203009 / changeset 37b6deedaab6 and per spec, we no longer reset the
animation index when an Animation re-enters the idle state and kNoIndex is no
longer defined.

Depends on D15898

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

--HG--
extra : moz-landing-system : lando
2019-01-08 06:41:34 +00:00
Brian Birtles 2c202a7e3c Bug 1518374 - Shuffle definitions in Animation.h; r=hiro
This arranges related declarations by function as opposed to trying to
distinguish between functions that are Web-facing and those that are not.

The order still corresponds to the order in the spec[1] however.

[1] https://drafts.csswg.org/web-animations-1/#the-animation-interface

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

--HG--
extra : moz-landing-system : lando
2019-01-08 06:47:43 +00:00
longsonr f2d488cf32 Bug 1517715 - Move nsSMILCSSProperty, nsSMILKeySpline and nsSMILParserUtils to the mozilla namespace r=bbirtles
--HG--
rename : dom/smil/nsSMILCSSProperty.cpp => dom/smil/SMILCSSProperty.cpp
rename : dom/smil/nsSMILCSSProperty.h => dom/smil/SMILCSSProperty.h
rename : dom/smil/nsSMILKeySpline.cpp => dom/smil/SMILKeySpline.cpp
rename : dom/smil/nsSMILKeySpline.h => dom/smil/SMILKeySpline.h
rename : dom/smil/nsSMILParserUtils.cpp => dom/smil/SMILParserUtils.cpp
rename : dom/smil/nsSMILParserUtils.h => dom/smil/SMILParserUtils.h
2019-01-08 07:55:14 +00:00
Emilio Cobos Álvarez 83fed3d31d Bug 1517511 - Simplify computed::LengthOrPercentage and friends. r=heycam
This is a first step to share LengthOrPercentage representation between Rust and
Gecko.

We need to preserve whether the value came from a calc() expression, for now at
least, since we do different things depending on whether we're calc or not right
now. See https://github.com/w3c/csswg-drafts/issues/3482 and dependent bugs for
example.

That means that the gecko conversion code needs to handle calc() in a bit of an
awkward way until I change it to not be needed (patches for that incoming in the
next few weeks I hope).

I need to add a hack to exclude other things from the PartialEq implementation
because the new conversion code is less lossy than the old one, and we relied on
the lousiness in AnimationValue comparison (in order to start transitions and
such, in [1] for example).

I expect to remove that manual PartialEq implementation as soon as I'm done with
the conversion.

The less lossy conversion does fix a few serialization bugs for animation values
though, like not loosing 0% values in calc() when interpolating lengths and
percentages, see the two modified tests:

 * property-types.js
 * test_animation_properties.html

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

--HG--
extra : moz-landing-system : lando
2019-01-07 11:00:27 +00:00
Emilio Cobos Álvarez d2ed260822 Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Emilio Cobos Álvarez 63814207cb Bug 1516853 - Merge nsIDocument and nsDocument. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D15498

--HG--
extra : moz-landing-system : lando
2018-12-31 14:10:19 +00:00
Emilio Cobos Álvarez 006a4ab94a Bug 1516366 - Move nsOnloadBlocker and nsDocumentOnStack to nsDocument.cpp, and shrink nsDocument.h to the minimmum. r=smaug
This needs to add a few of includes in other places which were relying on the
massive (now gone) list in nsDocument.h.

I also needed to move an AnimationTimeline destructor out of line because it
relied on dom::Animation being defined, yet Animation.h includes
AnimationTimeline.h, so include hell.

Differential Revision: https://phabricator.services.mozilla.com/D15366
2018-12-29 20:41:42 +01:00
Emilio Cobos Álvarez f131713362 Bug 1516366 - Move base classes from nsDocument to nsIDocument. r=smaug
This is a big step in order to merge both.

Also allows to remove some very silly casts, though it causes us to add some
ToSupports around to deal with ambiguity of casts from nsIDocument to
nsISupports, and add a dummy nsISupports implementation that will go away later
in the series.

Differential Revision: https://phabricator.services.mozilla.com/D15352
2018-12-29 20:41:28 +01:00
Emilio Cobos Álvarez 4591031b65 Bug 1513012 - Move overflow to use cbindgen. r=heycam
It's one of the most annoying / hacky mako bits we have.

Differential Revision: https://phabricator.services.mozilla.com/D14084
2018-12-11 03:07:08 +01:00
Brian Birtles 1a15db9fdd Bug 1512678 - Simplify handling of previousBaseStyles in KeyframeEffect::EnsureBaseStyles; r=hiro
This should avoid a sometimes unnecessary heaps allocation and also avoids the
possibility of having a "none" previousBaseStyles.

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

--HG--
extra : moz-landing-system : lando
2018-12-07 17:28:29 +00:00
Brian Birtles 928d88aabb Bug 1433705 - Rename GetCurrentTime to GetCurrentTimeAsDuration; r=hiro
To avoid having to always work around conflicts with winbase.h.

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

--HG--
extra : moz-landing-system : lando
2018-12-06 22:16:48 +00:00
Brian Birtles 49c3fc1ad2 Bug 1488122 - Factor out type definition for base values hashmap; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D13935

--HG--
extra : moz-landing-system : lando
2018-12-06 20:57:58 +00:00
Brian Birtles 4646c7c31e Bug 1488122 - Update additive filling animations when the base style changes; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D13934

--HG--
extra : moz-landing-system : lando
2018-12-06 20:59:50 +00:00
Brian Birtles 7f652e687a Bug 1488122 - Rename KeyframeEffect::mBaseStyleValuesForServo to just mBaseValues; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D13933

--HG--
extra : moz-landing-system : lando
2018-12-06 20:57:12 +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 bd5c778053 Bug 1510697 - Set gfx.omta.background-color pref in dom/animation/test/chrome.ini. r=birtles
Differential Revision: https://phabricator.services.mozilla.com/D13378

--HG--
extra : moz-landing-system : lando
2018-11-29 10:02:39 +00:00
Hiroyuki Ikezoe 22056382c0 Bug 1504065 - Run background-color animations on the compositor. r=birtles
Changes for nsIDOMWindowUtils.getOMTAValue is in the next commit with come test
cases.

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

--HG--
extra : moz-landing-system : lando
2018-11-28 00:58:46 +00:00
Andreea Pavel f97b59258b Backed out 2 changesets (bug 1504065) for failing Win reftest at child-in-animating-element-display-none.html on a CLOSED TREE
Backed out changeset 129188370231 (bug 1504065)
Backed out changeset 359e81b35cfb (bug 1504065)
2018-11-27 15:33:29 +02:00
Hiroyuki Ikezoe 212fa4884a Bug 1504065 - Run background-color animations on the compositor. r=birtles
Changes for nsIDOMWindowUtils.getOMTAValue is in the next commit with come test
cases.

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

--HG--
extra : moz-landing-system : lando
2018-11-27 09:26:51 +00:00
Hiroyuki Ikezoe dec4d0e964 Bug 1506988 - Don't incorporate properties that are prevented from running on the compositor in GetPropertiesForCompositor. r=birtles
Now we no longer update the corresponding display items for the animations that
are prevented from running on the compositor if the animations themselves don't
generate any change hints, e.g the same value is specified in both 'from' and
'to' keyframes.  So that we can enable the reftests that we had been suffering
from continuous MozAfterPaint events.

Depends on D12397

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

--HG--
extra : moz-landing-system : lando
2018-11-22 03:57:59 +00: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
Boris Chiou 2718fd0897 Bug 1424134 - Part 3: Implement ComputeSquaredDistance for individual transforms. r=birtles
We manually implement ComputeSquaredDistance for Translate, Rotate, and
Scale because we have to handle mismatch cases, and actually we don't
need to implement it for specified types.

Depends on D11934

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

--HG--
extra : moz-landing-system : lando
2018-11-16 18:58:41 +00:00
Hiroyuki Ikezoe 5e079c773c Bug 1507675 - Rewrite test_animation_performance_warning.html with async/await. r=boris
Depends on D12086

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

--HG--
extra : moz-landing-system : lando
2018-11-16 02:48:41 +00:00
Hiroyuki Ikezoe a4c04af9af Bug 1507675 - Drop the second argument for then(). r=boris
The second argument should be a callback for reject case.

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

--HG--
extra : moz-landing-system : lando
2018-11-16 02:35:47 +00:00
Hiroyuki Ikezoe e74997c54d Bug 1504929 - Factor out IsEffectiveProperty(). r=birtles
Depends on D11598

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

--HG--
extra : moz-landing-system : lando
2018-11-13 10:18:09 +00:00
Hiroyuki Ikezoe e8d577185d Bug 1504929 - Make `if` conditions in KeyframeEffect::GetEffectiveAnimationOfProperty negative. r=birtles
I.e., continue the loop if the CSS property is not what we want and set the
result value only if the CSS property is effective.

This change makes the function match
what KeyframeEffect::GetEffectiveAnimationProperties does in the similar loop
so that we can unify the iteration into a single function in the next commit.

Depends on D11597

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

--HG--
extra : moz-landing-system : lando
2018-11-13 10:17:56 +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 8ee7bcc4a7 Bug 1504929 - Stop iterating EffectSets and KeyframeEffect::mProperties for each CSS properties that can be animated on the compositor. r=birtles
This change gets all effective CSS properties on an nsIFrame just once.

Note that LayerAnimationInfo::GetCSSPropertiesFor intentionally returns
nsCSSPropertyIDSet instead of nsCSSPropertyID since when we support individual
transform properties for the compositor the mapping between display item types
and nsCSSProperty has to be 1:N. E.g. all scale/translate/rotate properties are
mapped to transform display item.

Depends on D11424

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

--HG--
extra : moz-landing-system : lando
2018-11-13 10:22:26 +00:00
Hiroyuki Ikezoe 330ed0810b Bug 1479173 - Check animation generation change in the mProperties loop and drop LayerAnimationInfo::sRecords loop. r=birtles
If mIsRunningOnCompositor is true, the property is effective state because
CanThrottle() is called in advance of a restyle for the effect so that we can
drop the check and drop skipping in the case of non-effective properties.

Depends on D10694

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

--HG--
extra : moz-landing-system : lando
2018-11-06 21:02:18 +00:00
Hiroyuki Ikezoe 217607fd0b Bug 1479173 - Call EffectSet::GetEffectSet in CanThrottle just once. r=birtles
Depends on D10693

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

--HG--
extra : moz-landing-system : lando
2018-11-06 21:02:06 +00:00
Hiroyuki Ikezoe 319493d9fc Bug 1479173 - Check mIsRunningOnCompositor flag before iterating LayerAnimationInfo. r=birtles
The comment there was wrong.  We just bail out from there only if
mIsRunningCompositor is false, so it doesn't matter whatever the layer
generation check results.  (i.e., we don't bail out in the case where
mIsRunningCompositor is true).

Also, we iterate over mProperties in the LayerAnimationInfo::sRecords loop
through HasEffectiveAnimationOfProperty, so it doesn't matter that we iterate
mProperties before the loop either.  We will avoid the iteration in the sRecords
loop in a subsequent patch in this series.

Depends on D10692

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

--HG--
extra : moz-landing-system : lando
2018-11-06 21:01:50 +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
Hiroyuki Ikezoe 2d705fdae9 Bug 1479173 - Rename LayerAnimationInto::mLayerType to LayerAnimationInfo::mDisplayitemType. r=birtles
In the case of WebRender there is no layers, but actually we'd been using it for
WebRender too, that's confusing.

Depends on D10689

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

--HG--
extra : moz-landing-system : lando
2018-11-06 21:01:15 +00:00