Bug 1727172 - Use doubles instead of ints when computing video scale for fallback painting. r=jrmuizel

Differential Revision: https://phabricator.services.mozilla.com/D123411
This commit is contained in:
Matt Woodrow 2021-08-25 04:18:01 +00:00
Родитель 179512798b
Коммит 00be3c92c2
4 изменённых файлов: 23 добавлений и 2 удалений

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

@ -635,8 +635,8 @@ class nsDisplayVideo : public nsPaintedDisplayItem {
static_cast<int32_t>(destGFXRect.Height()));
// scaleHint is set regardless of rotation, so swap w/h if needed.
SwapScaleWidthHeightForRotation(scaleToSize, rotationDeg);
transform.PreScale(scaleToSize.width / size.Width(),
scaleToSize.height / size.Height());
transform.PreScale(scaleToSize.width / double(size.Width()),
scaleToSize.height / double(size.Height()));
gfxContextMatrixAutoSaveRestore saveMatrix(aCtx);
aCtx->SetMatrix(

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

@ -0,0 +1,6 @@
<!DOCTYPE HTML>
<html>
<body style="background:white;">
<div style="width:56px; height:40px; position:relative; left:142px; top:100px; background:black;"></div>
</body>
</html>

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

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1">
<!-- use an empty g to force filters.svg to load before onload -->
<use xlink:href="../filters.svg#empty" />
<foreignObject filter="url(../filters.svg#ThresholdRGB)" x="0" y="0" height="100%" width="100%">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<body style="background:white;">
<video src="../webm-video/black140x100.webm" style="width:340px; height:40px; position:relative; top:100px;"></video>
</body>
</html>
</foreignObject>
</svg>

После

Ширина:  |  Высота:  |  Размер: 612 B

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

@ -2102,3 +2102,4 @@ fuzzy(0-2,0-96600) == 1648282-1b.html 1648282-1-ref.html
== 1686729-1.html 1686729-1-ref.html
!= chrome://reftest/content/bugs/1688004.xhtml about:blank
skip-if(!appleSilicon) != 1721223-1.html 1721223-1-notref.html # Big Sur required for updated system font; OSX value is clamped to 10.15
skip-if(Android) == 1727172-1.xhtml 1727172-1-ref.html