Backed out 2 changesets (bug 1818329) for causing wpt failures

Backed out changeset af4cdf10aafd (bug 1818329)
Backed out changeset 8c7eb3fca5a8 (bug 1818329)
This commit is contained in:
Noemi Erli 2023-02-25 07:41:14 +02:00
parent aba64945f3
commit d521cb7246
17 changed files with 338 additions and 36 deletions

View file

@ -611,8 +611,8 @@ bool Gecko_MediaFeatures_WindowsNonNativeMenus(const mozilla::dom::Document*);
bool Gecko_MediaFeatures_ShouldAvoidNativeTheme(const mozilla::dom::Document*);
bool Gecko_MediaFeatures_UseOverlayScrollbars(const mozilla::dom::Document*);
int32_t Gecko_MediaFeatures_GetColorDepth(const mozilla::dom::Document*);
int32_t Gecko_MediaFeatures_GetMonochromeBitsPerPixel(
uint32_t Gecko_MediaFeatures_GetColorDepth(const mozilla::dom::Document*);
uint32_t Gecko_MediaFeatures_GetMonochromeBitsPerPixel(
const mozilla::dom::Document*);
mozilla::dom::ScreenColorGamut Gecko_MediaFeatures_ColorGamut(
const mozilla::dom::Document*);

View file

@ -131,12 +131,12 @@ void Gecko_MediaFeatures_GetDeviceSize(const Document* aDocument,
*aHeight = size.height;
}
int32_t Gecko_MediaFeatures_GetMonochromeBitsPerPixel(
uint32_t Gecko_MediaFeatures_GetMonochromeBitsPerPixel(
const Document* aDocument) {
// The default bits per pixel for a monochrome device. We could propagate this
// further to nsIPrintSettings, but Gecko doesn't actually know this value
// from the hardware, so it seems silly to do so.
static constexpr int32_t kDefaultMonochromeBpp = 8;
static constexpr uint32_t kDefaultMonochromeBpp = 8;
nsPresContext* pc = aDocument->GetPresContext();
if (!pc) {
@ -162,7 +162,7 @@ dom::ScreenColorGamut Gecko_MediaFeatures_ColorGamut(
return colorGamut;
}
int32_t Gecko_MediaFeatures_GetColorDepth(const Document* aDocument) {
uint32_t Gecko_MediaFeatures_GetColorDepth(const Document* aDocument) {
if (Gecko_MediaFeatures_GetMonochromeBitsPerPixel(aDocument) != 0) {
// If we're a monochrome device, then the color depth is zero.
return 0;
@ -170,7 +170,7 @@ int32_t Gecko_MediaFeatures_GetColorDepth(const Document* aDocument) {
// Use depth of 24 when resisting fingerprinting, or when we're not being
// rendered.
int32_t depth = 24;
uint32_t depth = 24;
if (!aDocument->ShouldResistFingerprinting()) {
if (nsDeviceContext* dx = GetDeviceContextFor(aDocument)) {

View file

@ -96,10 +96,10 @@
css: "@media (min-width >= 3px) {}",
error: "Unexpected operator in media list.",
}, {
css: "@media (device-height: three) {}",
css: "@media (device-height: -1px) {}",
error: "Found invalid value for media feature.",
}, {
css: "@media (min-width: foo) {}",
css: "@media (min-width: -1px) {}",
error: "Found invalid value for media feature.",
}, {
css: "@media (min-resolution: 2) {}",

View file

@ -248,19 +248,12 @@ function run() {
expression_should_be_known(feature + " " + separator + " 1px");
expression_should_be_known(feature + " " + separator + " 0.001mm");
expression_should_be_known(feature + " " + separator + " 100000px");
expression_should_be_known(feature + " " + separator + " -1px");
if (separator == ":") {
expression_should_be_known("min-" + feature + " " + separator + " -0");
expression_should_be_known("max-" + feature + " " + separator + " -0");
expression_should_be_known("min-" + feature + " " + separator + " -1px");
expression_should_be_known("max-" + feature + " " + separator + " -1px");
expression_should_be_known(feature + " " + separator + " -0.00001mm");
expression_should_be_known(feature + " " + separator + " -100000em");
} else {
expression_should_not_be_known("min-" + feature + " " + separator + " -0");
expression_should_not_be_known("max-" + feature + " " + separator + " -0");
expression_should_not_be_known("min-" + feature + " " + separator + " -1px");
expression_should_not_be_known("max-" + feature + " " + separator + " -1px");
let multi_range = "0px " + separator + " " + feature + " " + separator + " 100000px"
if (separator == "=") {
expression_should_not_be_known(multi_range);
@ -273,6 +266,11 @@ function run() {
} else if (separator == "<=") {
expression_should_not_be_known(feature + " < = 0px");
}
expression_should_not_be_known(feature + " " + separator + " -1px");
expression_should_not_be_known("min-" + feature + " " + separator + " -1px");
expression_should_not_be_known("max-" + feature + " " + separator + " -1px");
expression_should_not_be_known(feature + " " + separator + " -0.00001mm");
expression_should_not_be_known(feature + " " + separator + " -100000em");
}
}
@ -589,8 +587,8 @@ function run() {
expression_should_be_known(feature + ": 1");
expression_should_be_known(feature + ": 327");
expression_should_be_known(feature + ": 0");
expression_should_be_known(feature + ": -1");
expression_should_not_be_known(feature + ": 1.0");
expression_should_not_be_known(feature + ": -1");
expression_should_not_be_known(feature + ": 1/1");
}
@ -617,10 +615,10 @@ function run() {
expression_should_be_known(feature + ": 1.5dppx");
expression_should_be_known(feature + ": 1.5x");
expression_should_be_known(feature + ": 2.0dppx");
expression_should_be_known(feature + ": 0dpi");
expression_should_be_known(feature + ": -3dpi");
expression_should_be_known(feature + ": 0dppx");
expression_should_be_known(feature + ": 0x");
expression_should_not_be_known(feature + ": 0dpi");
expression_should_not_be_known(feature + ": -3dpi");
expression_should_not_be_known(feature + ": 0dppx");
expression_should_not_be_known(feature + ": 0x");
}
// Find the resolution using max-resolution

View file

@ -126,18 +126,18 @@ fn eval_scan(_: &Context, _: Option<Scan>) -> bool {
}
/// https://drafts.csswg.org/mediaqueries-4/#color
fn eval_color(context: &Context) -> i32 {
fn eval_color(context: &Context) -> u32 {
unsafe { bindings::Gecko_MediaFeatures_GetColorDepth(context.device().document()) }
}
/// https://drafts.csswg.org/mediaqueries-4/#color-index
fn eval_color_index(_: &Context) -> i32 {
fn eval_color_index(_: &Context) -> u32 {
// We should return zero if the device does not use a color lookup table.
0
}
/// https://drafts.csswg.org/mediaqueries-4/#monochrome
fn eval_monochrome(context: &Context) -> i32 {
fn eval_monochrome(context: &Context) -> u32 {
// For color devices we should return 0.
unsafe { bindings::Gecko_MediaFeatures_GetMonochromeBitsPerPixel(context.device().document()) }
}

View file

@ -36,7 +36,7 @@ pub type KeywordParser = for<'a, 'i, 't> fn(
pub enum Evaluator {
Length(QueryFeatureGetter<CSSPixelLength>),
OptionalLength(QueryFeatureGetter<Option<CSSPixelLength>>),
Integer(QueryFeatureGetter<i32>),
Integer(QueryFeatureGetter<u32>),
Float(QueryFeatureGetter<f32>),
BoolInteger(QueryFeatureGetter<bool>),
/// A non-negative number ratio, such as the one from device-pixel-ratio.

View file

@ -663,8 +663,8 @@ impl QueryFeatureExpression {
pub enum QueryExpressionValue {
/// A length.
Length(Length),
/// An integer.
Integer(i32),
/// A (non-negative) integer.
Integer(u32),
/// A floating point value.
Float(CSSFloat),
/// A boolean value, specified as an integer (i.e., either 0 or 1).
@ -705,12 +705,12 @@ impl QueryExpressionValue {
) -> Result<QueryExpressionValue, ParseError<'i>> {
Ok(match for_feature.evaluator {
Evaluator::OptionalLength(..) | Evaluator::Length(..) => {
let length = Length::parse(context, input)?;
let length = Length::parse_non_negative(context, input)?;
QueryExpressionValue::Length(length)
},
Evaluator::Integer(..) => {
let integer = Integer::parse(context, input)?;
QueryExpressionValue::Integer(integer.value())
let integer = Integer::parse_non_negative(context, input)?;
QueryExpressionValue::Integer(integer.value() as u32)
},
Evaluator::BoolInteger(..) => {
let integer = Integer::parse_non_negative(context, input)?;

View file

@ -60,6 +60,10 @@ impl Parse for Resolution {
ref t => return Err(location.new_unexpected_token_error(t.clone())),
};
if value <= 0. {
return Err(location.new_custom_error(StyleParseErrorKind::UnspecifiedError));
}
match_ignore_ascii_case! { &unit,
"dpi" => Ok(Resolution::Dpi(value)),
"dppx" => Ok(Resolution::Dppx(value)),

View file

@ -0,0 +1 @@
[min-width-tables-001.html]

View file

@ -0,0 +1,3 @@
[mq-dynamic-empty-children.html]
expected:
if (os == "android") and fission: [TIMEOUT, OK]

View file

@ -0,0 +1,2 @@
[mq-negative-range-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[mq-negative-range-002.html]
expected: FAIL

View file

@ -1,2 +1,4 @@
[prefers-contrast.html]
prefs: [layout.css.prefers-contrast.enabled:true]
expected:
if (os == "android") and fission: [OK, TIMEOUT]

View file

@ -0,0 +1,3 @@
[prefers-reduced-motion.html]
expected:
if (os == "android") and fission: [OK, TIMEOUT]

View file

@ -0,0 +1,287 @@
[test_media_queries.html]
expected:
if (os == "android") and fission: [OK, TIMEOUT]
[expression_should_be_known: width : -1px]
expected: FAIL
[expression_should_be_known: min-width : -1px]
expected: FAIL
[expression_should_be_known: max-width : -1px]
expected: FAIL
[expression_should_be_known: width : -0.00001mm]
expected: FAIL
[expression_should_be_known: width : -100000em]
expected: FAIL
[expression_should_be_known: width > -1px]
expected: FAIL
[expression_should_be_known: width > -0.00001mm]
expected: FAIL
[expression_should_be_known: width > -100000em]
expected: FAIL
[expression_should_be_known: width >= -1px]
expected: FAIL
[expression_should_be_known: width >= -0.00001mm]
expected: FAIL
[expression_should_be_known: width >= -100000em]
expected: FAIL
[expression_should_be_known: width = -1px]
expected: FAIL
[expression_should_be_known: width = -0.00001mm]
expected: FAIL
[expression_should_be_known: width = -100000em]
expected: FAIL
[expression_should_be_known: width <= -1px]
expected: FAIL
[expression_should_be_known: width <= -0.00001mm]
expected: FAIL
[expression_should_be_known: width <= -100000em]
expected: FAIL
[expression_should_be_known: width < -1px]
expected: FAIL
[expression_should_be_known: width < -0.00001mm]
expected: FAIL
[expression_should_be_known: width < -100000em]
expected: FAIL
[expression_should_be_known: height : -1px]
expected: FAIL
[expression_should_be_known: min-height : -1px]
expected: FAIL
[expression_should_be_known: max-height : -1px]
expected: FAIL
[expression_should_be_known: height : -0.00001mm]
expected: FAIL
[expression_should_be_known: height : -100000em]
expected: FAIL
[expression_should_be_known: height > -1px]
expected: FAIL
[expression_should_be_known: height > -0.00001mm]
expected: FAIL
[expression_should_be_known: height > -100000em]
expected: FAIL
[expression_should_be_known: height >= -1px]
expected: FAIL
[expression_should_be_known: height >= -0.00001mm]
expected: FAIL
[expression_should_be_known: height >= -100000em]
expected: FAIL
[expression_should_be_known: height = -1px]
expected: FAIL
[expression_should_be_known: height = -0.00001mm]
expected: FAIL
[expression_should_be_known: height = -100000em]
expected: FAIL
[expression_should_be_known: height <= -1px]
expected: FAIL
[expression_should_be_known: height <= -0.00001mm]
expected: FAIL
[expression_should_be_known: height <= -100000em]
expected: FAIL
[expression_should_be_known: height < -1px]
expected: FAIL
[expression_should_be_known: height < -0.00001mm]
expected: FAIL
[expression_should_be_known: height < -100000em]
expected: FAIL
[expression_should_be_known: device-width : -1px]
expected: FAIL
[expression_should_be_known: min-device-width : -1px]
expected: FAIL
[expression_should_be_known: max-device-width : -1px]
expected: FAIL
[expression_should_be_known: device-width : -0.00001mm]
expected: FAIL
[expression_should_be_known: device-width : -100000em]
expected: FAIL
[expression_should_be_known: device-width > -1px]
expected: FAIL
[expression_should_be_known: device-width > -0.00001mm]
expected: FAIL
[expression_should_be_known: device-width > -100000em]
expected: FAIL
[expression_should_be_known: device-width >= -1px]
expected: FAIL
[expression_should_be_known: device-width >= -0.00001mm]
expected: FAIL
[expression_should_be_known: device-width >= -100000em]
expected: FAIL
[expression_should_be_known: device-width = -1px]
expected: FAIL
[expression_should_be_known: device-width = -0.00001mm]
expected: FAIL
[expression_should_be_known: device-width = -100000em]
expected: FAIL
[expression_should_be_known: device-width <= -1px]
expected: FAIL
[expression_should_be_known: device-width <= -0.00001mm]
expected: FAIL
[expression_should_be_known: device-width <= -100000em]
expected: FAIL
[expression_should_be_known: device-width < -1px]
expected: FAIL
[expression_should_be_known: device-width < -0.00001mm]
expected: FAIL
[expression_should_be_known: device-width < -100000em]
expected: FAIL
[expression_should_be_known: device-height : -1px]
expected: FAIL
[expression_should_be_known: min-device-height : -1px]
expected: FAIL
[expression_should_be_known: max-device-height : -1px]
expected: FAIL
[expression_should_be_known: device-height : -0.00001mm]
expected: FAIL
[expression_should_be_known: device-height : -100000em]
expected: FAIL
[expression_should_be_known: device-height > -1px]
expected: FAIL
[expression_should_be_known: device-height > -0.00001mm]
expected: FAIL
[expression_should_be_known: device-height > -100000em]
expected: FAIL
[expression_should_be_known: device-height >= -1px]
expected: FAIL
[expression_should_be_known: device-height >= -0.00001mm]
expected: FAIL
[expression_should_be_known: device-height >= -100000em]
expected: FAIL
[expression_should_be_known: device-height = -1px]
expected: FAIL
[expression_should_be_known: device-height = -0.00001mm]
expected: FAIL
[expression_should_be_known: device-height = -100000em]
expected: FAIL
[expression_should_be_known: device-height <= -1px]
expected: FAIL
[expression_should_be_known: device-height <= -0.00001mm]
expected: FAIL
[expression_should_be_known: device-height <= -100000em]
expected: FAIL
[expression_should_be_known: device-height < -1px]
expected: FAIL
[expression_should_be_known: device-height < -0.00001mm]
expected: FAIL
[expression_should_be_known: device-height < -100000em]
expected: FAIL
[expression_should_be_known: color: -1]
expected: FAIL
[expression_should_be_known: min-monochrome: -1]
expected: FAIL
[expression_should_be_known: max-color-index: -1]
expected: FAIL
[expression_should_be_known: resolution: 0dpi]
expected: FAIL
[expression_should_be_known: resolution: -3dpi]
expected: FAIL
[expression_should_be_known: resolution: 0dppx]
expected: FAIL
[expression_should_be_known: resolution: 0x]
expected: FAIL
[expression_should_be_known: min-resolution: 0dpi]
expected: FAIL
[expression_should_be_known: min-resolution: -3dpi]
expected: FAIL
[expression_should_be_known: min-resolution: 0dppx]
expected: FAIL
[expression_should_be_known: min-resolution: 0x]
expected: FAIL
[expression_should_be_known: max-resolution: 0dpi]
expected: FAIL
[expression_should_be_known: max-resolution: -3dpi]
expected: FAIL
[expression_should_be_known: max-resolution: 0dppx]
expected: FAIL
[expression_should_be_known: max-resolution: 0x]
expected: FAIL

View file

@ -4,13 +4,13 @@
<link rel="author" title="Traian Captan" href="mailto:tcaptan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-images-4/#image-set-notation">
<link rel="match" href="reference/image-set-rendering-ref.html">
<meta name="assert" content="image-set rendering with zero resolution">
<meta name="assert" content="image-set rendering when resolution is invalid">
<style>
#test {
background-image: url("/images/red.png");
background-image: url("/images/green.png");
background-image: image-set(
url("/images/green.png") 0x,
url("/images/green.png") 2x
url("/images/red.png") 0x,
url("/images/red.png") 2x
);
width: 100px;
height: 100px;

View file

@ -4,11 +4,11 @@
<link rel="author" title="Traian Captan" href="mailto:tcaptan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-images-4/#image-set-notation">
<link rel="match" href="reference/image-set-rendering-ref.html">
<meta name="assert" content="image-set rendering with zero resolution">
<meta name="assert" content="image-set rendering when resolution is invalid">
<style>
#test {
background-image: url("/images/red.png");
background-image: image-set(url("/images/green.png") 0x);
background-image: url("/images/green.png");
background-image: image-set(url("/images/red.png") 0x);
width: 100px;
height: 100px;
}