Backed out changeset 8ab5a111e00b to fix orange

This commit is contained in:
Robert O'Callahan 2008-12-18 16:01:16 +13:00
Родитель c63ad60e0b
Коммит 254a8c367e
17 изменённых файлов: 5 добавлений и 123 удалений

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

@ -123,40 +123,22 @@ nsVideoFrame::IsLeaf() const
return PR_TRUE;
}
// Return the largest rectangle that fits in aRect and has the
// same aspect ratio as aRatio, centered at the center of aRect
static gfxRect
CorrectForAspectRatio(const gfxRect& aRect, const nsIntSize& aRatio)
{
NS_ASSERTION(aRatio.width > 0 && aRatio.height > 0 && !aRect.IsEmpty(),
"Nothing to draw");
// Choose scale factor that scales aRatio to just fit into aRect
gfxFloat scale =
PR_MIN(aRect.Width()/aRatio.width, aRect.Height()/aRatio.height);
gfxSize scaledRatio(scale*aRatio.width, scale*aRatio.height);
gfxPoint topLeft((aRect.Width() - scaledRatio.width)/2,
(aRect.Height() - scaledRatio.height)/2);
return gfxRect(aRect.TopLeft() + topLeft, scaledRatio);
}
void
nsVideoFrame::PaintVideo(nsIRenderingContext& aRenderingContext,
const nsRect& aDirtyRect, nsPoint aPt)
{
nsRect area = GetContentRect() - GetPosition() + aPt;
nsHTMLVideoElement* element = static_cast<nsHTMLVideoElement*>(GetContent());
nsIntSize videoSize = element->GetVideoSize(nsIntSize(0, 0));
if (videoSize.width <= 0 || videoSize.height <= 0 || area.IsEmpty())
return;
gfxContext* ctx = static_cast<gfxContext*>(aRenderingContext.GetNativeGraphicData(nsIRenderingContext::NATIVE_THEBES_CONTEXT));
// TODO: handle the situation where the frame size is not the same as the
// video size, by drawing to the largest rectangle that fits in the frame
// whose aspect ratio equals the video's aspect ratio
nsRect area = GetContentRect() - GetPosition() + aPt;
nsPresContext* presContext = PresContext();
gfxRect r = gfxRect(presContext->AppUnitsToGfxUnits(area.x),
presContext->AppUnitsToGfxUnits(area.y),
presContext->AppUnitsToGfxUnits(area.width),
presContext->AppUnitsToGfxUnits(area.height));
r = CorrectForAspectRatio(r, videoSize);
nsHTMLVideoElement* element = static_cast<nsHTMLVideoElement*>(GetContent());
element->Paint(ctx, r);
}

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

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

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

@ -1,8 +0,0 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<body style="background:white;">
<video id="v" src="black140x100.ogv"
style="width:340px; height:100px; position:relative; top:100px;"
onloadeddata="document.documentElement.removeAttribute('class')"></video>
</body>
</html>

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

@ -1,8 +0,0 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<body style="background:white;">
<video id="v" src="black140x100.ogv"
style="width:140px; height:300px; position:relative; left:100px;"
onloadeddata="document.documentElement.removeAttribute('class')"></video>
</body>
</html>

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

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

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

@ -1,8 +0,0 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<body style="background:white;">
<video id="v" src="black140x100.ogv"
style="width:680px; height:200px; position:relative; top:200px;"
onloadeddata="document.documentElement.removeAttribute('class')"></video>
</body>
</html>

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

@ -1,8 +0,0 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<body style="background:white;">
<video id="v" src="black140x100.ogv"
style="width:280px; height:600px; position:relative; left:200px;"
onloadeddata="document.documentElement.removeAttribute('class')"></video>
</body>
</html>

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

@ -1,6 +0,0 @@
<!DOCTYPE HTML>
<html>
<body style="background:white;">
<div style="width:140px; height:100px; background:black;"></div>
</body>
</html>

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

@ -1,7 +0,0 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<body style="background:white;">
<video id="v" src="black140x100.ogv"
onloadeddata="document.documentElement.removeAttribute('class')"></video>
</body>
</html>

Двоичные данные
layout/reftests/ogg-video/black140x100.ogv

Двоичный файл не отображается.

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

@ -1,5 +0,0 @@
<!DOCTYPE HTML>
<html>
<body style="background:white;">
</body>
</html>

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

@ -1,7 +0,0 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<body style="background:white;">
<video id="v" src="black140x100.ogv" style="width:0"
onloadeddata="document.documentElement.removeAttribute('class')"></video>
</body>
</html>

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

@ -1,7 +0,0 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<body style="background:white;">
<video id="v" src="black140x100.ogv" style="height:0"
onloadeddata="document.documentElement.removeAttribute('class')"></video>
</body>
</html>

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

@ -1,8 +0,0 @@
== aspect-ratio-1a.html aspect-ratio-1-ref.html
== aspect-ratio-1b.html aspect-ratio-1-ref.html
== aspect-ratio-2a.html aspect-ratio-2-ref.html
== aspect-ratio-2b.html aspect-ratio-2-ref.html
== basic-1.html basic-1-ref.html
== empty-1a.html empty-1-ref.html
== empty-1b.html empty-1-ref.html
== zoomed-1.html zoomed-1-ref.html

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

@ -1,6 +0,0 @@
<!DOCTYPE HTML>
<html>
<body style="background:white; margin:0;">
<div style="width:210px; height:150px; background:black;"></div>
</body>
</html>

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

@ -1,7 +0,0 @@
<!DOCTYPE HTML>
<html class="reftest-wait" reftest-zoom="1.5">
<body style="background:white; margin:0">
<video id="v" src="black140x100.ogv"
onloadeddata="document.documentElement.removeAttribute('class')"></video>
</body>
</html>

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

@ -83,9 +83,6 @@ include native-theme/reftest.list
# object/
include object/reftest.list
# ogg-video/
include ogg-video/reftest.list
# percent-overflow-sizing/
include percent-overflow-sizing/reftest.list