mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-07 21:59:54 +00:00
LibWeb: Iterate over fewer properties in start_needed_transitions
We don't need to iterate every property in start_needed_transitions, only those that appear in transition-property or have an existing transition Reduces the time spent in start_needed_transitions from ~5% to ~0.03% when loading https://en.wikipedia.org/wiki/2023_in_American_television
This commit is contained in:
parent
bbb344d534
commit
dd9d6d22ee
Notes:
github-actions[bot]
2025-11-10 11:12:55 +00:00
Author: https://github.com/Calme1709
Commit: dd9d6d22ee
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6773
3 changed files with 58 additions and 28 deletions
|
|
@ -179,6 +179,16 @@ void Animatable::add_transitioned_properties(Optional<CSS::PseudoElement> pseudo
|
|||
}
|
||||
}
|
||||
|
||||
Vector<CSS::PropertyID> Animatable::property_ids_with_matching_transition_property_entry(Optional<CSS::PseudoElement> pseudo_element) const
|
||||
{
|
||||
auto const* maybe_transition = ensure_transition(pseudo_element);
|
||||
|
||||
if (!maybe_transition)
|
||||
return {};
|
||||
|
||||
return maybe_transition->transition_attribute_indices.keys();
|
||||
}
|
||||
|
||||
Optional<Animatable::TransitionAttributes const&> Animatable::property_transition_attributes(Optional<CSS::PseudoElement> pseudo_element, CSS::PropertyID property) const
|
||||
{
|
||||
auto* maybe_transition = ensure_transition(pseudo_element);
|
||||
|
|
@ -190,6 +200,16 @@ Optional<Animatable::TransitionAttributes const&> Animatable::property_transitio
|
|||
return {};
|
||||
}
|
||||
|
||||
Vector<CSS::PropertyID> Animatable::property_ids_with_existing_transitions(Optional<CSS::PseudoElement> pseudo_element) const
|
||||
{
|
||||
auto const* maybe_transition = ensure_transition(pseudo_element);
|
||||
|
||||
if (!maybe_transition)
|
||||
return {};
|
||||
|
||||
return maybe_transition->associated_transitions.keys();
|
||||
}
|
||||
|
||||
GC::Ptr<CSS::CSSTransition> Animatable::property_transition(Optional<CSS::PseudoElement> pseudo_element, CSS::PropertyID property) const
|
||||
{
|
||||
auto* maybe_transition = ensure_transition(pseudo_element);
|
||||
|
|
|
|||
|
|
@ -60,9 +60,11 @@ public:
|
|||
void set_cached_transition_property_source(Optional<CSS::PseudoElement>, GC::Ptr<CSS::CSSStyleDeclaration const> value);
|
||||
|
||||
void add_transitioned_properties(Optional<CSS::PseudoElement>, Vector<Vector<CSS::PropertyID>> properties, CSS::StyleValueVector delays, CSS::StyleValueVector durations, CSS::StyleValueVector timing_functions, CSS::StyleValueVector transition_behaviors);
|
||||
Vector<CSS::PropertyID> property_ids_with_matching_transition_property_entry(Optional<CSS::PseudoElement>) const;
|
||||
Optional<TransitionAttributes const&> property_transition_attributes(Optional<CSS::PseudoElement>, CSS::PropertyID) const;
|
||||
void set_transition(Optional<CSS::PseudoElement>, CSS::PropertyID, GC::Ref<CSS::CSSTransition>);
|
||||
void remove_transition(Optional<CSS::PseudoElement>, CSS::PropertyID);
|
||||
Vector<CSS::PropertyID> property_ids_with_existing_transitions(Optional<CSS::PseudoElement>) const;
|
||||
GC::Ptr<CSS::CSSTransition> property_transition(Optional<CSS::PseudoElement>, CSS::PropertyID) const;
|
||||
void clear_transitions(Optional<CSS::PseudoElement>);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue