diff --git a/midori/midori-view.c b/midori/midori-view.c
index 8e6a350c..14cd5719 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -3878,9 +3878,31 @@ static gchar* list_netscape_plugins ()
g_string_append (ns_plugins, "
No plugins found |
");
g_strfreev (items);
g_free (value);
+ gtk_widget_destroy (web_view);
return g_string_free (ns_plugins, FALSE);
}
+static gchar*
+list_video_formats ()
+{
+ GtkWidget* web_view = webkit_web_view_new ();
+ WebKitWebFrame* web_frame = webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW (web_view));
+ JSContextRef js_context = webkit_web_frame_get_global_context (web_frame);
+ gchar* value = sokoke_js_script_eval (js_context,
+ "var supported = function (format) { "
+ "var video = document.createElement('video');"
+ "return !!video.canPlayType && video.canPlayType (format) != 'no' };"
+ "'H264 | ' + "
+ "supported('video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"') + ' |
' + "
+ "'Ogg Theora | ' + "
+ "supported('video/ogg; codecs=\"theora, vorbis\"') + ' |
' + "
+ "'WebM | ' + "
+ "supported('video/webm; codecs=\"vp8, vorbis\"') + ' |
'"
+ "", NULL);
+ gtk_widget_destroy (web_view);
+ return value;
+}
+
static gchar*
prepare_speed_dial_html (MidoriView* view)
{
@@ -4147,6 +4169,7 @@ midori_view_set_uri (MidoriView* view,
gchar* command_line = g_strjoinv (" ", argument_vector);
gchar* ident = katze_object_get_string (view->settings, "user-agent");
gchar* netscape_plugins = list_netscape_plugins ();
+ gchar* video_formats = list_video_formats ();
#if defined (G_OS_WIN32)
gchar* sys_name = g_strdup ("Windows");
#else
@@ -4196,6 +4219,7 @@ midori_view_set_uri (MidoriView* view,
"Identification | %s |
"
""
"Netscape Plugins:
"
+ "Video Formats:
"
"