mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
tidy: Clean up warnings and tidy lints.
This commit is contained in:
parent
cb3da24f08
commit
9cf2e52d36
8 changed files with 78 additions and 76 deletions
|
@ -12,9 +12,8 @@ use msg::constellation_msg::PipelineId;
|
|||
use script_layout_interface::restyle_damage::RestyleDamage;
|
||||
use script_traits::{AnimationState, LayoutMsg as ConstellationMsg};
|
||||
use std::collections::HashMap;
|
||||
use std::collections::hash_map::Entry;
|
||||
use std::sync::mpsc::Receiver;
|
||||
use style::animation::{Animation, KeyframesAnimationState, KeyframesIterationState, update_style_for_animation};
|
||||
use style::animation::{Animation, KeyframesIterationState, update_style_for_animation};
|
||||
use time;
|
||||
|
||||
/// Processes any new animations that were discovered after style recalculation.
|
||||
|
|
|
@ -6,26 +6,24 @@
|
|||
|
||||
use app_units::Au;
|
||||
use bezier::Bezier;
|
||||
use euclid::point::Point2D;
|
||||
use context::SharedStyleContext;
|
||||
use dom::{OpaqueNode, TRestyleDamage};
|
||||
use keyframes::KeyframesAnimation;
|
||||
use euclid::point::Point2D;
|
||||
use keyframes::KeyframesStep;
|
||||
use properties::animated_properties::{AnimatedProperty, TransitionProperty};
|
||||
use properties::longhands::animation_iteration_count::computed_value::AnimationIterationCount;
|
||||
use properties::longhands::animation_play_state::computed_value::AnimationPlayState;
|
||||
use properties::longhands::transition_timing_function::computed_value::StartEnd;
|
||||
use properties::longhands::transition_timing_function::computed_value::TransitionTimingFunction;
|
||||
use properties::longhands::animation_play_state::computed_value::AnimationPlayState;
|
||||
use properties::longhands::animation_iteration_count::computed_value::AnimationIterationCount;
|
||||
use properties::style_struct_traits::Box;
|
||||
use properties::{ComputedValues, ServoComputedValues};
|
||||
use properties::{self, ComputedValues};
|
||||
use selector_impl::SelectorImplExt;
|
||||
use selectors::matching::DeclarationBlock;
|
||||
use std::sync::mpsc::Sender;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use string_cache::Atom;
|
||||
use time;
|
||||
use values::computed::Time;
|
||||
use selector_impl::SelectorImplExt;
|
||||
use context::SharedStyleContext;
|
||||
use selectors::matching::DeclarationBlock;
|
||||
use string_cache::Atom;
|
||||
use properties;
|
||||
|
||||
/// This structure represents a keyframes animation current iteration state.
|
||||
///
|
||||
|
@ -392,7 +390,8 @@ where Impl: SelectorImplExt,
|
|||
total_progress = 1.;
|
||||
}
|
||||
|
||||
debug!("update_style_for_animation: anim \"{}\", steps: {:?}, state: {:?}, progress: {}", name, animation.steps, state, total_progress);
|
||||
debug!("update_style_for_animation: anim \"{}\", steps: {:?}, state: {:?}, progress: {}",
|
||||
name, animation.steps, state, total_progress);
|
||||
|
||||
let mut last_keyframe_position = None;
|
||||
let mut target_keyframe_position = None;
|
||||
|
@ -410,14 +409,16 @@ where Impl: SelectorImplExt,
|
|||
}
|
||||
}
|
||||
|
||||
debug!("update_style_for_animation: keyframe from {:?} to {:?}", last_keyframe_position, target_keyframe_position);
|
||||
debug!("update_style_for_animation: keyframe from {:?} to {:?}",
|
||||
last_keyframe_position, target_keyframe_position);
|
||||
|
||||
let target_keyframe = match target_keyframe_position {
|
||||
Some(target) => &animation.steps[target],
|
||||
None => {
|
||||
// TODO: The 0. case falls here, maybe we should just resort
|
||||
// to the first keyframe instead.
|
||||
warn!("update_style_for_animation: No current keyframe found for animation \"{}\" at progress {}", name, total_progress);
|
||||
warn!("update_style_for_animation: No current keyframe found for animation \"{}\" at progress {}",
|
||||
name, total_progress);
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
@ -425,12 +426,14 @@ where Impl: SelectorImplExt,
|
|||
let last_keyframe = match last_keyframe_position {
|
||||
Some(last) => &animation.steps[last],
|
||||
None => {
|
||||
warn!("update_style_for_animation: No last keyframe found for animation \"{}\" at progress {}", name, total_progress);
|
||||
warn!("update_style_for_animation: No last keyframe found for animation \"{}\" at progress {}",
|
||||
name, total_progress);
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
let relative_duration = (target_keyframe.start_percentage.0 - last_keyframe.start_percentage.0) as f64 * duration;
|
||||
let relative_timespan = target_keyframe.start_percentage.0 - last_keyframe.start_percentage.0;
|
||||
let relative_duration = relative_timespan as f64 * duration;
|
||||
let last_keyframe_ended_at = state.started_at + (total_duration * last_keyframe.start_percentage.0 as f64);
|
||||
let relative_progress = (now - last_keyframe_ended_at) / relative_duration;
|
||||
|
||||
|
@ -446,25 +449,32 @@ where Impl: SelectorImplExt,
|
|||
timing_function = from_style.as_servo().get_box().animation_timing_function.0[0];
|
||||
}
|
||||
|
||||
let mut target_style = compute_style_for_animation_step(context,
|
||||
target_keyframe,
|
||||
&from_style);
|
||||
let target_style = compute_style_for_animation_step(context,
|
||||
target_keyframe,
|
||||
&from_style);
|
||||
|
||||
let mut new_style = (*style).clone();
|
||||
let mut style_changed = false;
|
||||
|
||||
for transition_property in &animation.properties_changed {
|
||||
debug!("update_style_for_animation: scanning prop {:?} for animation \"{}\"", transition_property, name);
|
||||
if let Some(property_animation) = PropertyAnimation::from_transition_property(*transition_property,
|
||||
timing_function,
|
||||
Time(relative_duration as f32),
|
||||
&from_style,
|
||||
&target_style) {
|
||||
debug!("update_style_for_animation: scanning prop {:?} for animation \"{}\"",
|
||||
transition_property, name);
|
||||
match PropertyAnimation::from_transition_property(*transition_property,
|
||||
timing_function,
|
||||
Time(relative_duration as f32),
|
||||
&from_style,
|
||||
&target_style) {
|
||||
Some(property_animation) => {
|
||||
debug!("update_style_for_animation: got property animation for prop {:?}", transition_property);
|
||||
debug!("update_style_for_animation: {:?}", property_animation);
|
||||
property_animation.update(Arc::make_mut(&mut new_style), relative_progress);
|
||||
style_changed = true;
|
||||
}
|
||||
None => {
|
||||
debug!("update_style_for_animation: property animation {:?} not animating",
|
||||
transition_property);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if style_changed {
|
||||
|
|
|
@ -3,10 +3,9 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use cssparser::{Parser, Delimiter};
|
||||
use selectors::matching::DeclarationBlock;
|
||||
use parser::ParserContext;
|
||||
use properties::{ComputedValues, PropertyDeclaration, PropertyDeclarationBlock, parse_property_declaration_list};
|
||||
use properties::animated_properties::TransitionProperty;
|
||||
use properties::{PropertyDeclaration, parse_property_declaration_list};
|
||||
use std::sync::Arc;
|
||||
|
||||
/// Parses a keyframes list, like:
|
||||
|
@ -165,7 +164,7 @@ impl KeyframesAnimation {
|
|||
debug_assert!(keyframes.len() > 1);
|
||||
let mut steps = vec![];
|
||||
|
||||
let mut animated_properties = get_animated_properties(&keyframes[0]);
|
||||
let animated_properties = get_animated_properties(&keyframes[0]);
|
||||
if animated_properties.is_empty() {
|
||||
return None;
|
||||
}
|
||||
|
|
|
@ -27,8 +27,6 @@ use util::arc_ptr_eq;
|
|||
use util::cache::{LRUCache, SimpleHashCache};
|
||||
use util::opts;
|
||||
use util::vec::ForgetfulSink;
|
||||
use properties::longhands::animation_play_state::computed_value::AnimationPlayState;
|
||||
use properties::style_struct_traits::Box;
|
||||
|
||||
fn create_common_style_affecting_attributes_from_element<E: TElement>(element: &E)
|
||||
-> CommonStyleAffectingAttributes {
|
||||
|
@ -662,7 +660,8 @@ pub trait MatchMethods : TNode {
|
|||
local_context: &LocalStyleContext<Self::ConcreteComputedValues>,
|
||||
parent: Option<Self>,
|
||||
applicable_declarations: &ApplicableDeclarations<<Self::ConcreteElement as Element>::Impl>)
|
||||
where <Self::ConcreteElement as Element>::Impl: SelectorImplExt<ComputedValues = Self::ConcreteComputedValues> {
|
||||
where <Self::ConcreteElement as Element>::Impl: SelectorImplExt<ComputedValues = Self::ConcreteComputedValues>
|
||||
{
|
||||
// Get our parent's style. This must be unsafe so that we don't touch the parent's
|
||||
// borrow flags.
|
||||
//
|
||||
|
|
|
@ -19,36 +19,36 @@ def to_camel_case(ident):
|
|||
# https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties
|
||||
def is_known_animatable_property(name):
|
||||
return name in [
|
||||
"-moz-outline-radius", "-moz-outline-radius-bottomleft",
|
||||
"-moz-outline-radius-bottomright", "-moz-outline-radius-topleft",
|
||||
"-moz-outline-radius-topright", "-webkit-text-fill-color",
|
||||
"-webkit-text-stroke", "-webkit-text-stroke-color",
|
||||
"-webkit-touch-callout", "all", "backdrop-filter", "background",
|
||||
"background-color", "background-position", "background-size", "border",
|
||||
"border-bottom", "border-bottom-color", "border-bottom-left-radius",
|
||||
"border-bottom-right-radius", "border-bottom-width", "border-color",
|
||||
"border-left", "border-left-color", "border-left-width", "border-radius",
|
||||
"border-right", "border-right-color", "border-right-width", "border-top",
|
||||
"border-top-color", "border-top-left-radius", "border-top-right-radius",
|
||||
"border-top-width", "border-width", "bottom", "box-shadow", "clip",
|
||||
"clip-path", "color", "column-count", "column-gap", "column-rule",
|
||||
"column-rule-color", "column-rule-width", "column-width", "columns",
|
||||
"filter", "flex", "flex-basis", "flex-grow", "flex-shrink", "font",
|
||||
"font-size", "font-size-adjust", "font-stretch", "font-weight",
|
||||
"grid-column-gap", "grid-gap", "grid-row-gap", "height", "left",
|
||||
"letter-spacing", "line-height", "margin", "margin-bottom",
|
||||
"margin-left", "margin-right", "margin-top", "mask", "mask-position",
|
||||
"mask-size", "max-height", "max-width", "min-height", "min-width",
|
||||
"motion-offset", "motion-rotation", "object-position", "opacity",
|
||||
"order", "outline", "outline-color", "outline-offset", "outline-width",
|
||||
"padding", "padding-bottom", "padding-left", "padding-right",
|
||||
"padding-top", "perspective", "perspective-origin", "right",
|
||||
"scroll-snap-coordinate", "scroll-snap-destination",
|
||||
"shape-image-threshold", "shape-margin", "shape-outside",
|
||||
"text-decoration", "text-decoration-color", "text-emphasis",
|
||||
"text-emphasis-color", "text-indent", "text-shadow", "top", "transform",
|
||||
"transform-origin", "vertical-align", "visibility", "width",
|
||||
"word-spacing", "z-index"
|
||||
"-moz-outline-radius", "-moz-outline-radius-bottomleft",
|
||||
"-moz-outline-radius-bottomright", "-moz-outline-radius-topleft",
|
||||
"-moz-outline-radius-topright", "-webkit-text-fill-color",
|
||||
"-webkit-text-stroke", "-webkit-text-stroke-color",
|
||||
"-webkit-touch-callout", "all", "backdrop-filter", "background",
|
||||
"background-color", "background-position", "background-size", "border",
|
||||
"border-bottom", "border-bottom-color", "border-bottom-left-radius",
|
||||
"border-bottom-right-radius", "border-bottom-width", "border-color",
|
||||
"border-left", "border-left-color", "border-left-width", "border-radius",
|
||||
"border-right", "border-right-color", "border-right-width", "border-top",
|
||||
"border-top-color", "border-top-left-radius", "border-top-right-radius",
|
||||
"border-top-width", "border-width", "bottom", "box-shadow", "clip",
|
||||
"clip-path", "color", "column-count", "column-gap", "column-rule",
|
||||
"column-rule-color", "column-rule-width", "column-width", "columns",
|
||||
"filter", "flex", "flex-basis", "flex-grow", "flex-shrink", "font",
|
||||
"font-size", "font-size-adjust", "font-stretch", "font-weight",
|
||||
"grid-column-gap", "grid-gap", "grid-row-gap", "height", "left",
|
||||
"letter-spacing", "line-height", "margin", "margin-bottom",
|
||||
"margin-left", "margin-right", "margin-top", "mask", "mask-position",
|
||||
"mask-size", "max-height", "max-width", "min-height", "min-width",
|
||||
"motion-offset", "motion-rotation", "object-position", "opacity",
|
||||
"order", "outline", "outline-color", "outline-offset", "outline-width",
|
||||
"padding", "padding-bottom", "padding-left", "padding-right",
|
||||
"padding-top", "perspective", "perspective-origin", "right",
|
||||
"scroll-snap-coordinate", "scroll-snap-destination",
|
||||
"shape-image-threshold", "shape-margin", "shape-outside",
|
||||
"text-decoration", "text-decoration-color", "text-emphasis",
|
||||
"text-emphasis-color", "text-indent", "text-shadow", "top", "transform",
|
||||
"transform-origin", "vertical-align", "visibility", "width",
|
||||
"word-spacing", "z-index"
|
||||
]
|
||||
|
||||
|
||||
|
@ -56,11 +56,12 @@ def is_known_animatable_property(name):
|
|||
# following list, and can be implemented removing it from the list and
|
||||
# implementing the Interpolate trait in helpers/animated_properties.mako.rs
|
||||
def is_not_supported_animatable_property(name):
|
||||
return name in [
|
||||
return name in [
|
||||
"flex-basis", "column-width", "column-height", "column-count",
|
||||
"column-gap", "box-shadow", "clip", "filter", "transform-origin",
|
||||
"perspective-origin", "font-stretch", "letter-spacing", "word-spacing",
|
||||
"text-decoration" ]
|
||||
"perspective-origin", "font-stretch", "letter-spacing", "word-spacing",
|
||||
"text-decoration"
|
||||
]
|
||||
|
||||
|
||||
class Keyword(object):
|
||||
|
|
|
@ -3,9 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use app_units::Au;
|
||||
use bezier::Bezier;
|
||||
use cssparser::{Color as CSSParserColor, Parser, RGBA, ToCss};
|
||||
use dom::{OpaqueNode, TRestyleDamage};
|
||||
use euclid::{Point2D, Size2D};
|
||||
use properties::PropertyDeclaration;
|
||||
use properties::longhands;
|
||||
|
@ -20,9 +18,6 @@ use properties::longhands::text_shadow::computed_value::TextShadow;
|
|||
use properties::longhands::transform::computed_value::ComputedMatrix;
|
||||
use properties::longhands::transform::computed_value::ComputedOperation as TransformOperation;
|
||||
use properties::longhands::transform::computed_value::T as TransformList;
|
||||
use properties::longhands::transition_property;
|
||||
use properties::longhands::transition_timing_function::computed_value::StartEnd;
|
||||
use properties::longhands::transition_timing_function::computed_value::TransitionTimingFunction;
|
||||
use properties::longhands::vertical_align::computed_value::T as VerticalAlign;
|
||||
use properties::longhands::visibility::computed_value::T as Visibility;
|
||||
use properties::longhands::z_index::computed_value::T as ZIndex;
|
||||
|
@ -33,7 +28,7 @@ use std::iter::repeat;
|
|||
use super::ComputedValues;
|
||||
use values::computed::{Angle, LengthOrPercentageOrAuto, LengthOrPercentageOrNone};
|
||||
use values::computed::{BorderRadiusSize, LengthOrNone};
|
||||
use values::computed::{CalcLengthOrPercentage, Length, LengthOrPercentage, Time};
|
||||
use values::computed::{CalcLengthOrPercentage, LengthOrPercentage};
|
||||
|
||||
// NB: This needs to be here because it needs all the longhands generated
|
||||
// beforehand.
|
||||
|
@ -143,8 +138,9 @@ impl AnimatedProperty {
|
|||
% for prop in data.longhands:
|
||||
% if prop.animatable:
|
||||
TransitionProperty::${prop.camel_case} => {
|
||||
AnimatedProperty::${prop.camel_case}(old_style.get_${prop.style_struct.ident.strip("_")}().${prop.ident}.clone(),
|
||||
new_style.get_${prop.style_struct.ident.strip("_")}().${prop.ident}.clone())
|
||||
AnimatedProperty::${prop.camel_case}(
|
||||
old_style.get_${prop.style_struct.ident.strip("_")}().${prop.ident}.clone(),
|
||||
new_style.get_${prop.style_struct.ident.strip("_")}().${prop.ident}.clone())
|
||||
}
|
||||
% endif
|
||||
% endfor
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
use std::ascii::AsciiExt;
|
||||
use std::boxed::Box as StdBox;
|
||||
use std::collections::{HashMap, HashSet};
|
||||
use std::collections::HashSet;
|
||||
use std::fmt;
|
||||
use std::fmt::Write;
|
||||
use std::sync::Arc;
|
||||
|
@ -22,7 +22,6 @@ use cssparser::Color as CSSParserColor;
|
|||
use cssparser::{Parser, RGBA, AtRuleParser, DeclarationParser, Delimiter,
|
||||
DeclarationListParser, parse_important, ToCss, TokenSerializationType};
|
||||
use error_reporting::ParseErrorReporter;
|
||||
use keyframes::Keyframe;
|
||||
use url::Url;
|
||||
use euclid::side_offsets::SideOffsets2D;
|
||||
use euclid::size::Size2D;
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
use dom::PresentationalHintsSynthetizer;
|
||||
use element_state::*;
|
||||
use error_reporting::StdoutErrorReporter;
|
||||
use keyframes::Keyframe;
|
||||
use keyframes::KeyframesAnimation;
|
||||
use media_queries::{Device, MediaType};
|
||||
use parser::ParserContextExtraData;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue