Commit Graph

413 Commits

Author SHA1 Message Date
Boris Zbarsky
f21a5e20cd Bug 1618011 part 7. Switch most error messages used in bindings to having a method name prefix. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D64888
2020-03-06 23:05:16 +00:00
Boris Zbarsky
ec15042b14 Bug 1618011 part 2. Add a BindingCallContext class. r=peterv
We instantiate this class in various binding methods.  Future patches will make
use of it to throw errors.

Differential Revision: https://phabricator.services.mozilla.com/D64883
2020-03-06 23:05:15 +00:00
Arthur Iakab
d0c2837f0d Backed out 11 changesets (bug 1618011)for Linting failure.
CLOSED TREE

Backed out changeset 8b11ddd8999f (bug 1618011)
Backed out changeset 11df2f359473 (bug 1618011)
Backed out changeset c50121035d50 (bug 1618011)
Backed out changeset 8b8c4c60c34b (bug 1618011)
Backed out changeset b01f8c66110b (bug 1618011)
Backed out changeset 433fdf04058c (bug 1618011)
Backed out changeset 29a9227d08ac (bug 1618011)
Backed out changeset b2dfa2e66d24 (bug 1618011)
Backed out changeset 85650ee945c4 (bug 1618011)
Backed out changeset 278a213e5304 (bug 1618011)
Backed out changeset 9119aeb72ea4 (bug 1618011)
2020-03-07 00:15:57 +02:00
Boris Zbarsky
695748658a Bug 1618011 part 7. Switch most error messages used in bindings to having a method name prefix. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D64888
2020-03-06 20:39:10 +00:00
Boris Zbarsky
698f6265ef Bug 1618011 part 2. Add a BindingCallContext class. r=peterv
We instantiate this class in various binding methods.  Future patches will make
use of it to throw errors.

Differential Revision: https://phabricator.services.mozilla.com/D64883
2020-03-06 20:30:22 +00:00
Boris Chiou
2068f74418 Bug 1619276 - Fix the order of the setting of Keyframe options. r=smaug,birtles
Besides, we add the pref setup in the webidl, so if we turn it off,
iterationComposite and composite will always be the default values.

Differential Revision: https://phabricator.services.mozilla.com/D65437
2020-03-05 09:42:55 +00:00
Hiroyuki Ikezoe
5480a2cfe0 Bug 1510120 - Block running background-color animation on the compositor if there is any current-color keyframe. r=boris,flod
Differential Revision: https://phabricator.services.mozilla.com/D63629
2020-03-03 21:48:01 +00:00
Brian Birtles
17e3c4597a Bug 1292001 - Move transition start value replacing behavior to the CSSTransition; r=boris
This is needed so that later we can make the effect of transitions replaceable.

Note that the test added in this patch will fail without the code changes in
this patch.

Differential Revision: https://phabricator.services.mozilla.com/D64519
2020-03-02 06:38:36 +00:00
Oana Pop Rus
d482a42676 Backed out 7 changesets (bug 1292001) for devtools failures in browser_animation_playerState.js on a CLOSED TREE
Backed out changeset 7ecffcc58457 (bug 1292001)
Backed out changeset 111e88a3f2a9 (bug 1292001)
Backed out changeset 851b689f6593 (bug 1292001)
Backed out changeset a94cb2c7e518 (bug 1292001)
Backed out changeset 4f12b279af44 (bug 1292001)
Backed out changeset f35daa06e7b6 (bug 1292001)
Backed out changeset 9dbefe504221 (bug 1292001)
2020-03-02 08:16:58 +02:00
Brian Birtles
3ebd1ce931 Bug 1292001 - Move transition start value replacing behavior to the CSSTransition; r=boris
This is needed so that later we can make the effect of transitions replaceable.

Note that the test added in this patch will fail without the code changes in
this patch.

