forked from mirrors/gecko-dev
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:
parent
aba64945f3
commit
d521cb7246
17 changed files with 338 additions and 36 deletions
|
|
@ -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*);
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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) {}",
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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()) }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)?;
|
||||
|
|
|
|||
|
|
@ -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)),
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
[min-width-tables-001.html]
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
[mq-dynamic-empty-children.html]
|
||||
expected:
|
||||
if (os == "android") and fission: [TIMEOUT, OK]
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[mq-negative-range-001.html]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[mq-negative-range-002.html]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +1,4 @@
|
|||
[prefers-contrast.html]
|
||||
prefs: [layout.css.prefers-contrast.enabled:true]
|
||||
expected:
|
||||
if (os == "android") and fission: [OK, TIMEOUT]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
[prefers-reduced-motion.html]
|
||||
expected:
|
||||
if (os == "android") and fission: [OK, TIMEOUT]
|
||||
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}
|
||||
Loading…
Reference in a new issue