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

33 Коммитов

Автор SHA1 Сообщение Дата
Boris Chiou 38556e307d Bug 1807685 - Rename scroll-linked (animations) to scroll-driven (excluding WPT tests). r=dholbert
The spec is still using `Scroll-linked`, so we exclude the change of WPT tests.
I believe WPT will get updates once the spec doc is renamed.

Differential Revision: https://phabricator.services.mozilla.com/D165914
2023-01-04 00:50:45 +00:00
Boris Chiou 38cba0f692 Bug 1776077 - Fix delay phase for scroll animations in the compositor thread. r=hiro
Basically, we need to detect a case if there is only scroll animations
which are not sampled because it goes back to before phase. If this
happens, we set ScrollToDelay to |mReason| in the returned value.

Without this patch, the visual result is intermittent because it
is possible that there are new animations arrived at the moment when
scrolling from active phase to before phase.

We don't have a test for after phase because we don't support end delay
for scroll animations now. However, although we set the adjusted fill, we may
still need this in the future so let's keep the check of after phase for now.

Differential Revision: https://phabricator.services.mozilla.com/D155108
2022-09-22 00:06:10 +00:00
Boris Chiou f8e123fcca Bug 1776077 - Factor out the handle of storing animated value in SampleAnimations(). r=hiro
Make SampleAnimations() simpler and we may use this in the following patch.

Differential Revision: https://phabricator.services.mozilla.com/D156609
2022-09-22 00:06:10 +00:00
Boris Chiou 63f727a0f2 Bug 1737180 - Part 3: Sample scroll-linked animations based on the apz scroll offsets. r=hiro,botond
We sample the scroll-linked animations on the compositor thread, by the
sampled scroll offsets from the AsyncPanZoomController of its scrollable
frame.

Differential Revision: https://phabricator.services.mozilla.com/D139775
2022-04-05 18:48:17 +00:00
Florian Quèze 1340e35255 Bug 1759144 - Avoid crashing when adding the ClearAnimation profiler marker if the animation is not found, r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D140844
2022-03-11 16:00:50 +00:00
Florian Quèze 43b1fb6ca1 Bug 1757202 - Add SetAnimation, SampleAnimation and ClearAnimation markers on the compositor thread, r=mstange.
Differential Revision: https://phabricator.services.mozilla.com/D139733
2022-03-11 07:49:05 +00:00
Florian Quèze 7e7760e643 Bug 1757587 - Remove non-webrender CompositorAnimationStorage code that seems unused, r=mstange.
Differential Revision: https://phabricator.services.mozilla.com/D139957
2022-03-01 23:08:15 +00:00
Botond Ballo 0939b9c825 Bug 1729117 - Remove LayerMetricsWrapper. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D124547
2021-09-09 05:25:43 +00:00
Matt Woodrow d93d452a96 Bug 1727672 - Remove LayerManagerComposite. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123708
2021-08-26 04:59:57 +00:00
Simon Giesecke b9621d6376 Bug 1695162 - Use range-based for instead of custom hashtable iterators. r=xpcom-reviewers,kmag
Differential Revision: https://phabricator.services.mozilla.com/D108585
2021-03-17 15:49:46 +00:00
Simon Giesecke 9af107a839 Bug 1691913 - Rename nsBaseHashtable::Put to InsertOrUpdate. r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
This makes the naming more consistent with other functions called
Insert and/or Update. Also, it removes the ambiguity whether
Put expects that an entry already exists or not, in particular because
it differed from nsTHashtable::PutEntry in that regard.

Differential Revision: https://phabricator.services.mozilla.com/D105473
2021-02-26 09:11:46 +00:00
Simon Giesecke 1c53236b70 Bug 1679272 - Include ScopeExit.h exactly where used. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D98888
2020-12-07 14:25:59 +00:00
Botond Ballo 01b3c7969d Bug 1667594 - Move nsLayoutUtils::RectCallback to namespace scope. r=emilio,jgilbert
This allows it to be forward-declared (while a nested class cannot be),
such that headers files that use RectCallback by pointer or reference
do not need to include nsLayoutUtils.h.