Differential Revision: https://phabricator.services.mozilla.com/D64519
2020-03-02 00:40:05 +00:00
Emilio Cobos Álvarez
4e26326595 Bug 1427033 - Throttle animations in opacity: 0 subtrees. r=hiro
I hope you can help me figure out writing tests for this and figuring whether
the reasoning here is correct / I'm missing something else :)

Differential Revision: https://phabricator.services.mozilla.com/D64442
2020-02-27 01:36:14 +00:00
Hiroyuki Ikezoe
7599008ec3 Bug 1510030 - Enable background color animimations on WebRender. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D63605
2020-02-27 08:43:09 +00:00
Bogdan Tara
7d21db5bef Backed out 6 changesets (bug 1510030) for test_running_on_compositor.html failures CLOSED TREE
Backed out changeset a14a131ca731 (bug 1510030)
Backed out changeset a75359516fec (bug 1510030)
Backed out changeset a2be11cbe3f2 (bug 1510030)
Backed out changeset b37ce2b87ac7 (bug 1510030)
Backed out changeset 781cd96dd9a2 (bug 1510030)
Backed out changeset b3dfa17c6305 (bug 1510030)
2020-02-27 06:28:31 +02:00
Hiroyuki Ikezoe
4176568f6a Bug 1510030 - Enable background color animimations on WebRender. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D63605
2020-02-27 03:47:39 +00:00
Bogdan Tara
61cd0d0548 Backed out 6 changesets (bug 1510030) for webrender bustages CLOSED TREE
Backed out changeset 28a2fba71977 (bug 1510030)
Backed out changeset 1700b3a416cd (bug 1510030)
Backed out changeset 087518046b0c (bug 1510030)
Backed out changeset 6b3af91a7ce6 (bug 1510030)
Backed out changeset 737f4bc3afd3 (bug 1510030)
Backed out changeset 921116ca67a5 (bug 1510030)
2020-02-27 04:45:04 +02:00
Hiroyuki Ikezoe
7ac5630b11 Bug 1510030 - Enable background color animimations on WebRender. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D63605
2020-02-27 02:05:30 +00:00
Cosmin Sabou
75bb5b9575 Backed out 6 changesets (bug 1510030) for causing build bustages. CLOSED TREE
Backed out changeset 1bf2a082ca62 (bug 1510030)
Backed out changeset 8b0fd12a063b (bug 1510030)
Backed out changeset ec9c6b79ea42 (bug 1510030)
Backed out changeset cd729f8b0220 (bug 1510030)
Backed out changeset c3e6c17ba7b0 (bug 1510030)
Backed out changeset edc3c212be1f (bug 1510030)
2020-02-27 02:50:40 +02:00
Hiroyuki Ikezoe
d816c9fd6d Bug 1510030 - Enable background color animimations on WebRender. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D63605
2020-02-26 09:26:18 +00:00
Simon Giesecke
9e7322117c Bug 1617628 - Hide nsBaseHashtable Put overloads in nsRefPtrHashtable subclass. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63899
2020-02-25 17:03:36 +00:00
Boris Chiou
932b55f169 Bug 1616443 - Hide composite memeber from the result of getKeyframes(). r=birtles,bzbarsky
If dom.animations-api.compositing.enabled is false, we have to hide
composite member from getKeyframes.

Differential Revision: https://phabricator.services.mozilla.com/D63388
2020-02-20 19:09:34 +00:00
Boris Chiou
1377970ec8 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
2020-02-18 20:44:14 +00:00
Boris Chiou
1b91bf4b41 Bug 1610981 - Drop Maybe<> from KeyframeEffect::mTarget. r=birtles
In order to store the different combinations of (Element, PsuedoStyleType)
pairs, including (nullptr, ::before/::after), we drop Maybe<> and use
OwningAnimationTarget directly.

Differential Revision: https://phabricator.services.mozilla.com/D62666
2020-02-18 20:44:12 +00:00
Hiroyuki Ikezoe
a744de47b9 Bug 1615156 - Don't return true from KeyframeEffect::ContainsAnimatedScale if there is no base style. r=boris
The base style is not set in cases where there is no additive/accumulative
animation.

