[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