Title: [149232] trunk
Revision
149232
Author
jer.no...@apple.com
Date
2013-04-26 22:30:40 -0700 (Fri, 26 Apr 2013)

Log Message

Video playback has corruption on the edges of the video
https://bugs.webkit.org/show_bug.cgi?id=115216

Reviewed by Simon Fraser.

Source/WebCore:

Test: media/video-poster-background.html

RenderImage correctly answers foregroundIsKnownToBeOpaqueInRect() method
when a poster image is displayed, but once the video begins playing and
the poster image is no longer displayed, RenderImage will continue to
answer 'true' even when the video does not occupy the entire render box.
Override foregroundIsKnownToBeOpaqueInRect() in order to more correctly
answer the question for the video layer.

* rendering/RenderImage.h: Make foregroundIsKnownToBeOpaqueInRect() protected
    (vs. private).
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::foregroundIsKnownToBeOpaqueInRect): Added. Return
    true if the rect parameter is entirely contained by the video box.
* rendering/RenderVideo.h:

LayoutTests:

* media/content/test.jpg: Added.
* media/video-poster-background-expected.html: Added.
* media/video-poster-background.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (149231 => 149232)


--- trunk/LayoutTests/ChangeLog	2013-04-27 04:41:12 UTC (rev 149231)
+++ trunk/LayoutTests/ChangeLog	2013-04-27 05:30:40 UTC (rev 149232)
@@ -1,3 +1,14 @@
+2013-04-26  Jer Noble  <jer.no...@apple.com>
+
+        Video playback has corruption on the edges of the video
+        https://bugs.webkit.org/show_bug.cgi?id=115216
+
+        Reviewed by Simon Fraser.
+
+        * media/content/test.jpg: Added.
+        * media/video-poster-background-expected.html: Added.
+        * media/video-poster-background.html: Added.
+
 2013-04-26  Roger Fong  <roger_f...@apple.com>
 
         Unreviewed. Skipping some more tests that still need rebaselining after disabling subpixel layout on mac.

Added: trunk/LayoutTests/media/content/counting.jpg (0 => 149232)