Differential Revision: https://phabricator.services.mozilla.com/D62691
2020-02-13 19:13:39 +00:00
Boris Zbarsky
b4101df148 Bug 1613013 part 3. Annotate TypeErrors and RangeErrors from WebIDL implementations with the method they come from. r=peterv
Please review the changes to Errors.msg very carefully.  I caught a number of
mistakes there in self-review (e.g. not renumbering replacement markers
correctly when I added {0} to the beginnings of strings), and my confidence
that I caught them all is only middling.

A few lines (MSG_USELESS_SETTIMEOUT, MSG_TYPEDARRAY_IS_DETACHED,
MSG_NOT_SUBMIT_BUTTON) were removed from Errors.msg either because they were
already unused or because they either were single-user constant strings or
became such in the new setup and we could just use the string version of
ThrowTypeError.

Differential Revision: https://phabricator.services.mozilla.com/D61523
2020-02-06 21:22:32 +00:00
Makoto Kato
adcbc86052 Bug 1503656 - Part 1. Always use CssEnvironment from media query's device. r=emilio
Although CssEnvironment is in Device of media query implementation, some code
creates CssEnvironment instance without Device. So I would like always to use it from Device of media query.

Differential Revision: https://phabricator.services.mozilla.com/D52506
2020-01-08 11:55:28 +00:00
Boris Chiou
6883e12a85 Bug 779598 - Do animations of transforms with preserve-3d at compositor. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D57029
2019-12-23 09:52:43 +00:00
Gabriele Svelto
eb403b8785 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442
2019-12-06 09:24:56 +00:00
Dorel Luca
67889e1013 Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto
dc6fa2e86c Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442
2019-12-04 15:01:19 +00:00
Mirko Brodesser
8462bc2a30 Bug 1593222: part 12) Rename "nsNodeUtils.*" to "MutationObservers.*". r=smaug
Depends on D51827

Differential Revision: https://phabricator.services.mozilla.com/D51828
2019-11-06 09:08:06 +00:00
Mirko Brodesser
723780d87b Bug 1593222: part 10) Move Animation* methods to MutationObservers. r=smaug
Depends on D51825

Differential Revision: https://phabricator.services.mozilla.com/D51826
2019-11-05 20:39:22 +00:00
Boris Chiou
bfa02976f1 Bug 1429305 - Enable OMTA for motion path and add some tests for it. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D50015
2019-10-31 21:16:35 +00:00
Hiroyuki Ikezoe
127fdcd06e Bug 1585770 - Copy KeyframeEffect::mBaseStyle in the KeyframeEffect copy constructor. r=boris
The original test case doesn't crash reliably but the test case in this commit
crashes 100% locally without this fix.

Differential Revision: https://phabricator.services.mozilla.com/D48009
2019-10-03 20:00:27 +00:00
Boris Chiou
6a0f5e83da Bug 1567330 - Add offset shorthand. r=emilio,birtles
Also, update the serialization by the shorter perference because this is
a new feature and using older syntax doesn't make sense.

Besides, use `cssOffset` for web animation IDL attribute name.

Differential Revision: https://phabricator.services.mozilla.com/D45607
2019-09-23 19:56:33 +00:00
Emilio Cobos Álvarez
b8d033c8b4 Bug 1575926 - Check that we have a target in CalculateCumulativeChangeHint. r=hiro
Seems we'll update the change hint properly via SetTarget if we get a new
target.

Differential Revision: https://phabricator.services.mozilla.com/D43397
2019-08-26 09:08:22 +00:00
kriswright
9e421576f5 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
2019-08-13 00:02:12 +00:00
Boris Chiou
0ac043bdba Bug 1569795 - Block compositor animations of transform-like properties if offset-path is not none. r=hiro
The animations of motion path are not running on the compositor, and the
properties in [motion-1] is not part of transform-like properties (i.e.
nsCSSProperties::TransformLikeProperties()) for now, so we should run
transform animations on the main thread if offset-path is not `none`.

