зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1836848 - Avoid selecting zero-resolution images in image-set. r=dholbert
Fairly straight-forward. This fixes the two tests mentioned in comment 0 which aren't still in the repo. Differential Revision: https://phabricator.services.mozilla.com/D180414
This commit is contained in:
Родитель
50f933ea0d
Коммит
77f1717931
|
@ -80,24 +80,28 @@ impl ToComputedValue for specified::ImageSet {
|
|||
|
||||
let mut supported_image = false;
|
||||
let mut selected_index = std::usize::MAX;
|
||||
let mut selected_resolution = items[0].resolution.dppx();
|
||||
let mut selected_resolution = 0.0;
|
||||
|
||||
for (i, item) in items.iter().enumerate() {
|
||||
// If the MIME type is not supported, we discard the ImageSetItem
|
||||
if item.has_mime_type && !context.device().is_supported_mime_type(&item.mime_type) {
|
||||
// If the MIME type is not supported, we discard the ImageSetItem.
|
||||
continue;
|
||||
}
|
||||
|
||||
let candidate_resolution = item.resolution.dppx();
|
||||
debug_assert!(candidate_resolution >= 0.0, "Resolutions should be non-negative");
|
||||
if candidate_resolution == 0.0 {
|
||||
// If the resolution is 0, we also treat it as an invalid image.
|
||||
continue;
|
||||
}
|
||||
|
||||
// https://drafts.csswg.org/css-images-4/#image-set-notation:
|
||||
//
|
||||
// Make a UA-specific choice of which to load, based on whatever
|
||||
// criteria deemed relevant (such as the resolution of the
|
||||
// display, connection speed, etc).
|
||||
// Make a UA-specific choice of which to load, based on whatever criteria deemed
|
||||
// relevant (such as the resolution of the display, connection speed, etc).
|
||||
//
|
||||
// For now, select the lowest resolution greater than display
|
||||
// density, otherwise the greatest resolution available
|
||||
// For now, select the lowest resolution greater than display density, otherwise the
|
||||
// greatest resolution available.
|
||||
let better_candidate = || {
|
||||
if selected_resolution < dpr && candidate_resolution > selected_resolution {
|
||||
return true;
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[image-set-zero-resolution-rendering-2.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[image-set-zero-resolution-rendering.html]
|
||||
expected: FAIL
|
Загрузка…
Ссылка в новой задаче