Bug 1685078 - More explicitly fall back for broken images, as sync decoding will happily paint blank in that case.

MANUAL PUSH: Orange in a CLOSED TREE
This commit is contained in:
Emilio Cobos Álvarez 2021-01-08 17:29:06 +01:00
Родитель 35c73ab9bc
Коммит 7955c80338
1 изменённых файлов: 15 добавлений и 10 удалений

Просмотреть файл

@ -574,7 +574,21 @@ Maybe<BulletRenderer> nsBulletFrame::CreateBulletRenderer(
CounterStyle* listStyleType = ResolveCounterStyle();
nsMargin padding = mPadding.GetPhysicalMargin(GetWritingMode());
const auto& image = StyleList()->mListStyleImage;
if (!image.IsNone()) {
const bool isValidImage = [&] {
if (image.IsNone()) {
return false;
}
if (auto* request = image.GetImageRequest()) {
uint32_t status = imgIRequest::STATUS_ERROR;
request->GetImageStatus(&status);
if (status & imgIRequest::STATUS_ERROR) {
return false;
}
}
return true;
}();
if (isValidImage) {
nsRect dest(padding.left, padding.top,
mRect.width - (padding.left + padding.right),
mRect.height - (padding.top + padding.bottom));
@ -584,15 +598,6 @@ Maybe<BulletRenderer> nsBulletFrame::CreateBulletRenderer(
return Some(br);
}
*aDrawResult = br.PrepareResult();
if (auto* request = image.GetImageRequest()) {
uint32_t status = imgIRequest::STATUS_ERROR;
request->GetImageStatus(&status);
if (status & imgIRequest::STATUS_ERROR) {
// Don't report errored images as not-yet-ready, just fall back to
// drawing the regular bullet.
*aDrawResult = ImgDrawResult::SUCCESS;
}
}
}
nscolor color = nsLayoutUtils::GetColor(this, &nsStyleText::mColor);