Matthew Olsson
c1ab6ca6b4
LibWeb: Do not invalidate elements with animations in the CSS cascade
...
See the note added to Animation::cancel for more info
2024-03-02 19:58:12 +01:00
Matthew Olsson
921f6c1e78
LibWeb: Run play tasks before pause tasks
...
The logic of play() and pause() assumes this to be the case
2024-02-25 21:12:42 +00:00
Matthew Olsson
d2cfea5acc
LibWeb: Add Animation event handler attributes
2024-02-23 21:23:57 +01:00
Matthew Olsson
2dd5d0c310
LibWeb: Implement Animation.reverse()
2024-02-23 21:23:57 +01:00
Matthew Olsson
9ab73f2675
LibWeb: Implement Animation.updatePlaybackRate()
2024-02-23 21:23:57 +01:00
Matthew Olsson
d351389d72
LibWeb: Implement Animation.persist()
2024-02-23 21:23:57 +01:00
Matthew Olsson
3c055ff76d
LibWeb: Implement Animation.cancel()
2024-02-23 21:23:57 +01:00
Matthew Olsson
9abe472928
LibWeb: Implement Animation.finish()
2024-02-23 21:23:57 +01:00
Matthew Olsson
c0b9179d9a
LibWeb: Implement Animation.pause()
2024-02-23 21:23:57 +01:00
Matthew Olsson
ae3326a447
LibWeb: Transition StyleComputer to Web Animations
...
With this commit, we are finally running animations off of the web
animations spec! A lot of the work StyleComputer is doing is now done
elsewhere. For example, fill-forward animations are handled by
Animation::is_relevant() returning true in the after phase, meaning the
"active_state_if_fill_forward" map is no longer needed.
2024-02-23 20:52:37 +01:00
Matthew Olsson
10fddb99fc
LibWeb: Implement Document::remove_replaced_animations()
2024-02-22 07:31:54 +01:00
Matthew Olsson
145ae54718
LibWeb: Add a few Animation/AnimationEffect getters
2024-02-21 19:52:35 +01:00
Matthew Olsson
06a8674eec
LibWeb: Simplify Animation::update_finished_state a bit
...
This removes the two boolean hack in favor of using the existing
mechanism to remove queued tasks. It also exposes the element
invalidation behavior for call sites that don't necessarily want to
update the finished state, but still need to invalidate the associated
target.
2024-02-21 19:52:35 +01:00
Matthew Olsson
1e37ba5515
LibWeb: Expose Animation::is_finished()
...
This will be required to handle forward-fill state in StyleComputer
2024-02-21 19:52:35 +01:00
Matthew Olsson
2ade834655
LibWeb: Add Animation::is_replaceable()
2024-02-21 19:52:35 +01:00
Matthew Olsson
ceb9d0f8dc
LibWeb: Record position of Animations in global animation list
...
"position of an Animation in the global animation list" is a fancy way
of saying "which animation object was created first"
2024-02-21 19:52:35 +01:00
Matthew Olsson
cac11ac891
LibWeb: Use [ExplicitNull] in Animation.idl
2024-02-19 14:51:56 -05:00
Matthew Olsson
3721a1a81c
LibWeb: Run update_finished_state when setting AnimationEffect's timing
...
This will need to a necessary style invalidation
2024-02-16 12:02:11 -07:00
Matthew Olsson
ce99636cd0
LibWeb: Fix check for missing argument in Animation constructor
...
Receiving a null argument has a different result than not passing an
argument at all.
2024-02-16 12:02:11 -07:00
Matthew Olsson
727a9a6472
LibWeb: Run pending play tasks when the timeline time changes
...
Note that the timeline time changes every animation frame when the
Document sends out animation events
2024-02-15 12:34:19 +01:00
Matthew Olsson
4792dc294b
LibWeb: Implement Animation::play
2024-02-15 12:34:19 +01:00
Matthew Olsson
88518c29ca
LibWeb: Combine "pending" and "ASAP" animation task states
...
It seems that the difference between pending and ASAP in the spec is
only to allow the implementation to perform implementation-defined
operations between the two states. We don't need to distinguish the two
states, so lets just combine them for now.
2024-02-15 12:34:19 +01:00
Matthew Olsson
154b4d4196
LibWeb: Invalidate style of animation targets in update_finished_state
2024-02-06 08:42:07 +01:00
Matthew Olsson
16a21a503d
LibWeb: Fix incorrect comparison in Animation::update_finished_state
2024-02-06 08:42:07 +01:00
Matthew Olsson
8c80d0ee02
LibWeb: Fix typo (original_relative_time -> origin_relative_time)
2024-02-06 08:42:07 +01:00
Shannon Booth
96af80acd1
LibWeb: Port Intrinsics from DeprecatedString
2023-11-28 17:15:27 -05:00
Andreas Kling
bfd354492e
LibWeb: Put most LibWeb GC objects in type-specific heap blocks
...
With this change, we now have ~1200 CellAllocators across both LibJS and
LibWeb in a normal WebContent instance.
This gives us a minimum heap size of 4.7 MiB in the scenario where we
only have one cell allocated per type. Of course, in practice there will
be many more of each type, so the effective overhead is quite a bit
smaller than that in practice.
I left a few types unconverted to this mechanism because I got tired of
doing this. :^)
2023-11-19 22:00:48 +01:00
Matthew Olsson
536596632b
LibWeb: Implement Animation::update_finished_state
2023-11-19 18:54:37 +01:00
Matthew Olsson
8053d40fd5
LibWeb: Add Animation helpers needed for update_finished_state
2023-11-19 18:54:37 +01:00
Matthew Olsson
fe40bdfc01
LibWeb: Implement Animation::play_state
2023-11-11 22:45:16 +01:00
Matthew Olsson
8039fe78cd
LibWeb: Implement Animation::set_playback_rate
2023-11-11 22:45:16 +01:00
Matthew Olsson
749462f3df
LibWeb: Implement Animation::set_current_time
2023-11-11 22:45:16 +01:00
Matthew Olsson
f898b49c8e
LibWeb: Implement Animation::current_time
2023-11-11 22:45:16 +01:00
Matthew Olsson
9802995de8
LibWeb: Track an Animation's play/pause task state
...
This only tracks whether the relevant steps should be executed at some
future (but very soon) time. This time will eventually be whenever the
"update animations and send events" procedure is invoked.
2023-11-11 22:45:16 +01:00
Matthew Olsson
422f43f4fc
LibWeb: Implement Animation::set_start_time
2023-11-11 22:45:16 +01:00
Matthew Olsson
4889f53880
LibWeb: Implement Animation::set_timeline
2023-11-11 22:45:16 +01:00
Matthew Olsson
2358f64d00
LibWeb: Implement Animation::set_effect()
2023-11-09 16:08:50 +01:00
Matthew Olsson
1ca46afa2f
LibWeb: Add the Animation IDL object
2023-11-08 09:58:18 +01:00