Title: [91872] trunk
Revision
91872
Author
[email protected]
Date
2011-07-27 15:01:02 -0700 (Wed, 27 Jul 2011)

Log Message

2011-07-27  Eric Carlson  <[email protected]>

        Load delegate not consulted before loading some poster images
        https://bugs.webkit.org/show_bug.cgi?id=65270

        Reviewed by Darin Adler.

        Test: media/video-poster-blocked-by-willsendrequest.html

        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::setDisplayMode): Don't ask media engine to set poster if
            willLoadMediaElementURL returns false.

2011-07-27  Eric Carlson  <[email protected]>

        Load delegate not consulted before loading some poster images
        https://bugs.webkit.org/show_bug.cgi?id=65270

        Reviewed by Darin Adler.

        * media/video-poster-blocked-by-willsendrequest-expected.txt: Added.
        * media/video-poster-blocked-by-willsendrequest.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (91871 => 91872)


--- trunk/LayoutTests/ChangeLog	2011-07-27 21:55:40 UTC (rev 91871)
+++ trunk/LayoutTests/ChangeLog	2011-07-27 22:01:02 UTC (rev 91872)
@@ -1,3 +1,13 @@
+2011-07-27  Eric Carlson  <[email protected]>
+
+        Load delegate not consulted before loading some poster images
+        https://bugs.webkit.org/show_bug.cgi?id=65270
+
+        Reviewed by Darin Adler.
+
+        * media/video-poster-blocked-by-willsendrequest-expected.txt: Added.
+        * media/video-poster-blocked-by-willsendrequest.html: Added.
+
 2011-07-27  Ryosuke Niwa  <[email protected]>
 
         Chromium rebaselines for r89627 and r91497.

Added: trunk/LayoutTests/media/video-poster-blocked-by-willsendrequest-expected.txt (0 => 91872)


--- trunk/LayoutTests/media/video-poster-blocked-by-willsendrequest-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/media/video-poster-blocked-by-willsendrequest-expected.txt	2011-07-27 22:01:02 UTC (rev 91872)
@@ -0,0 +1,13 @@
+Test for https://bugs.webkit.org/show_bug.cgi?id=65270. 
+Resource load delegate should be able to block poster loading.
+
+
+Testing before setting poster
+EXPECTED (video.clientWidth == '300') OK
+EXPECTED (video.clientHeight == '150') OK
+
+Test after setting poster
+EXPECTED (video.clientWidth == '300') OK
+EXPECTED (video.clientHeight == '150') OK
+END OF TEST
+

Added: trunk/LayoutTests/media/video-poster-blocked-by-willsendrequest.html (0 => 91872)


--- trunk/LayoutTests/media/video-poster-blocked-by-willsendrequest.html	                        (rev 0)
+++ trunk/LayoutTests/media/video-poster-blocked-by-willsendrequest.html	2011-07-27 22:01:02 UTC (rev 91872)
@@ -0,0 +1,52 @@
+<!doctype html>
+<html>
+    <head>
+        <style>
+            video {
+                border: 3px solid red;
+                background-color: magenta;
+            }
+        </style>
+
+        <script src=""
+        <script>
+        
+            var width, height;
+        
+            function testAfterLoadingPoster()
+            {
+                consoleWrite("<br><b>Test after setting poster</b>");
+
+                testExpected("video.clientWidth", 300);
+                testExpected("video.clientHeight", 150);
+
+                endTest();
+            }
+
+            function start()
+            {
+                if (window.layoutTestController) {
+                    layoutTestController.dumpAsText();
+                    layoutTestController.setWillSendRequestReturnsNull(true);
+                } else
+                    consoleWrite("<b>This test can only be run in DumpRenderTree!</b>");
+
+                video = document.querySelectorAll('video')[0];
+
+                consoleWrite("<br><b>Testing before setting poster</b>");
+                testExpected("video.clientWidth", 300);
+                testExpected("video.clientHeight", 150);
+
+                video.poster = "content/abe.png";
+
+                setTimeout(testAfterLoadingPoster, 100);
+            }
+        </script>
+    </head>
+
+    <body _onload_="start()">
+        <video id=video></video>
+        <p>Test for <a href="" <br>
+        Resource load delegate should be able to block poster loading.</p>
+    </body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (91871 => 91872)


--- trunk/Source/WebCore/ChangeLog	2011-07-27 21:55:40 UTC (rev 91871)
+++ trunk/Source/WebCore/ChangeLog	2011-07-27 22:01:02 UTC (rev 91872)
@@ -1,3 +1,16 @@
+2011-07-27  Eric Carlson  <[email protected]>
+
+        Load delegate not consulted before loading some poster images
+        https://bugs.webkit.org/show_bug.cgi?id=65270
+
+        Reviewed by Darin Adler.
+
+        Test: media/video-poster-blocked-by-willsendrequest.html
+
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::setDisplayMode): Don't ask media engine to set poster if
+            willLoadMediaElementURL returns false.
+
 2011-07-27  Stephen White  <[email protected]>
 
         Fix for printing with accelerated <canvas>

Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (91871 => 91872)


--- trunk/Source/WebCore/html/HTMLVideoElement.cpp	2011-07-27 21:55:40 UTC (rev 91871)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp	2011-07-27 22:01:02 UTC (rev 91872)
@@ -34,6 +34,7 @@
 #include "ChromeClient.h"
 #include "Document.h"
 #include "ExceptionCode.h"
+#include "Frame.h"
 #include "HTMLImageLoader.h"
 #include "HTMLNames.h"
 #include "Page.h"
@@ -196,8 +197,12 @@
 
     HTMLMediaElement::setDisplayMode(mode);
 
-    if (player() && player()->canLoadPoster())
-        player()->setPoster(poster);
+    if (player() && player()->canLoadPoster()) {
+        Frame* frame = document()->frame();
+        FrameLoader* loader = frame ? frame->loader() : 0;
+        if (loader && loader->willLoadMediaElementURL(poster))
+            player()->setPoster(poster);
+    }
 
 #if !ENABLE(PLUGIN_PROXY_FOR_VIDEO)
     if (renderer() && displayMode() != oldMode)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to