mirror of
https://github.com/zen-browser/desktop.git
synced 2025-10-13 13:26:12 +00:00
51 lines
2.2 KiB
C++
51 lines
2.2 KiB
C++
diff --git a/servo/components/style/queries/feature_expression.rs b/servo/components/style/queries/feature_expression.rs
|
|
index 91e1d1572cbd3682ec977f21751e067968ed8884..6e618ac765f698bf3d9ce120167a6906ae3ce5ff 100644
|
|
--- a/servo/components/style/queries/feature_expression.rs
|
|
+++ b/servo/components/style/queries/feature_expression.rs
|
|
@@ -11,7 +11,7 @@ use crate::parser::{Parse, ParserContext};
|
|
use crate::str::{starts_with_ignore_ascii_case, string_as_ascii_lowercase};
|
|
use crate::values::computed::{self, Ratio, ToComputedValue};
|
|
use crate::values::specified::{Integer, Length, Number, Resolution};
|
|
-use crate::values::CSSFloat;
|
|
+use crate::values::{AtomString, CSSFloat};
|
|
use crate::{Atom, Zero};
|
|
use cssparser::{Parser, Token};
|
|
use selectors::kleene_value::KleeneValue;
|
|
@@ -639,6 +639,10 @@ impl QueryFeatureExpression {
|
|
.map(|v| *expect!(Enumerated, v));
|
|
return evaluator(context, computed);
|
|
},
|
|
+ Evaluator::String(evaluator) => {
|
|
+ let string = self.kind.non_ranged_value().map(|v| expect!(String, v));
|
|
+ return evaluator(context, string);
|
|
+ },
|
|
Evaluator::BoolInteger(eval) => {
|
|
let computed = self
|
|
.kind
|
|
@@ -677,6 +681,7 @@ pub enum QueryExpressionValue {
|
|
/// An enumerated value, defined by the variant keyword table in the
|
|
/// feature's `mData` member.
|
|
Enumerated(KeywordDiscriminant),
|
|
+ String(AtomString),
|
|
}
|
|
|
|
impl QueryExpressionValue {
|
|
@@ -695,6 +700,7 @@ impl QueryExpressionValue {
|
|
Evaluator::Enumerated { serializer, .. } => dest.write_str(&*serializer(value)),
|
|
_ => unreachable!(),
|
|
},
|
|
+ QueryExpressionValue::String(ref s) => s.to_css(dest),
|
|
}
|
|
}
|
|
|
|
@@ -732,6 +738,9 @@ impl QueryExpressionValue {
|
|
Evaluator::Resolution(..) => {
|
|
QueryExpressionValue::Resolution(Resolution::parse(context, input)?)
|
|
},
|
|
+ Evaluator::String(..) => {
|
|
+ QueryExpressionValue::String(input.expect_string()?.as_ref().into())
|
|
+ },
|
|
Evaluator::Enumerated { parser, .. } => {
|
|
QueryExpressionValue::Enumerated(parser(context, input)?)
|
|
},
|