Commit Graph

1889 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
e38aff2db7 Bug 1525134 - Move image loads out of the style struct accessors. r=heycam
After this I can pass the document from the caller to ResolveSameStructsAs, and
get rid of the pres context pointer.

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

--HG--
extra : moz-landing-system : lando
2019-02-05 19:47:29 +00:00
Razvan Maries
de782903b2 Backed out changeset 919de32d4905 (bug 1525134) for build bustages. CLOSED TREE 2019-02-05 19:36:46 +02:00
Emilio Cobos Álvarez
3fe47839c0 Bug 1525134 - Move image loads out of the style struct accessors. r=heycam
After this I can pass the document from the caller to ResolveSameStructsAs, and
get rid of the pres context pointer.

Differential Revision: https://phabricator.services.mozilla.com/D18600
2019-02-05 18:07:18 +01:00
Razvan Maries
0b09448bc6 Backed out changeset 992f27cfecac (bug 1525134) for build bustages. CLOSED TREE 2019-02-05 18:54:14 +02:00
Emilio Cobos Álvarez
0996652d1a Bug 1525134 - Move image loads out of the style struct accessors. r=heycam
After this I can pass the document from the caller to
ResolveSameStructsAs, and get rid of the pres context pointer.

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

--HG--
extra : moz-landing-system : lando
2019-02-05 13:45:04 +00:00
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