This avoids including nsLayoutUtils.h in nsRange.h.

Differential Revision: https://phabricator.services.mozilla.com/D91685
2020-09-30 21:06:47 +00:00
Hiroyuki Ikezoe ba018e2355 Bug 1638152 - Jank partial prerender transform animations and report the janked animations to the main-thread in each process on WebRender. r=botond,kats
Differential Revision: https://phabricator.services.mozilla.com/D83202
2020-07-21 10:03:34 +00:00
Botond Ballo 04d0eeb3e6 Bug 1654107 - Fix non-unified build errors in CompositorAnimationStorage.{h,cpp}. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D84258
2020-07-20 23:05:46 +00:00
Hiroyuki Ikezoe 16690e4669 Bug 1651910 - Use only AnimationTransform::mFrameTransform for WebRender. r=kats
With the previous change, on WebRender AnimationTransform::mTransformInDevSpace
and AnimationTransform::mFrameTransform are pretty much same, so we don't need
to set both of values, we need only mFrameTransform.

Also this patch drops move(s), I didn't know that Matrix4x4 can't be moved.

Differential Revision: https://phabricator.services.mozilla.com/D83041
2020-07-14 02:31:11 +00:00
Hiroyuki Ikezoe 8f5df336fa Bug 1651910 - Drop inherited scale values and hasPerspectiveParent in TransformData. r=kats
They haven't been used effectively since bug 1403915.

Differential Revision: https://phabricator.services.mozilla.com/D83040
2020-07-14 02:28:36 +00:00
Hiroyuki Ikezoe 4205879729 Bug 1324591 - Report janked animations to the main-thread and update them on the main-thread. r=botond,boris
The machinery to report janked animations is;

1) Store the partial pre-rendered animation id and the Animation object in a
   hashtable in LayerManager
2) Store the animation id in the Animation object as well
3) When we detect jank, we send the animation id to the main-thread via an IPC
   call
4) Find the Animation object with the id in the hashtable and update the
   Animaiton
5) Whenever the partial pre-rendered Animation stop running on the compositor
   i.e. the Animation finished normally, the Animation's target element is
   changed, etc. etc., remove the Animation from the hashtable

Depends on D75731

Differential Revision: https://phabricator.services.mozilla.com/D75732
2020-07-05 11:45:01 +00:00
Hiroyuki Ikezoe 85030f4af6 Bug 1324591 - Jank if we are trying to composite area which is outside of the the partial prerender rect on non WebRender. r=botond,jrmuizel
Depends on D81481

Differential Revision: https://phabricator.services.mozilla.com/D75731
2020-07-05 11:44:18 +00:00
Hiroyuki Ikezoe 1c1e6e4963 Bug 1324591 - Store the corresponding LayersId for each animation on the compositor. r=kats
Depends on D75727

Differential Revision: https://phabricator.services.mozilla.com/D75728
2020-07-05 11:42:55 +00:00
Brindusan Cristian 7f75410fd7 Backed out 9 changesets (bug 1324591) for linux build bustages on central on nsDisplayList.h.
Backed out changeset 75966ee1fe65 (bug 1324591)
Backed out changeset d6a01c6bc40e (bug 1324591)
Backed out changeset fef36ff2ea3d (bug 1324591)
Backed out changeset 4a4ae4bd95d1 (bug 1324591)
Backed out changeset 732804c83add (bug 1324591)
Backed out changeset 84657a3522fb (bug 1324591)
Backed out changeset e6c74ba41007 (bug 1324591)
Backed out changeset 8e6d4e9f5aa0 (bug 1324591)
Backed out changeset 6bc284863aff (bug 1324591)
2020-07-05 13:45:35 +03:00
Hiroyuki Ikezoe 92208a9c28 Bug 1324591 - Report janked animations to the main-thread and update them on the main-thread. r=botond,boris
The machinery to report janked animations is;

