Title: [160434] trunk
Revision
160434
Author
[email protected]
Date
2013-12-11 08:28:27 -0800 (Wed, 11 Dec 2013)

Log Message

[GTK] Add "enable-mediasource" property to WebKitWebSettings
https://bugs.webkit.org/show_bug.cgi?id=125566

Patch by Brendan Long <[email protected]> on 2013-12-11
Reviewed by Philippe Normand.

Source/WebKit/gtk:

* tests/testwebsettings.c:
(test_webkit_web_settings_copy):
* webkit/webkitwebsettings.cpp:
(webkit_web_settings_class_init):
(webkit_web_settings_set_property):
(webkit_web_settings_get_property):
* webkit/webkitwebsettingsprivate.h:
* webkit/webkitwebview.cpp:
(webkit_web_view_update_settings):
(webkit_web_view_settings_notify):

Source/WebKit2:

* UIProcess/API/gtk/WebKitSettings.cpp:
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_enable_mediasource):
(webkit_settings_set_enable_mediasource):
* UIProcess/API/gtk/WebKitSettings.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
* UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
(testWebKitSettings):

Tools:

* DumpRenderTree/gtk/DumpRenderTree.cpp:
(resetDefaultsToConsistentValues): Turn MediaSource on by default for easier testing.
* DumpRenderTree/gtk/TestRunnerGtk.cpp:
(TestRunner::overridePreference): Allow overriding WebKitMediaSourceEnabled.

Modified Paths

Diff

Modified: trunk/Source/WebKit/gtk/ChangeLog (160433 => 160434)


--- trunk/Source/WebKit/gtk/ChangeLog	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Source/WebKit/gtk/ChangeLog	2013-12-11 16:28:27 UTC (rev 160434)
@@ -1,3 +1,21 @@
+2013-12-11  Brendan Long  <[email protected]>
+
+        [GTK] Add "enable-mediasource" property to WebKitWebSettings
+        https://bugs.webkit.org/show_bug.cgi?id=125566
+
+        Reviewed by Philippe Normand.
+
+        * tests/testwebsettings.c:
+        (test_webkit_web_settings_copy):
+        * webkit/webkitwebsettings.cpp:
+        (webkit_web_settings_class_init):
+        (webkit_web_settings_set_property):
+        (webkit_web_settings_get_property):
+        * webkit/webkitwebsettingsprivate.h:
+        * webkit/webkitwebview.cpp:
+        (webkit_web_view_update_settings):
+        (webkit_web_view_settings_notify):
+
 2013-12-10  Joanmarie Diggs  <[email protected]>
 
         AX: [ATK] Convert the get_text atktest.c unit tests to layout tests

Modified: trunk/Source/WebKit/gtk/tests/testwebsettings.c (160433 => 160434)


--- trunk/Source/WebKit/gtk/tests/testwebsettings.c	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Source/WebKit/gtk/tests/testwebsettings.c	2013-12-11 16:28:27 UTC (rev 160434)
@@ -34,24 +34,30 @@
                  "enable-webgl", TRUE,
                  "enable-fullscreen", TRUE,
                  "auto-load-images", FALSE,
-                 "default-encoding", "utf-8", NULL);
+                 "default-encoding", "utf-8",
+                 "enable-mediasource", TRUE,
+                 NULL);
 
     WebKitWebSettings *copy = webkit_web_settings_copy(settings);
 
     gboolean enableWebGL = FALSE;
     gboolean enableFullscreen = FALSE;
     gboolean autoLoadImages = FALSE;
+    gboolean enableMediaSource = FALSE;
     char *defaultEncoding = 0;
     g_object_get(copy,
                  "enable-fullscreen", &enableFullscreen,
                  "enable-webgl", &enableWebGL,
                  "auto-load-images", &autoLoadImages,
-                 "default-encoding", &defaultEncoding, NULL);
+                 "default-encoding", &defaultEncoding,
+                 "enable-mediasource", &enableMediaSource,
+                 NULL);
 
     g_assert(enableWebGL);
     g_assert(enableFullscreen);
     g_assert(!autoLoadImages);
     g_assert_cmpstr(defaultEncoding, ==, "utf-8");
+    g_assert(enableMediaSource);
     g_free(defaultEncoding);
 }
 

Modified: trunk/Source/WebKit/gtk/webkit/webkitwebsettings.cpp (160433 => 160434)


