Closed Bug 1045994 Opened 6 years ago Closed 6 years ago

Add a chrome-only property to inspect if an Animation is running on the compositor or not

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla34

People

(Reporter: birtles, Assigned: birtles)

References

Details

Attachments

(1 file)

We currently track if an animation is running on the compositor or not (AnimationPlayer.mIsRunningOnCompositor). It would be very useful to expose this as a [ChromeOnly] property so that DevTools could tell authors if their animation is hitting the fast path or not.

I'm not really sure if this is a property of an AnimationPlayer or part of an Animation's computed timing.

In future AnimationPlayers will be able to run groups of animations. If it's possible that we might run part of a group on the compositor and part on the main thread then this should be part of an Animation's computed timing. Otherwise it could go on AnimationPlayer.

Perhaps we can put it on the AnimationPlayer for now since that's where mIsRunningOnCompositor lives for now.

Note that this property changes over time. It may become true when the animation is playing, but (currently, anyway) will be false when the animation is paused.
I'm not entirely confident with how I've set up the testing here.

The OMTA tests in layout/style/test use a helper routine in
layout/style/test/animation_utils.js, isOMTAWorking, that not only checks the
OMTC is available and the OMTA pref is set, but also runs a mini-check that OMTA
is working at all before preceding to run any tests.

This test case, however, just checks that OMTC is available and that the OMTA
pref it set. It doesn't do the mini-check.

I think that's ok since the main purpose of isOMTAWorking as used in runOMTATest
is to report a single error in the case when OMTA is not working for some
unknown reason.

In the test case here, however, we'll still only get a single error if OMTA is
broken.

In terms of the arrangement of files, sticking a 'chrome' directory amongst
others that we later hope to submit to web-platform-tests may not be ideal but
I expect there will be considerable re-arrangement of these files once James
Graham's work on integrating web-platform-tests is complete (bug 945221 and
dependencies).
Attachment #8474387 - Flags: review?(dbaron)
Assignee: nobody → birtles
Status: NEW → ASSIGNED
Comment on attachment 8474387 [details] [diff] [review]
Add a chrome-only property to AnimationPlayer to indicate if an animation is running on the compositor

Given that the div starts off in the markup, you probably don't want div.remove() at the end of the test.

r=dbaron
Attachment #8474387 - Flags: review?(dbaron) → review+
(In reply to David Baron [:dbaron] (UTC-7) (needinfo? for questions) (away/busy Aug 27-Sep 11) from comment #3)
> Given that the div starts off in the markup, you probably don't want
> div.remove() at the end of the test.

Yes, thanks for spotting that. I changed the test to no longer dynamically generate the div at the last moment.
Comment on attachment 8474387 [details] [diff] [review]
Add a chrome-only property to AnimationPlayer to indicate if an animation is running on the compositor

Hi Boris, can you please review the WebIDL parts of this? Thanks.
Attachment #8474387 - Flags: review?(bzbarsky)
Comment on attachment 8474387 [details] [diff] [review]
Add a chrome-only property to AnimationPlayer to indicate if an animation is running on the compositor

Might be nice to put it on a separate partial interface documented as containing nonstandard properties.

r=me with that
Attachment #8474387 - Flags: review?(bzbarsky) → review+
https://hg.mozilla.org/mozilla-central/rev/ca99d0b6c635
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.