1) Store the partial pre-rendered animation id and the Animation object in a
   hashtable in LayerManager
2) Store the animation id in the Animation object as well
3) When we detect jank, we send the animation id to the main-thread via an IPC
   call
4) Find the Animation object with the id in the hashtable and update the
   Animaiton
5) Whenever the partial pre-rendered Animation stop running on the compositor
   i.e. the Animation finished normally, the Animation's target element is
   changed, etc. etc., remove the Animation from the hashtable

Differential Revision: https://phabricator.services.mozilla.com/D75732
2020-07-05 02:21:01 +00:00
Hiroyuki Ikezoe c350cb04ad Bug 1324591 - Jank if we are trying to composite area which is outside of the the partial prerender rect on non WebRender. r=botond,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D75731
2020-07-05 02:20:23 +00:00
Hiroyuki Ikezoe d37f48e250 Bug 1324591 - Store the corresponding LayersId for each animation on the compositor. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D75728
2020-07-05 02:48:51 +00:00
Sylvestre Ledru caf785c695 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D82178
2020-07-04 09:38:43 +00:00
Hiroyuki Ikezoe 0bd87d77fc Bug 1552923 - Clear out the last animated value if a new animation with the same id arrived and sampled but didn't produce any animated value. r=kats
A reftest for this issue will be added in bug 1650351.

Differential Revision: https://phabricator.services.mozilla.com/D82172
2020-07-03 21:42:06 +00:00
Hiroyuki Ikezoe 77bf0111ce Bug 1467765 - Sample off-main-thread animations on the render backend thread in case of WebRender. r=kats
Now CompositorAnimationStorage::GetAnimatedValue() and SetAnimatedValue()s
are called on the sampler thread in case of WebRender, are called on the
compositor thread in case of non WebRender, so we drop assertions of
IsInCompositorThread check there. A mLock.AssertCurrentThreadOwns call in
each function should make sure the function gets called on the
sampler/compositor thread with acquiring the lock.

One caveat in this change is that in case we try to get an animation value via
nsIDOMWindowUtils.getOMTAStyle(), we do sample animations on the _compositor_
thread and we never call UpdateDynamicProperties, which means if it gets called
in testing refresh driver mode, visual results will differ from what the value
returned by the getOMTAStyle should look like. But it should be fine because we
disallow using any chrome priviledge APIs in reftests and also we will never use
the testing refresh driver mode in the reftest harness. Also in mochitests the
visual results' differences might make people confusing if the person can notice
it, but in principal getOMTAStyle() is designed to get computed animating values
so that it doesn't matter what the visual result is.

Differential Revision: https://phabricator.services.mozilla.com/D79982
2020-06-17 23:47:20 +00:00
Hiroyuki Ikezoe cde94b34ea Bug 1646263 - Introduce a lock in CompositorAnimationStorage. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D79949
2020-06-17 22:39:50 +00:00
Hiroyuki Ikezoe 8c6ba30865 Bug 1646263 - Make internal-only methods of CompositorAnimationStorage private. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D79948
2020-06-17 22:39:42 +00:00
Hiroyuki Ikezoe 282639cf63 Bug 1646263 - Move the non WebRender version of SampleAnimations into CompositorAnimationStorage. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D79947
2020-06-17 22:39:40 +00:00
Hiroyuki Ikezoe 35f57c1650 Bug 1646263 - Add CompositorAnimationStorage::CollectWebRenderAnimations. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D79946
2020-06-17 22:39:35 +00:00
Hiroyuki Ikezoe 2c54786097 Bug 1646263 - Move the WebRender version of AnimationHelper::SampleAnimations into CompositorAnimationStorage. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D79945
2020-06-17 22:39:33 +00:00
Hiroyuki Ikezoe 4af8413479 Bug 1646263 - Separate CompositorAnimationStorage from AnimationHelper.[cpp,h]. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D79944
2020-06-17 22:38:30 +00:00