--- trunk/Source/WebKit/gtk/webkit/webkitwebsettings.cpp	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Source/WebKit/gtk/webkit/webkitwebsettings.cpp	2013-12-11 16:28:27 UTC (rev 160434)
@@ -123,7 +123,8 @@
     PROP_MEDIA_PLAYBACK_ALLOWS_INLINE,
     PROP_ENABLE_CSS_SHADERS,
     PROP_ENABLE_RUNNING_OF_INSECURE_CONTENT,
-    PROP_ENABLE_DISPLAY_OF_INSECURE_CONTENT
+    PROP_ENABLE_DISPLAY_OF_INSECURE_CONTENT,
+    PROP_ENABLE_MEDIA_SOURCE
 };
 
 static void webkit_web_settings_finalize(GObject* object);
@@ -1024,6 +1025,26 @@
             _("Whether non-HTTPS resources can run on HTTPS pages."),
             TRUE,
             flags));
+
+    /**
+    * WebKitWebSettings:enable-mediasource:
+    *
+    * Enable or disable support for MediaSource on pages. MediaSource is an
+    * experimental proposal which extends HTMLMediaElement to allow
+    * _javascript_ to generate media streams for playback.  The standard is
+    * currently a work-in-progress by the W3C HTML Media Task Force.
+    *
+    * See also http://www.w3.org/TR/media-source/
+    *
+    * Since: 2.4
+    */
+    g_object_class_install_property(gobject_class,
+        PROP_ENABLE_MEDIA_SOURCE,
+        g_param_spec_boolean("enable-mediasource",
+            _("Enable MediaSource"),
+            _("Whether MediaSource should be enabled."),
+            FALSE,
+            flags));
 }
 
 static void webkit_web_settings_init(WebKitWebSettings* web_settings)
@@ -1223,6 +1244,9 @@
     case PROP_ENABLE_RUNNING_OF_INSECURE_CONTENT:
         priv->enableRunningOfInsecureContent = g_value_get_boolean(value);
         break;
+    case PROP_ENABLE_MEDIA_SOURCE:
+        priv->enableMediaSource = g_value_get_boolean(value);
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
         break;
@@ -1412,6 +1436,9 @@
     case PROP_ENABLE_RUNNING_OF_INSECURE_CONTENT:
         g_value_set_boolean(value, priv->enableRunningOfInsecureContent);
         break;
+    case PROP_ENABLE_MEDIA_SOURCE:
+        g_value_set_boolean(value, priv->enableMediaSource);
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
         break;

Modified: trunk/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h (160433 => 160434)


--- trunk/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h	2013-12-11 16:28:27 UTC (rev 160434)
@@ -88,6 +88,7 @@
     gboolean mediaPlaybackAllowsInline;
     gboolean enableDisplayOfInsecureContent;
     gboolean enableRunningOfInsecureContent;
+    gboolean enableMediaSource;
 };
 
 WEBKIT_API void webkit_web_settings_add_extra_plugin_directory(WebKitWebView*, const gchar* directory);

Modified: trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp (160433 => 160434)


--- trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp	2013-12-11 16:28:27 UTC (rev 160434)
@@ -3623,6 +3623,10 @@
     WebCore::RuntimeEnabledFeatures::sharedFeatures().setCSSRegionsEnabled(true);
 #endif
 
+#if ENABLE(MEDIA_SOURCE)
+    coreSettings.setMediaSourceEnabled(settingsPrivate->enableMediaSource);
+#endif
+
     // Use mock scrollbars if in DumpRenderTree mode (i.e. testing layout tests).
     coreSettings.setMockScrollbarsEnabled(DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled());
 
@@ -3771,6 +3775,11 @@
         settings.setCSSCustomFilterEnabled(g_value_get_boolean(&value));
 #endif
 
+#if ENABLE(MEDIA_SOURCE)
+    else if (name == g_intern_string("enable-mediasource"))
+        settings.setMediaSourceEnabled(g_value_get_boolean(&value));
+#endif
+
     else if (!g_object_class_find_property(G_OBJECT_GET_CLASS(webSettings), name))
         g_warning("Unexpected setting '%s'", name);
     g_value_unset(&value);

Modified: trunk/Source/WebKit2/ChangeLog (160433 => 160434)