--- trunk/LayoutTests/media/content/counting.jpg	                        (rev 0)
+++ trunk/LayoutTests/media/content/counting.jpg	2013-04-27 05:30:40 UTC (rev 149232)
@@ -0,0 +1,58 @@
+\xFF\xD8\xFF\xE0JFIFHH\xFF\xE2\xB0ICC_PROFILE\xA0applmntrRGB XYZ \xD5acspAPPL\xF6\xD6\xD3-appldescicprt\x80"wtpt\xA4rXYZ\xB8gXYZ\xCCbXYZ\xE0rTRC\xF4vcgt0ndin4>chadt,bTRC\xF4gTRC\xF4descComposite NTSCtextCopyright 2007 Apple Inc.XYZ \xF3Q\xCCXYZ j\x928\xC0~XYZ d\xA8\xB4
+aXYZ '\x9B6\xB8Mcurv\xF6vcgtndin6\xA1HW
+O\\x98R'\xAE\xECP
+T9\xF6\xF6\xF6sf32B\xDE\xFF\xFF\xF3&\x93\xFD\x90\xFF\xFF\xFB\xA2\xFF\xFF\xFD\xA3\xDC\xC0n\xFF\xE1\x80ExifMM*JR(\x87iZHH\xA0`\xA0 \xFF\xDBC	
+	
+	
+	
+
+\xFF\xDBC\xFF\xC0 `"\xFF\xC4	
+\xFF\xC4\xB5}!1AQa"q2\x81\x91\xA1#B\xB1\xC1R\xD1\xF0$3br\x82	
+%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x83\x84\x85\x86\x87\x88\x89\x8A\x92\x93\x94\x95\x96\x97\x98\x99\x9A\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFF\xC4	
+\xFF\xC4\xB5w!1AQaq"2\x81B\x91\xA1\xB1\xC1	#3R\xF0br\xD1
+$4\xE1%\xF1&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x92\x93\x94\x95\x96\x97\x98\x99\x9A\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFF\xDA?\xFC\xCB\xFD\x8B\xFFh\xEB\xFF\xD9'\xF6\xA5\xF0?\xC4]$\xF8oS\x86\xE6a\x8F\xF5\xB0}ɓ\xDF\xE4-_ؗ\x82\xBCc\xA7|A\xF0\x8E\x99\xAFxvE\xB9ӵ{H\xEF-f\xEFC"oS\xFF|\x91_\xC4\xD68\xCDO?\xF0m\x97\xEDU\xFF
+\xFF\xD5\xD0t\xBD^|\xEA\xFF
+\xEEd\xF0\xED\xDE{ƿ\xBD\x85\xFF\xDD\xF2\xE5	\xFFl\x8D\xA1MU\xB0\x98&\xA1\xBD9{\x9F\xE1\x95\xDC>\xE9_\xEF>K \xC5o@\xFD
+\xA2\x8A+\xFC\xF7>\xB4(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A\xFE\xE0\xF3_\xAB\xDF\xF0iw\xED"~\xFEؾ1\xF8o\xA8\xC8>\xC3\xE3\xCD\xED\xF0\xE7\xB5ݓ\xAA=\xDA;\x89\xEF\xDD~P\x91\x83^\xE3\xFF\xD5\xF8\xE0f\xEF\xDB\xC7\xE1W\x8CTg\xFB/\xC46\xD1K\xED\xC1\xFB4\x99\xF6\xDB;¿ڏ8g\xFDn\xE0\xEC\xD3,\xEA\xE97\xF1Cߏ\xE3\xF3loc^3?\xB1**:\x92\xBF\xC5s\x{11088A}(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xF8{\xA7@Z\xDAt\x96ي\xC8Q\x81\xC6\xD6\xECs\xECpi\xB5%\xBD\xED]X\xFC\xAC\xFEƿ\xE0\x9F\xFF`\xFD\xA0?b\xEF\x862\xB1;ƿ\xE1\xCBK\x92ޯ\xE5\xECo\xFCy
+{#\xFC\xFCk\xE0\xF86\x8B\xE2\x8B|I\xFF\x82Q\xF82\xD6PCxN\xF2\xF3B\xFF\xBFR\x97\xF2\x9A\xBE\xFE\xCE1\xCD\x86\xDCm\x94\xAC\x83\x88s\xB9mJ\xB5H\xAFE'o\xC0\xFD7
+W\xDAQ\x84\xFC\x90\xFA(\xA2\xBEd\xDC(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A\xFE袊\xFF|\xCA\xCF\xE8+\xFE
+\xF8\x81\xFD\xB5\xFB&|M\xF0\xF1l\x9D\xC4\xD1O\xB7\xD3\xED\xFF\xB4\xAB\xF5\xE1\x86I\xF7\xE9_\x87\x9F\xF0gO\x88<\xA3\xF1\xD7J\xFF\x9E\xF2i\xF7\xCCw	\xFF\xB3\xD7\xEE6\xE9_\xE3\xB7\xD2#\xB0"f\xF4㳜e\xFF\x81B2\x8B?B\xCAg̓\xA6:\x8A(\xAF\xC6H(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A\xFE袊\xFF|\xCA\xCF\xD9O\xF83\xE6\xF1\x93\xE3\x97\xC6\xE0}\xCE_\xC4HG\xF5\xAF\xDF
+\xFC\xFF\x83=\xEC\xCB\xFCp\xF8\xC3s\xFC)\xA4YE\xF8\x99	\xFE\x95\xFB\xE3_\xE4o\xD2~\xDF\xF13+v\xA5\xFF\xA6\xE2}\xF6I\xFE\xE7\x9F\xE6QE~z\xC1EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\xF0\xF7EW\xFB\xE0~V~\xDF\xFF\xC1\x9D>\xC2\xF4\xD5猺E\xA0\xFF\x81\xC7p\xFF\xFB \xAF\xDCZ\xFC\x8A\xFF\x83C>\xFFa\xFE\xC8\xDF\xBCD\xC9ƽ\xE2x\xED\xC3{\xEC\xF0\xFAy\xBF\xAD~\xBA\x93\x8E\xB5\xFE;\xFD!\xF1\xD1\xCC<D\xCD\xEAA\xE8\xA7\xFF\xE00\x8C_\xE2\x99\xFAQL%5\xFDnQE~.zAEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\xF0\xF7R'\xCD2\xA9\xF5:y/gH\xAD\xA4\x9AS\xB25Q\xF33\x93\x85\xDF8\xFE\xF8Nj\x9C\\xDE\xCBS\xF2\xB3\xFA\x84\xFF\x83j>7\xC3o\xF8%\x82n\xA5?\x8Bn\xAF5ߨ\x96R\x80\xFEP\xD7ߠe+\xC8`\xBF\x84|\xFD\x8D\xBE\xF8COO-4Z[2\xE3_\xCB\xC3\xEF;W\xAF\xD7\xF8kƹ\xB7\xF6\xF7f9\x92ڭj\x92^\x8EN߁\xFAnʌ!\xD9 \xA2\x8A+\xE6MŠ(\xA0\x8A(\xA0\xED+҃\xC1\x{1E6F53F}\xE0\xA2\xF0Y\xAF\x81\xF0MK'\xC7\xDFGw\xE2fB\xF6\x9E\xD26\xDDj\xD7g\x8F\xF9g\xB8,C\xE64\x8C\x9Ct\xCFJ\xFEw?\xE0\xA7\xF0sW\xC7\xDB\xF0_\xF8s\xE1\xAC\xCD\xF0\xAB\xE1\xD5\xCE莕\xA4]3_j.\xEF0\xAC\xC0\xE3;(\x91\x96\xEBX:\xB7v\x82\xBB\xFC>\xFF\xF2\xB9~Ϭ\x9D\xBF\xAE\xC7\xF5\x99mw\xD4K9Tn\x8C\x8COЎ\xB5.\xDFj\xFC\xD5\xFF\x83P5\x8B\xADo\xFE\xFB᩵\x9B\xAB\x9Bɿ\xB7\xB55\xF3'\x99\xA5ly\xDC\xB1'\xDD+\xF4\xABp>\xB5\xD3R\xCE\\xBF\xD7s
+U=\xA4y\xBDah\xA2\x8A\x93@\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xF8{\xAFv\xFF\x82d\xFC\x93\xF6\x97\xFD\xBE~x6 Jj>!\xB7\xB8\x9F\x8C\x8F&؛\xA93\xE8
+\xC0W\xFE^_\xAC\xFF\xF0i7\xEC\xD6\xDE>\xFD\xAF\xBCk\xF1/R\x84\xB5\x8F\x80\xF4Uӭٗ\xE57W\xACp\xCA}V;i\xF4\xF3\xA8\xAF\xF6\x93\xC6>&\#\xC1\x99\xA6g{ISq\x8F\xF8\xA7\xEEG\xF1\x95\xCF\xCD\xF2\xFA?X\xC4Bg\xF41n\x8B*\xB1\xE0(\xE8\xC0\xB5KH\xBD)k\xFCZW\xB6\xBB\x9F\xA4QLg\xBFz\v"\x8F\xBB\x9C\xFA\xAB\xF2w\xFE\xFF\xB3\xF8\xDF\xF0\xA7\xF6\xA7\xD4f\xDF\xF8&O[\xC5?m\xEDm%\xBE\xD7\xFE\xC3\xFD\xA1\x98\xB7QE,/
+\xC8i.p\x83Ўk7+4\x92\xBB{"\x94n\x9B\xE8\xB7?@l_\xDB\xC7\xE1O\xEC\xF0\xEAO\xFEԞ2\xD2|/`C}\x9E\xE4\xDDw\xA8:\xA9o*\xDA\xF3\xCA\xE4)¨\xAF\xC0\xF8*\xFC\xD3\xF1\xE3\xAF\xF6\x87\x84\xFF`)>xZ]\xF0\xBF\x88n\x91&\xD7o\x93v39\x8E\xD1Yz\x8C4\x83\xA8q]\x97\xC2\xDF\xF85\xA7\xF6\x99\xFD\xBE|q\xFF\xFE
+\x87\xF1O\xFBXՋ\xFD\xAA\x9B\xCF\xED\xDDj\xDCJ"\xB2\xBB[\xC7\xCC\xC5cY>@v\xE0t\xAC\xF8)\xA7\xFC3u\xFB(~\xCA\xDE"\xF8\x93\xFB/|C\xD4|qq\xE0\xBBI5]_I\xD5l#\xB4\x96[(\x97t\xD2[4D\xA9x\xD3t\x85_Tl\xD8:\xB4\xEF\xFCo\xB9m\xF3\xEF\xFDh:mO\xE0\xFB\xDF\xE8~0x\xAB\xC6Z\xBF\x8Eu۽Sƺ\x9E\xA1\xAB\xEA\x97\xCF\xE6\\xDE_\<\xF7/\xFD\xE9$rYϹ&\xB2\xA8\xA2\xBA?\xAC\xAF\xF84\xBB\xFEP\xE9\xE1\xBF\xFB\xEA\xFA:\xBFL?\xE5\xA5~g\xFF\xC1\xA5\xDF\xF2\x87O
+\xFF\xD8S\xFF\xD1\xD5\xFAa\xFF-+\xA3\xFCG\xF2\xFC\x91\x86\xE0\xF9\xBF͎\xA2\x8A+\x9C\xDC(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A\xFE	⿨\xF86\xCF\xF6To٫\xFE	\x9F\xE1\xEDK[\xB70knd\xF15\xE2\xB8\xF9\xD1\xF7p&\xBB\xE5D\x92\xFA\xEAk\xF9\xD5\xFD\x88?f\x9B\xEF\xDA\xFB\xF6\xB0\xF0'í\xAF\x89uh\xA1\x9D\xF6\xEEX\xAD\xD4\xEF\x99\xDB\xC2H\xCF\xFBB\xBF\xB1O\xF8V\xC7\xC0^\xD34_\xC0\x96\xBAn\x91k\x95\xA4\xD2(cP\x88\xA3\xE8\xA0
+\xFFA\xFE\x9Ag찘\xA3/zo\xDBT\xFF}\xD8/\x9C\x9C\x9F\xFD\xBA\x8F\x91\xE1\xCC?\xBD*\xDF#b\x8A(\xAF\xF3\xE0\xFAࢊ(\xAA0xr\xC2\xD7W\x9FP\xB5\xB2\xB4\x8A\xFA\xE9U'\xB8HUe\x9C/\xDD\xE0n`;x\xAB\xD4P/ݬ\x8A\x9E\x87\xC7?
+<C\xA2j+\xDB\xEBe͌\x8B"\xEEB\xB2\xC4\xC8C\xE3
+ҷ\xD7\xEE\xD5mo\xFEAs\xFF\xD76\xFEU\x8E#\xF8R\xF4*?\x82?\xD9f\xF8\xABP\xB7\x8F\xEE\xC1s,|{9ҳ\xDE\xB7\xF1\xFEG\xEDc\xFE\xBFg\xFFѭX\x87\xEF
+ҟ\xC0\xBE_\x90\xFA\xBFS\xFA\xC7\xFF\x83K\xBF\xE5\x9E\xFF\xB0\xFE\xA7\xFF\xA3\xAB\xF4\xC3\xFEZW\xE6\xFC]\xFF(t\xF0\xDF\xFD\x87\xF5?\xFD_\xA6\xF2Һ\xB1?\xC4/\xC9\xB8o\x83\xE6\xFF6:\x8A(\xAEsp\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xF0s\xFE
+\xFD\x8Fƿ\xE3\xDF|l\xF1\xA9\xF2\xF4\xD1d`G\xEFeQ%ӯ\xA8\xD8aL\xFA\xEE\xFBŝ\xA3\xE9_/\xFF\xC1\xBFe1\xFB\xC1:\xFExB\xFE\xDF\xEC\xFA\xC3ik\xAAj\xEAW/n\x98\xCF*\x9F]\x8D!A삾\x9F#\xF4\xFEu\xFAw\x8C\x9Ce.;\xE3\xC35R\xBD77
+\xF5\xEE\xECm\xEB\xBB\xF3g[\x87\xFA\xB6\xEB\xBB\xF5EW\xE6'xQEQE\x8F\xF7j\xAE\xB1\xFF \x99\xFF\xEB\x9BU\xA7\xFB\xB5WX\xFF\x90L\xFF\xF5ͫ*\xDF×\xA3\xFC\x8B\x87ď\xE0\xB3\xE2G\xFC\x8F\x9A\xC7\xFDO\xFF\xA3Z\xB0\xDB\xF8\xABs\xE2G\xFC\x8F\x9A\xC7\xFDO\xFF\xA3Z\xB0\xDB\xF8\xAA\xE9|+\xD3\xF4&[\xB3\xFA\xC8\xFF\x83K\xBF\xE5\x9E\xFF\xB0\xFE\xA7\xFF\xA3\xAB\xF4\xC3\xFEZW\xE6\xFC]\xFF(t\xF0\xDF\xFD\x87\xF5?\xFD_\xA6\xF2Һ\xB1?\xC4/\xC9\xF8o\x83\xE6\xFF6:\x8A(\xAEsp\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xAA\x9A\xC7\xFC\x82g\xFF\xAEm\xFC\xAA\xDDT\xD6?\xE4?\xFDso\xE5Y\xD6\xFE\xBDP\xF8\x91\xFC|K\xFF\x91\xF3Y\xFF\xAF\xEB\x8F\xFDՆ;V\xE7Ŀ\xF95\x9F\xFA\xFE\xB8\xFFѭXc\xB5T>\xF2ݟ\xD6?\xFCY\xFF(w\xF0\xD7\xFD\x87\xF5O\xFD_\xA6?\xF2ҿ3\xBF\xE0\xD2\xCF\xF9C\xBF\x86\xBF\xEC?\xAA\xE8\xEA\xFD1\xFF\x96\x95Ӊ\xFE#\xF9~H\xE7\xC3\xE6\xFF6:\x8A(\xAC
+Š(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\xAAk\xF2	\x9F\xFE\xB9\xB7\xF2\xABuSX\xFF\x90L\xFF\xF5Ϳ\x95g[\xF8r\xF4eC\xE2G\xF0Y\xF1/\xFEG\xCDg\xFE\xBF\xAE?\xF4kV\xED[\x9F\xFF\xE4|\xD6\xEB\xFA\xE3\xFFF\xB5a\x8E\xD5P\xF8W\xC8OvX\xFF\xF0ig\xFC\xA1\xDF\xC3_\xF6\xD5?\xF4u~\x98\xFF\xCBJ\xFC\xCE\xFF\x83K?\xE5\xFE\xFF\xB0\xFE\xA9\xFF\xA3\xAB\xF4\xC7\xFEZWN'\xF8\x8F\xE5\xF9#\x9F
+\xFC?\x9B\xFC\xD8\xEA(\xA2\xB07
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+(\xA2\x80
+\xA9\xAC\xC8&\xFA\xE6\xDFʭ\xD5Mc\xFEA3\xFF\xD76\xFEU\x9Do\xE1\xCBѕ\x89\xC1gĿ\xF95\x9F\xFA\xFE\xB8\xFFѭXc\xB5n|K\xFF\x91\xF3Y\xFF\xAF\xEB\x8F\xFDՆ;UC\xE1_!=\xD9\xFDc\xFF\xC1\xA5\x9F\xF2\x87
+\xD8T\xFF\xD1\xD5\xFAc\xFF-+\xF3;\xFE
+,\xFF\x94;\xF8k\xFE\xC3\xFA\xA7\xFE\x8E\xAF\xD3\xF9i]8\x9F\xE2?\x97\xE4\x8E|7\xF0\xFEo\xF3c\xA8\xA2\x8A\xC0\xDC(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A*\xA6\xB1\xFF \x99\xFF\xEB\x9B*\xB7U5\x8F\xF9\xCF\xFF\\xDB\xF9Vu\xBF\x87/FT>$\x9F\xFF\xE4|\xD6\xEB\xFA\xE3\xFFF\xB5a\x8Eչ\xF1/\xFEG\xCDg\xFE\xBF\xAE?\xF4kV\xEDU\x85|\x84\xF7g\xF5\x8F\xFF\x96\xCA\xFC5\xFFa\xFDS\xFFGW\xE9\x8F\xFC\xB4\xAF\xCC\xEF\xF84\xB3\xFEP\xEF\xE1\xAF\xFB\xEA\x9F\xFA:\xBFL\xE5\xA5t\xE2\x88\xFE_\x929\xF0\xDF\xC3\xF9\xBF͎\xA2\x8A+p\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xAA\x9A\xC7\xFC\x82g\xFF\xAEm\xFC\xAA\xDDT\xD6?\xE4?\xFDso\xE5Y\xD6\xFE\xBDP\xF8\x91\xFC|K\xFF\x91\xF3Y\xFF\xAF\xEB\x8F\xFDՆ;V\xE7Ŀ\xF95\x9F\xFA\xFE\xB8\xFFѭXc\xB5T>\xF2ݟ\xD6?\xFCY\xFF(w\xF0\xD7\xFD\x87\xF5O\xFD_\xA6?\xF2ҿ3\xBF\xE0\xD2\xCF\xF9C\xBF\x86\xBF\xEC?\xAA\xE8\xEA\xFD1\xFF\x96\x95Ӊ\xFE#\xF9~H\xE7\xC3\xE6\xFF6:\x8A(\xAC
+Š(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A(\xA0\x8A+\x89\xF8\xC3\xFBH\xF8\xF6{\xB5\xB7\x9B㗌|9\xE18\xAF7}\x9C\xEA\x97\xD1\xDBy\xFBz\xECF\xEC{Pf~\\x8A\xF3\x8F\xDB\xE2ͯ\xC0\xD9O\xE2G\x8D5\x89<\xBBxkP\xD5\xF9\x9EYc
+\xBC\x8E[\xB31G\xB9\xF3ů\xF88\x8F\xF6;\xF8?\x{1B8D5F}\x8D\xA7}g\xF7\xAD4\xABk\x8B\xC9\xFA+,~Y?\xF0*\xFC]\xFF\x82\xE9\xC1\xCD\xDF\xF0\xF0\xBF\x84ڏ\xC2\xD9;Ú\xAF\x86\xBEj\xB3C&\xAD\xABj\xD2*jZ\xD2D\xE2E\x87\xEC\xF1\x96X"\xF36\xFB\xEC_\xBC\x83\x85o\xDEA\xC2:\xB6kI%4\xE5\xB2?#\xB5\xDD@\xEA\xFA\xC5\xD5\xD3\xF0\xD7\xB4\xA4g\xA6\xE2O\xF5\xAAc\xA9\x85\xB0\xDC\xF4\xA3#\x90+\xA1G\x95$\x8C\xE4\xF9\x9Bg\xF5Y\xFF\x84\xF8\xF3O\xF1g\xFCJ?H\x91\x9A\xEBÞ,ԬoU\xBF\x86FN\xB8\xF61\xCF\xFA\xE7ҿS\xCF\xF5\xAF\xE4/\xFE+\xFF\xBD\xBF\xFF\x82E\xFCZ\xD6\xEC\xFC}\xA5_\xF8\xA3\xE1o\x8D<\xA3\xACi\xD6n\xA2\xF2\xC2\xE2<\xF9wv\x81\xC8F}\xACQ\xE3b\xA1\xC6ߘl\xFE\x86>\xFF\xC1Ŀ\xB2\xEDe\xA7\xFFa|^\xD2t-KQ\x8B\xCCn\xBBo5\x8D\xCC\xEC\xC8\xC5LA\x87\xA0\x90\xD7Eu\xED%\xCF\xBA_z\xD0\xE7\xA5\xFB\xA4\xE0\xFB\xBF\xC5\xDC\xFBz\x8A\xF3\xFE؟	\xFE&\xDF\xD9\xDA|>\xF8\x97\xE0Mb\xF7P\x90Ekmk\xAE\xDA\xC9=Þ\x8A\x91	7\xB1\xF65\xE9\xCCnQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE7\xB9\xF1\xD7\xFCs\xFE\xB9\xF0\xDF\xFE
+\xE7o\xE1\xBE>\xF8\x83ƺ\xFC!\xCFp֍\xE1\xF9\xEDbi|ࡄ\x9Fh\x82L\x81\xB0\xB7\xF9\xAF\xB1~\xFF\xE1@\xF9\x8EG\x93\x8A\x95\xAF\xD0JMl~8\xAF\xFC_\xFB:'\xF1/㢏A\xA8i_\xFC\x83G\xFCAW\xFB9\xD1H\xF8\xE5\xFF\x81\xFAW\xFF \xD7\xEC\x85\xC6~7\xFF\xC4\xB3\x97\xFD\x8F\x8E_\xF8\xA5\xF2
+\xF1_\xEC\xE5\xFFE#\xE3\x97\xFE\xE9_\xFC\x83_\xB2P\xE3\xFCAW\xFB9\xD1H\xF8\xE5\xFF\x81\xFAW\xFF \xD0\xFF\xF0eg\xEC\xE6\xEB\x86\xF8\x97\xF1̏C\xA5\xE3\xFFHk\xF6B\x8A\xFC\xB4\xFD\x91\xE0\xD4\x81\xB1\xE7\xED'\xE0\xEF\x89\xFE\xF1\xB7ŝ[Y\xF0N\xA5\xA9ek\xAA^i\xCFi,\xB1\xE7o\x98\xB1Y\xA3\x90<09k\xF5'a\x9A\xF6\x83\x8A\xA77$\xA2ވ\xCDA&\xE5\xD5\xFE\x83\xA8\xA2\x8A\x93@\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xA2\x8A(\xE5\x9F\xF8#7\xEDZ\xBF\xB6\xFC\x9B᧊\xAF\xAE>Ѭ[\xE9\xA3H\xD5ٛ.o-I\x82Gaع\x8F\xCC\xFA8\xAF\xA9A\xAF\xC1o\xF84\xF6\xBE\xF8\x9B㟂\x9E!\xB8&E\xFF	&\x8F\xE2xPGr\xA0\xF61c\xD45~\xF4\x91\x81׭~\x9F\xE3/\xBE\xE3\xC3+Q\xB5.~z\xF5\xEE~\xF4m\xE9{z\xA3\x83-\xC4}k	\xF5\xD9\xFA\xA1\xD4QE~`w\x85Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@\xFF\xD9
\ No newline at end of file

Added: trunk/LayoutTests/media/video-poster-background-expected.html (0 => 149232)


--- trunk/LayoutTests/media/video-poster-background-expected.html	                        (rev 0)
+++ trunk/LayoutTests/media/video-poster-background-expected.html	2013-04-27 05:30:40 UTC (rev 149232)
@@ -0,0 +1,14 @@
+<html>
+<head>
+    <style>
+    .red {
+        width: 352px;
+        height: 200px;
+        background-color: red;
+    }
+    </style>
+</head>
+<body>
+    <div class=red></div>
+</body>
+</html>
\ No newline at end of file

Added: trunk/LayoutTests/media/video-poster-background.html (0 => 149232)


--- trunk/LayoutTests/media/video-poster-background.html	                        (rev 0)
+++ trunk/LayoutTests/media/video-poster-background.html	2013-04-27 05:30:40 UTC (rev 149232)
@@ -0,0 +1,37 @@
+<html>
+    <head>
+        <style>
+            video { background-color: red; }
+            .clip {
+                width: 352;
+                height: 200;
+                overflow: hidden;
+            }
+        </style>
+        <script src=""
+        <script type="text/_javascript_">
+            if (window.testRunner)
+                testRunner.waitUntilDone();
+
+            function doTest() {
+                video = document.getElementsByTagName('video')[0];
+                video.addEventListener('canplaythrough', canPlayThrough, false);
+                video.src = "" 'content/counting');
+            }
+            function canPlayThrough() {
+                video.addEventListener('seeked', seeked, false);
+                video.currentTime = 0.01;
+            }
+            function seeked() {
+                if (window.testRunner)
+                    testRunner.notifyDone();
+            }
+        </script>
+    </head>
+    <body _onload_="doTest()">
+        <!-- This tests whether a video with a poster attribute correctly paints its background color after a video frame is painted. The page should render only a red box 352x200. -->
+        <div class="clip">
+            <video width=352 height=688 poster="content/counting.jpg"></video>
+        </div>
+    </body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (149231 => 149232)


--- trunk/Source/WebCore/ChangeLog	2013-04-27 04:41:12 UTC (rev 149231)
+++ trunk/Source/WebCore/ChangeLog	2013-04-27 05:30:40 UTC (rev 149232)
@@ -1,3 +1,26 @@
+2013-04-26  Jer Noble  <jer.no...@apple.com>
+
+        Video playback has corruption on the edges of the video
+        https://bugs.webkit.org/show_bug.cgi?id=115216
+
+        Reviewed by Simon Fraser.
+
+        Test: media/video-poster-background.html
+
+        RenderImage correctly answers foregroundIsKnownToBeOpaqueInRect() method
+        when a poster image is displayed, but once the video begins playing and
+        the poster image is no longer displayed, RenderImage will continue to
+        answer 'true' even when the video does not occupy the entire render box.
+        Override foregroundIsKnownToBeOpaqueInRect() in order to more correctly
+        answer the question for the video layer.
+
+        * rendering/RenderImage.h: Make foregroundIsKnownToBeOpaqueInRect() protected
+            (vs. private).
+        * rendering/RenderVideo.cpp:
+        (WebCore::RenderVideo::foregroundIsKnownToBeOpaqueInRect): Added. Return
+            true if the rect parameter is entirely contained by the video box.
+        * rendering/RenderVideo.h:
+
 2013-04-26  Hans Muller  <hmul...@adobe.com>
 
         [CSS Exclusions] ExclusionShape bounding box methods should return LayoutRects

Modified: trunk/Source/WebCore/rendering/RenderImage.h (149231 => 149232)


--- trunk/Source/WebCore/rendering/RenderImage.h	2013-04-27 04:41:12 UTC (rev 149231)
+++ trunk/Source/WebCore/rendering/RenderImage.h	2013-04-27 05:30:40 UTC (rev 149232)
@@ -65,6 +65,7 @@
     virtual bool needsPreferredWidthsRecalculation() const;
     virtual RenderBox* embeddedContentBox() const;
     virtual void computeIntrinsicRatioInformation(FloatSize& intrinsicSize, double& intrinsicRatio, bool& isPercentageIntrinsicSize) const;
+    virtual bool foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect, unsigned maxDepthToTest) const OVERRIDE;
 
     virtual void styleDidChange(StyleDifference, const RenderStyle*);
 
@@ -88,7 +89,6 @@
 
     virtual void paintReplaced(PaintInfo&, const LayoutPoint&);
 
-    virtual bool foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect, unsigned maxDepthToTest) const OVERRIDE;
     virtual bool computeBackgroundIsKnownToBeObscured() OVERRIDE;
 
     virtual LayoutUnit minimumReplacedHeight() const OVERRIDE;

Modified: trunk/Source/WebCore/rendering/RenderVideo.cpp (149231 => 149232)


--- trunk/Source/WebCore/rendering/RenderVideo.cpp	2013-04-27 04:41:12 UTC (rev 149231)
+++ trunk/Source/WebCore/rendering/RenderVideo.cpp	2013-04-27 05:30:40 UTC (rev 149232)
@@ -339,6 +339,14 @@
 }
 #endif
 
+bool RenderVideo::foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect, unsigned maxDepthToTest) const
+{
+    if (videoElement()->shouldDisplayPosterImage())
+        return RenderImage::foregroundIsKnownToBeOpaqueInRect(localRect, maxDepthToTest);
+
+    return videoBox().contains(enclosingIntRect(localRect));
+}
+
 } // namespace WebCore
 
 #endif

Modified: trunk/Source/WebCore/rendering/RenderVideo.h (149231 => 149232)


--- trunk/Source/WebCore/rendering/RenderVideo.h	2013-04-27 04:41:12 UTC (rev 149231)
+++ trunk/Source/WebCore/rendering/RenderVideo.h	2013-04-27 05:30:40 UTC (rev 149232)
@@ -83,6 +83,8 @@
 
     void updatePlayer();
 
+    virtual bool foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect, unsigned maxDepthToTest) const OVERRIDE;
+
     LayoutSize m_cachedImageSize;
 };
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to