[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

jer.noble at apple.com jer.noble at apple.com
Wed Dec 22 12:48:22 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 85922353f67bd66a88bdc7dc047afce75a16b824
Author: jer.noble at apple.com <jer.noble at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Aug 30 21:47:07 2010 +0000

    2010-08-27  Jer Noble  <jer.noble at apple.com>
    
            Reviewed by Eric Carlson.
    
            text/plain non-video files cause <video> to hang (while reading them?)
            https://bugs.webkit.org/show_bug.cgi?id=44212
    
            Add the new WebKitSystemInterface function WKQTMovieDisableComponent to
            the initialization routine.
    
            * WebCoreSupport/WebSystemInterface.mm:
            (InitWebCoreSystemInterface): Initialize WKQTMovieDisableComponent.
    2010-08-27  Jer Noble  <jer.noble at apple.com>
    
            Reviewed by Eric Carlson.
    
            text/plain non-video files cause <video> to hang (while reading them?)
            https://bugs.webkit.org/show_bug.cgi?id=44212
    
            Disable all the QuickTime components which ingest .txt files.
    
            New tests:
            * http/tests/media/video-served-as-text.html: Added.
            * http/tests/media/text-served-as-text.html: Added.
    
            * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
            (WebCore::MediaPlayerPrivate::createQTMovie): Disable all four text
                'eat' components.
            * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieDisableComponent.
            * platform/mac/WebCoreSystemInterface.mm: Add wkQTMovieDisableComponent.
    2010-08-27  Jer Noble  <jer.noble at apple.com>
    
            Reviewed by Eric Carlson.
    
            text/plain non-video files cause <video> to hang (while reading them?)
            https://bugs.webkit.org/show_bug.cgi?id=44212
    
            Added two new tests: video-served-as-text.html and
            text-served-as-text.html.  The second checks that a text file does not
            generates an error when loaded by a <video> element. The first checks
            that media served as text/plain still loads without errors.
    
            * http/tests/media/resources/test.txt: Added.
            * http/tests/media/text-served-as-text-expected.txt: Added.
            * http/tests/media/text-served-as-text.html: Added.
            * http/tests/media/video-served-as-text-expected.txt: Added.
            * http/tests/media/video-served-as-text.html: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66411 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 584234e..3051f19 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,21 @@
+2010-08-27  Jer Noble  <jer.noble at apple.com>
+
+        Reviewed by Eric Carlson.
+
+        text/plain non-video files cause <video> to hang (while reading them?)
+        https://bugs.webkit.org/show_bug.cgi?id=44212
+        
+        Added two new tests: video-served-as-text.html and
+        text-served-as-text.html.  The second checks that a text file does not
+        generates an error when loaded by a <video> element. The first checks
+        that media served as text/plain still loads without errors.
+
+        * http/tests/media/resources/test.txt: Added.
+        * http/tests/media/text-served-as-text-expected.txt: Added.
+        * http/tests/media/text-served-as-text.html: Added.
+        * http/tests/media/video-served-as-text-expected.txt: Added.
+        * http/tests/media/video-served-as-text.html: Added.
+
 2010-08-30  Evan Martin  <evan at chromium.org>
 
         Unreviewed, updating Chromium expectations.
@@ -767,6 +785,17 @@
 
 2010-08-27  Jer Noble  <jer.noble at apple.com>
 
+        Reviewed by Eric Carlson.
+
+        text/plain non-video files cause <video> to hang (while reading them?)
+        https://bugs.webkit.org/show_bug.cgi?id=44212
+        
+        Test that HTMLVideoElements cannot load movies served as plain text.
+
+        * http/tests/media/video-served-as-text.html: Added.
+
+2010-08-27  Jer Noble  <jer.noble at apple.com>
+
         Build fix only, not reviewed.
 
         In review for https://bugs.webkit.org/show_bug.cgi?id=43099, a few
diff --git a/LayoutTests/http/tests/media/resources/test.txt b/LayoutTests/http/tests/media/resources/test.txt
new file mode 100644
index 0000000..e252912
--- /dev/null
+++ b/LayoutTests/http/tests/media/resources/test.txt
@@ -0,0 +1,66 @@
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur ac libero
+vulputate est tempor rhoncus. Phasellus ornare enim a nunc luctus volutpat
+aliquam nisi auctor. Quisque tincidunt nibh non ligula aliquam accumsan.
+Cras est urna, sagittis at dictum non, mattis quis libero. Suspendisse
+potenti. Proin rutrum, dolor eu suscipit gravida, mi metus egestas justo,
+vel pretium metus lacus at sem. Duis vulputate erat a felis euismod
+venenatis. Curabitur et commodo velit. Vestibulum interdum tincidunt odio eu
+cursus. Sed faucibus vulputate porta. Praesent sem lectus, interdum at porta
+a, iaculis quis libero.
+
+Suspendisse potenti. Suspendisse fermentum felis sed eros convallis blandit.
+Sed rhoncus viverra orci eu viverra. Fusce vitae diam vel velit placerat
+adipiscing. Nunc rhoncus, nibh ut imperdiet interdum, nunc arcu tempus
+ligula, in tempor augue enim eget erat. Lorem ipsum dolor sit amet,
+consectetur adipiscing elit. Duis vestibulum faucibus lectus, vel tincidunt
+eros congue tincidunt. Curabitur sapien libero, condimentum et commodo
+vitae, tempus eu quam. Maecenas et ipsum nibh. Quisque in tempus sapien.
+Vivamus vitae quam non diam faucibus vulputate. Sed ac ipsum a diam accumsan
+ullamcorper placerat et enim. Nullam tempor adipiscing tellus at laoreet.
+Cras pellentesque laoreet lorem, sit amet luctus purus sollicitudin
+pellentesque. In eget metus nec turpis gravida rutrum vel vel risus.
+Maecenas viverra pulvinar ultrices. Proin interdum eros nec est ultrices
+ultricies. Etiam sit amet libero ligula, ac ultrices neque. Sed elementum
+accumsan pellentesque.
+
+Cras auctor mattis neque vitae pellentesque. Ut rhoncus sapien sed turpis
+dignissim dictum. Morbi imperdiet porttitor elementum. In nec arcu id lectus
+pulvinar hendrerit eu eget dolor. Quisque at nulla ut ligula consectetur
+suscipit sit amet ac orci. In sit amet mattis magna. Curabitur iaculis est
+in enim porta cursus vulputate diam faucibus. Cum sociis natoque penatibus
+et magnis dis parturient montes, nascetur ridiculus mus. Cras fermentum
+placerat felis, sit amet dictum neque ultricies ut. Lorem ipsum dolor sit
+amet, consectetur adipiscing elit. Mauris et tortor id justo pretium
+adipiscing eu quis purus. Sed odio orci, tincidunt vehicula porta venenatis,
+adipiscing sed mauris.
+
+Suspendisse potenti. Phasellus tincidunt porta eros, eget mattis mi tempor
+in. Praesent hendrerit enim vitae magna iaculis interdum. Nullam sed luctus
+elit. Etiam vehicula, ipsum ac mollis dictum, elit felis interdum erat, nec
+interdum est urna et lectus. Morbi eget odio eget libero rutrum consectetur
+et sed odio. Vestibulum felis ipsum, malesuada ut sollicitudin sit amet,
+elementum vitae sapien. Vestibulum sodales, nisi et posuere consequat, erat
+mi aliquet nisi, euismod varius ligula erat vitae risus. Cum sociis natoque
+penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis eu
+metus nisi. Etiam vel tortor non lectus bibendum sollicitudin ac ac erat.
+Cras sapien nibh, condimentum eu mollis a, auctor eu neque. Aenean convallis
+aliquet mollis. Integer sed diam in dolor tincidunt pellentesque in sed leo.
+Phasellus eu adipiscing arcu. Donec pharetra porta pellentesque. Suspendisse
+ornare fringilla enim, eu bibendum tortor mattis semper.
+
+Donec non velit erat, eu facilisis sem. Cras facilisis, orci non tempus
+accumsan, ligula magna tincidunt lectus, sed sagittis erat massa vitae orci.
+Maecenas imperdiet blandit leo, ac lobortis diam venenatis vitae. Vestibulum
+ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+Suspendisse potenti. Ut tincidunt viverra leo at venenatis. Cras lacus
+neque, lacinia in rutrum ut, aliquet in mi. Vestibulum sed risus eros, sed
+faucibus leo. Maecenas congue varius tellus non viverra. Morbi ultrices
+neque quis lorem porta euismod. Aenean sollicitudin ornare quam eu lobortis.
+Fusce velit leo, pharetra eu porta in, interdum eget risus. Aenean luctus
+interdum magna, et facilisis lacus auctor vel. Sed sollicitudin, eros
+tristique adipiscing consequat, nibh nisl dictum mauris, eu interdum tellus
+purus ut lectus. Proin interdum lectus sed neque pharetra suscipit. Quisque
+lorem quam, iaculis sed egestas a, laoreet id odio. Integer varius sem sed
+magna facilisis sodales. Etiam id accumsan odio. Quisque sodales velit sed
+augue fermentum vitae laoreet odio tincidunt. Quisque justo purus, viverra
+eu consequat quis, sollicitudin eget massa.
\ No newline at end of file
diff --git a/LayoutTests/http/tests/media/text-served-as-text-expected.txt b/LayoutTests/http/tests/media/text-served-as-text-expected.txt
new file mode 100644
index 0000000..adbcc82
--- /dev/null
+++ b/LayoutTests/http/tests/media/text-served-as-text-expected.txt
@@ -0,0 +1,6 @@
+EXPECTED (video.error == 'null') OK
+EVENT(loadstart)
+EVENT(error)
+failed trying to load text file served as text OK
+END OF TEST
+
diff --git a/LayoutTests/http/tests/media/text-served-as-text.html b/LayoutTests/http/tests/media/text-served-as-text.html
new file mode 100644
index 0000000..0ec31fc
--- /dev/null
+++ b/LayoutTests/http/tests/media/text-served-as-text.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>text file served as 'text/plain'</title>
+        <script src=../../../media/video-test.js></script>
+        <script>
+            function loadedmetadata(evt) 
+            {
+                logResult(false, "loaded text file served as text");
+                endTest();
+            }
+
+            function error(evt)
+            {
+                logResult(true, "failed trying to load text file served as text");
+                endTest();
+            }
+
+            function start() 
+            {
+                findMediaElement();
+
+                waitForEvent('loadedmetadata', loadedmetadata);
+                waitForEvent("error", error);
+                waitForEvent("loadstart");
+                testExpected("video.error", null);
+
+                var movie = "resources/test.txt";
+                video.src = "http://127.0.0.1:8000/media/video-throttled-load.cgi?name=" + movie + "&throttle=99999&type=text/plain";
+            }
+        </script>
+    </head>
+
+    <body onload="start()">
+        <video controls></video>
+    </body>
+</html>
diff --git a/LayoutTests/http/tests/media/video-served-as-text-expected.txt b/LayoutTests/http/tests/media/video-served-as-text-expected.txt
new file mode 100644
index 0000000..e5fc07f
--- /dev/null
+++ b/LayoutTests/http/tests/media/video-served-as-text-expected.txt
@@ -0,0 +1,6 @@
+EXPECTED (video.error == 'null') OK
+EVENT(loadstart)
+EVENT(loadedmetadata)
+loaded media file served as text OK
+END OF TEST
+
diff --git a/LayoutTests/http/tests/media/video-served-as-text.html b/LayoutTests/http/tests/media/video-served-as-text.html
new file mode 100644
index 0000000..c1d9a66
--- /dev/null
+++ b/LayoutTests/http/tests/media/video-served-as-text.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>media file served as 'text/plain'</title>
+        <script src=../../../media/media-file.js></script>
+        <script src=../../../media/video-test.js></script>
+        <script>
+            function loadedmetadata(evt) 
+            {
+                logResult(true, "loaded media file served as text");
+                endTest();
+            }
+
+            function error(evt)
+            {
+                logResult(false, "failed trying to load media file served as text");
+                endTest();
+            }
+
+            function start() 
+            {
+                findMediaElement();
+
+                waitForEvent('loadedmetadata', loadedmetadata);
+                waitForEvent("error", error);
+                waitForEvent("loadstart");
+                testExpected("video.error", null);
+
+                var movie = findMediaFile("video", "resources/test");
+                video.src = "http://127.0.0.1:8000/media/video-throttled-load.cgi?name=" + movie + "&throttle=99999&type=text/plain";
+            }
+        </script>
+    </head>
+
+    <body onload="start()">
+        <video controls></video>
+    </body>
+</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 4166a23..0f236b1 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2010-08-27  Jer Noble  <jer.noble at apple.com>
+
+        Reviewed by Eric Carlson.
+
+        text/plain non-video files cause <video> to hang (while reading them?)
+        https://bugs.webkit.org/show_bug.cgi?id=44212
+        
+        Disable all the QuickTime components which ingest .txt files.
+
+        New tests: 
+        * http/tests/media/video-served-as-text.html: Added.
+        * http/tests/media/text-served-as-text.html: Added.
+
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+        (WebCore::MediaPlayerPrivate::createQTMovie): Disable all four text
+            'eat' components.
+        * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieDisableComponent.
+        * platform/mac/WebCoreSystemInterface.mm: Add wkQTMovieDisableComponent.
+
 2010-08-30  Robert Hogan  <robert at webkit.org>
 
         Reviewed by Simon Hausmann.
diff --git a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm b/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
index 665092a..c180438 100644
--- a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
+++ b/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
@@ -263,6 +263,17 @@ void MediaPlayerPrivate::createQTMovie(const String& url)
 
 void MediaPlayerPrivate::createQTMovie(NSURL *url, NSDictionary *movieAttributes)
 {
+    // We must disable components each time we open a movie because we cannot guarantee
+    // that the QTKitServer process hasn't disappeared on us:
+    uint32_t componentsToDisable[4][5] = {
+        {'eat ', 'TEXT', 'text', 0, 0},
+        {'eat ', 'TXT ', 'text', 0, 0},    
+        {'eat ', 'utxt', 'text', 0, 0},  
+        {'eat ', 'TEXT', 'tx3g', 0, 0},  
+    };
+    for (size_t i = 0; i < sizeof(componentsToDisable)/sizeof(componentsToDisable[0]); ++i) 
+         wkQTMovieDisableComponent(componentsToDisable[i]);
+
     [[NSNotificationCenter defaultCenter] removeObserver:m_objcObserver.get()];
     
     bool recreating = false;
diff --git a/WebCore/platform/mac/WebCoreSystemInterface.h b/WebCore/platform/mac/WebCoreSystemInterface.h
index 1f14311..0cc7fd5 100644
--- a/WebCore/platform/mac/WebCoreSystemInterface.h
+++ b/WebCore/platform/mac/WebCoreSystemInterface.h
@@ -121,6 +121,7 @@ extern BOOL (*wkMediaControllerThemeAvailable)(int themeStyle);
 extern void (*wkPopupMenu)(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*);
 extern unsigned (*wkQTIncludeOnlyModernMediaFileTypes)(void);
 extern int (*wkQTMovieDataRate)(QTMovie*);
+extern void (*wkQTMovieDisableComponent)(uint32_t[5]);
 extern float (*wkQTMovieMaxTimeLoaded)(QTMovie*);
 extern NSString *(*wkQTMovieMaxTimeLoadedChangeNotification)(void);
 extern float (*wkQTMovieMaxTimeSeekable)(QTMovie*);
diff --git a/WebCore/platform/mac/WebCoreSystemInterface.mm b/WebCore/platform/mac/WebCoreSystemInterface.mm
index 2a06f15..309a8fb 100644
--- a/WebCore/platform/mac/WebCoreSystemInterface.mm
+++ b/WebCore/platform/mac/WebCoreSystemInterface.mm
@@ -56,6 +56,7 @@ void (*wkGetWheelEventDeltas)(NSEvent*, float* deltaX, float* deltaY, BOOL* cont
 void (*wkPopupMenu)(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*);
 unsigned (*wkQTIncludeOnlyModernMediaFileTypes)(void);
 int (*wkQTMovieDataRate)(QTMovie*);
+void (*wkQTMovieDisableComponent)(uint32_t[5]);
 float (*wkQTMovieMaxTimeLoaded)(QTMovie*);
 NSString *(*wkQTMovieMaxTimeLoadedChangeNotification)(void);
 float (*wkQTMovieMaxTimeSeekable)(QTMovie*);
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index f3c9b43..c556d5d 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,16 @@
+2010-08-27  Jer Noble  <jer.noble at apple.com>
+
+        Reviewed by Eric Carlson.
+
+        text/plain non-video files cause <video> to hang (while reading them?)
+        https://bugs.webkit.org/show_bug.cgi?id=44212
+        
+        Add the new WebKitSystemInterface function WKQTMovieDisableComponent to
+        the initialization routine.
+
+        * WebCoreSupport/WebSystemInterface.mm:
+        (InitWebCoreSystemInterface): Initialize WKQTMovieDisableComponent.
+
 2010-08-30  Sheriff Bot  <webkit.review.bot at gmail.com>
 
         Unreviewed, rolling out r66198.
diff --git a/WebKit/mac/WebCoreSupport/WebSystemInterface.mm b/WebKit/mac/WebCoreSupport/WebSystemInterface.mm
index 0b74dee..47b16b2 100644
--- a/WebKit/mac/WebCoreSupport/WebSystemInterface.mm
+++ b/WebKit/mac/WebCoreSupport/WebSystemInterface.mm
@@ -84,6 +84,7 @@ void InitWebCoreSystemInterface(void)
     INIT(SignalCFReadStreamHasBytes);
     INIT(QTIncludeOnlyModernMediaFileTypes);
     INIT(QTMovieDataRate);
+    INIT(QTMovieDisableComponent);
     INIT(QTMovieMaxTimeLoaded);
     INIT(QTMovieMaxTimeLoadedChangeNotification);
     INIT(QTMovieMaxTimeSeekable);
diff --git a/WebKitLibraries/WebKitSystemInterface.h b/WebKitLibraries/WebKitSystemInterface.h
index 8732d81..5f6dcdb 100644
--- a/WebKitLibraries/WebKitSystemInterface.h
+++ b/WebKitLibraries/WebKitSystemInterface.h
@@ -201,6 +201,7 @@ float WKQTMovieMaxTimeLoaded(QTMovie* movie);
 float WKQTMovieMaxTimeSeekable(QTMovie* movie);
 NSString *WKQTMovieMaxTimeLoadedChangeNotification(void);
 void WKQTMovieViewSetDrawSynchronously(QTMovieView* view, BOOL sync);
+void WKQTMovieDisableComponent(uint32_t[5]);
 
 CFStringRef WKCopyFoundationCacheDirectory(void);
 
diff --git a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a
index fc5b8a0..39ceb4a 100644
Binary files a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a and b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a differ
diff --git a/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a b/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
index dd6e22e..6dd8afc 100644
Binary files a/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a and b/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a differ

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list