--- trunk/Source/WebKit2/ChangeLog	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Source/WebKit2/ChangeLog	2013-12-11 16:28:27 UTC (rev 160434)
@@ -1,3 +1,21 @@
+2013-12-11  Brendan Long  <[email protected]>
+
+        [GTK] Add "enable-mediasource" property to WebKitWebSettings
+        https://bugs.webkit.org/show_bug.cgi?id=125566
+
+        Reviewed by Philippe Normand.
+
+        * UIProcess/API/gtk/WebKitSettings.cpp:
+        (webKitSettingsSetProperty):
+        (webKitSettingsGetProperty):
+        (webkit_settings_class_init):
+        (webkit_settings_get_enable_mediasource):
+        (webkit_settings_set_enable_mediasource):
+        * UIProcess/API/gtk/WebKitSettings.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+        * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
+        (testWebKitSettings):
+
 2013-12-11  Michał Pakuła vel Rutka  <[email protected]>
 
         [EFL] Fix build with CONTEXT_MENUS flag set OFF

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp (160433 => 160434)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2013-12-11 16:28:27 UTC (rev 160434)
@@ -137,7 +137,8 @@
     PROP_ENABLE_ACCELERATED_2D_CANVAS,
     PROP_ENABLE_WRITE_CONSOLE_MESSAGES_TO_STDOUT,
     PROP_ENABLE_MEDIA_STREAM,
-    PROP_ENABLE_SPATIAL_NAVIGATION
+    PROP_ENABLE_SPATIAL_NAVIGATION,
+    PROP_ENABLE_MEDIASOURCE
 };
 
 static void webKitSettingsConstructed(GObject* object)
@@ -305,6 +306,9 @@
     case PROP_ENABLE_SPATIAL_NAVIGATION:
         webkit_settings_set_enable_spatial_navigation(settings, g_value_get_boolean(value));
         break;
+    case PROP_ENABLE_MEDIASOURCE:
+        webkit_settings_set_enable_mediasource(settings, g_value_get_boolean(value));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -457,6 +461,9 @@
     case PROP_ENABLE_SPATIAL_NAVIGATION:
         g_value_set_boolean(value, webkit_settings_get_enable_spatial_navigation(settings));
         break;
+    case PROP_ENABLE_MEDIASOURCE:
+        g_value_set_boolean(value, webkit_settings_get_enable_mediasource(settings));
+        break;
 
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
@@ -1189,6 +1196,25 @@
             FALSE,
             readWriteConstructParamFlags));
 
+    /**
+     * WebKitSettings:enable-mediasource:
+     *
+     * Enable or disable support for MediaSource on pages. MediaSource is an
+     * experimental proposal which extends HTMLMediaElement to allow
+     * _javascript_ to generate media streams for playback.  The standard is
+     * currently a work-in-progress by the W3C HTML Media Task Force.
+     *
+     * See also http://www.w3.org/TR/media-source/
+     *
+     * Since: 2.4
+     */
+    g_object_class_install_property(gObjectClass,
+        PROP_ENABLE_MEDIASOURCE,
+        g_param_spec_boolean("enable-mediasource",
+            _("Enable MediaSource"),
+            _("Whether MediaSource should be enabled."),
+            FALSE,
+            readWriteConstructParamFlags));
 }
 
 WebPreferences* webkitSettingsGetPreferences(WebKitSettings* settings)
@@ -2932,3 +2958,42 @@
 
     return settings->priv->preferences->spatialNavigationEnabled();
 }
+
+/**
+ * webkit_settings_get_enable_mediasource:
+ * @settings: a #WebKitSettings
+ *
+ * Get the #WebKitSettings:enable-mediasource property.
+ *
+ * Returns: %TRUE If MediaSource support is enabled or %FALSE otherwise.
+ *
+ * Since: 2.4
+ */
+gboolean webkit_settings_get_enable_mediasource(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
+
+    return settings->priv->preferences->mediaSourceEnabled();
+}
+
+/**
+ * webkit_settings_set_enable_mediasource:
+ * @settings: a #WebKitSettings
+ * @enabled: Value to be set
+ *
+ * Set the #WebKitSettings:enable-mediasource property.
+ *
+ * Since: 2.4
+ */
+void webkit_settings_set_enable_mediasource(WebKitSettings* settings, gboolean enabled)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    bool currentValue = priv->preferences->mediaSourceEnabled();
+    if (currentValue == enabled)
+        return;
+
+    priv->preferences->setMediaSourceEnabled(enabled);
+    g_object_notify(G_OBJECT(settings), "enable-mediasource");
+}

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h (160433 => 160434)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2013-12-11 16:28:27 UTC (rev 160434)
@@ -407,6 +407,13 @@
 webkit_settings_set_enable_spatial_navigation                  (WebKitSettings *settings,
                                                                 gboolean        enabled);
 