Differential Revision: https://phabricator.services.mozilla.com/D39966
2019-08-01 21:22:49 +00:00
Nicholas Nethercote
c4aacd8403 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

Differential Revision: https://phabricator.services.mozilla.com/D39138
2019-07-26 01:10:23 +00:00
Boris Chiou
b09809f7b8 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
2019-06-28 18:18:08 +00:00
Brian Birtles
0f1beb0a8a Bug 1253476 - Implement Animation.commitStyles; r=boris,emilio,bzbarsky,smaug
Differential Revision: https://phabricator.services.mozilla.com/D30327
2019-05-20 06:04:23 +00:00
Brian Birtles
0a02966cf4 Bug 1253476 - Don't composite removed animations; r=boris
Differential Revision: https://phabricator.services.mozilla.com/D30324
2019-05-20 05:55:52 +00:00
Brian Birtles
caef0cb453 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
2019-05-20 05:48:29 +00:00
Brian Birtles
b40283e09a Bug 1253476 - Add KeyframeEffect::GetPropertySet; r=boris
Differential Revision: https://phabricator.services.mozilla.com/D30321
2019-05-20 05:48:31 +00:00
Masayuki Nakano
70415b08f2 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
2019-04-30 01:52:53 +00:00
Brian Birtles
89c428a2ad Bug 1541767 - Don't post animation restyles when unbinding an element; r=hiro
Currently we avoid posting animation restyles when unbinding an element by
removing the element from the document before deleting its animation
collections. As a result, when canceled animations go to post a restyle, they
can't find a pres context and give up posting a restyle.

However, this is problematic for two reasons:

* It means we can't remove such canceled animations from the
  PendingAnimationTracker if they are present there (i.e. it regresses the fix
  from bug 1223445).

* It means we can't post cancel events for such animations/transitions since we
  can't lookup the appropriate AnimationEventDispatcher.

In the next patch in this series we will change that order to fix the above
problems but before we do that, we need to introduce another mechanism to make
sure that we don't post restyles when unbinding an element or else we will
regress bug 1396041.

This patch does that by introducing a flag which causes us to not post restyles
when we are doing DOM surgery. For all other cases we actually _do_ need to post
restyles in order to update the style correctly.

Without this patch, layout/style/crashtests/1396041.html would fail after
applying the next patch in this series.

Differential Revision: https://phabricator.services.mozilla.com/D28021
2019-04-18 06:49:25 +00:00
Emilio Cobos Álvarez
2738f83ce2 Bug 1535788 - add some includes to fix some builds on automation.
CLOSED TREE
2019-04-03 14:22:11 +02:00
Masayuki Nakano
e56c690088 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25338
2019-03-29 15:12:47 +00:00
Masayuki Nakano
bf9849f5f3 Bug 1540015 - part 2: Make nsPresContext.h stop including nsIPresShel.h and nsIPresShellInlines.h r=smaug
`*Inlines.h` shouldn't be included by another header file, but `nsPresContext.h`
does it.  This causes include-hell which blocks the following fix.

Additionally, it causes an include hell between `PresShell.h` vs.
`nsIPresShell.h` and `nsPresContext.h if `Document.h` includes `PresShell.h`.
Therefore, this patch also solves this include hell with adding
`nsPresContextInlines.h`.

Differential Revision: https://phabricator.services.mozilla.com/D25333
2019-03-29 15:11:22 +00:00
Dorel Luca
6cd4166b18 Backed out 3 changesets (bug 1540015) for build bustage. CLOSED TREE
Backed out changeset 7b71c9da0214 (bug 1540015)
Backed out changeset 5723ddbc5c44 (bug 1540015)
Backed out changeset 9561d2c36fa5 (bug 1540015)
2019-03-29 16:14:26 +02:00
Masayuki Nakano
12ec0ad7f4 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25338
2019-03-29 13:09:26 +00:00