+WEBKIT_API gboolean
+webkit_settings_get_enable_mediasource                         (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_mediasource                         (WebKitSettings *settings,
+                                                                gboolean        enabled);
+
 G_END_DECLS
 
 #endif /* WebKitSettings_h */

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt (160433 => 160434)


--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2013-12-11 16:28:27 UTC (rev 160434)
@@ -368,6 +368,8 @@
 webkit_settings_set_enable_media_stream
 webkit_settings_get_enable_spatial_navigation
 webkit_settings_set_enable_spatial_navigation
+webkit_settings_get_enable_mediasource
+webkit_settings_set_enable_mediasource
 
 <SUBSECTION Standard>
 WebKitSettingsClass

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp (160433 => 160434)


--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2013-12-11 16:28:27 UTC (rev 160434)
@@ -268,6 +268,11 @@
     webkit_settings_set_enable_spatial_navigation(settings, TRUE);
     g_assert(webkit_settings_get_enable_spatial_navigation(settings));
 
+    // MediaSource is disabled by default
+    g_assert(!webkit_settings_get_enable_mediasource(settings));
+    webkit_settings_set_enable_mediasource(settings, TRUE);
+    g_assert(webkit_settings_get_enable_mediasource(settings));
+
     g_object_unref(G_OBJECT(settings));
 }
 

Modified: trunk/Tools/ChangeLog (160433 => 160434)


--- trunk/Tools/ChangeLog	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Tools/ChangeLog	2013-12-11 16:28:27 UTC (rev 160434)
@@ -1,3 +1,15 @@
+2013-12-11  Brendan Long  <[email protected]>
+
+        [GTK] Add "enable-mediasource" property to WebKitWebSettings
+        https://bugs.webkit.org/show_bug.cgi?id=125566
+
+        Reviewed by Philippe Normand.
+
+        * DumpRenderTree/gtk/DumpRenderTree.cpp:
+        (resetDefaultsToConsistentValues): Turn MediaSource on by default for easier testing.
+        * DumpRenderTree/gtk/TestRunnerGtk.cpp:
+        (TestRunner::overridePreference): Allow overriding WebKitMediaSourceEnabled.
+
 2013-12-11  Dan Bernstein  <[email protected]>
 
         [Mac] Observe the activeURL property to keep the MiniBrowser URL field up to date

Modified: trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp (160433 => 160434)


--- trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp	2013-12-11 16:28:27 UTC (rev 160434)
@@ -496,6 +496,7 @@
         "enable-hyperlink-auditing", FALSE,
         "editing-behavior", WEBKIT_EDITING_BEHAVIOR_UNIX,
         "enable-fullscreen", TRUE,
+        "enable-mediasource", TRUE,
         NULL);
     webkit_web_view_set_settings(webView, settings);
     webkit_set_cache_model(WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER);

Modified: trunk/Tools/DumpRenderTree/gtk/TestRunnerGtk.cpp (160433 => 160434)


--- trunk/Tools/DumpRenderTree/gtk/TestRunnerGtk.cpp	2013-12-11 16:16:16 UTC (rev 160433)
+++ trunk/Tools/DumpRenderTree/gtk/TestRunnerGtk.cpp	2013-12-11 16:28:27 UTC (rev 160434)
@@ -695,6 +695,8 @@
         propertyName = "auto-load-images";
     else if (g_str_equal(originalName.get(), "WebKitShouldRespectImageOrientation"))
         propertyName = "respect-image-orientation";
+    else if (g_str_equal(originalName.get(), "WebKitMediaSourceEnabled"))
+        propertyName = "enable-mediasource";
     else if (g_str_equal(originalName.get(), "WebKitTabToLinksPreferenceKey")) {
         DumpRenderTreeSupportGtk::setLinksIncludedInFocusChain(booleanFromValue(valueAsString.get()));
         return;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to