Title: [158360] trunk/Source
Revision
158360
Author
[email protected]
Date
2013-10-31 08:35:02 -0700 (Thu, 31 Oct 2013)

Log Message

[WK2][GTK] enable-media-stream Setting
https://bugs.webkit.org/show_bug.cgi?id=123145

Reviewed by Anders Carlsson.

Source/WebCore:

* page/Settings.in: new mediaStreamEnabled setting.

Source/WebKit2:

* Shared/WebPreferencesStore.h: New MediaStreamEnabled boolean preference.
* UIProcess/API/C/WKPreferences.cpp: MediaStreamEnabled getter and
setter functions.
(WKPreferencesSetMediaStreamEnabled):
(WKPreferencesGetMediaStreamEnabled):
* UIProcess/API/C/WKPreferences.h:
* UIProcess/API/gtk/WebKitSettings.cpp: Add a enable-media-stream
property to the GTK WebKitSettings class. It will act as a facade
to the MediaStreamEnabled preference.
(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_enable_media_stream):
(webkit_settings_set_enable_media_stream):
* UIProcess/API/gtk/WebKitSettings.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
* UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
(testWebKitSettings): Test enable-media-stream websetting.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
Allow WKTR to override the MediaStreamEnabled preference.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Update MediaStreamEnabled
along with the other settings.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (158359 => 158360)


--- trunk/Source/WebCore/ChangeLog	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebCore/ChangeLog	2013-10-31 15:35:02 UTC (rev 158360)
@@ -1,3 +1,12 @@
+2013-10-31  Philippe Normand  <[email protected]>
+
+        [WK2][GTK] enable-media-stream Setting
+        https://bugs.webkit.org/show_bug.cgi?id=123145
+
+        Reviewed by Anders Carlsson.
+
+        * page/Settings.in: new mediaStreamEnabled setting.
+
 2013-10-31  Zan Dobersek  <[email protected]>
 
         Manage SVGPathByteStream through std::unique_ptr

Modified: trunk/Source/WebCore/page/Settings.in (158359 => 158360)


--- trunk/Source/WebCore/page/Settings.in	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebCore/page/Settings.in	2013-10-31 15:35:02 UTC (rev 158360)
@@ -116,6 +116,7 @@
 paginateDuringLayoutEnabled initial=false
 fullScreenEnabled initial=false, conditional=FULLSCREEN_API
 asynchronousSpellCheckingEnabled initial=false
+mediaStreamEnabled initial=false
 
 # This feature requires an implementation of ValidationMessageClient.
 interactiveFormValidationEnabled initial=false

Modified: trunk/Source/WebKit2/ChangeLog (158359 => 158360)


--- trunk/Source/WebKit2/ChangeLog	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebKit2/ChangeLog	2013-10-31 15:35:02 UTC (rev 158360)
@@ -1,3 +1,35 @@
+2013-10-31  Philippe Normand  <[email protected]>
+
+        [WK2][GTK] enable-media-stream Setting
+        https://bugs.webkit.org/show_bug.cgi?id=123145
+
+        Reviewed by Anders Carlsson.
+
+        * Shared/WebPreferencesStore.h: New MediaStreamEnabled boolean preference.
+        * UIProcess/API/C/WKPreferences.cpp: MediaStreamEnabled getter and
+        setter functions.
+        (WKPreferencesSetMediaStreamEnabled):
+        (WKPreferencesGetMediaStreamEnabled):
+        * UIProcess/API/C/WKPreferences.h:
+        * UIProcess/API/gtk/WebKitSettings.cpp: Add a enable-media-stream
+        property to the GTK WebKitSettings class. It will act as a facade
+        to the MediaStreamEnabled preference.
+        (webKitSettingsSetProperty):
+        (webKitSettingsGetProperty):
+        (webkit_settings_class_init):
+        (webkit_settings_get_enable_media_stream):
+        (webkit_settings_set_enable_media_stream):
+        * UIProcess/API/gtk/WebKitSettings.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+        * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
+        (testWebKitSettings): Test enable-media-stream websetting.
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+        Allow WKTR to override the MediaStreamEnabled preference.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences): Update MediaStreamEnabled
+        along with the other settings.
+
 2013-10-30  Brady Eidson  <[email protected]>
 
         IDB Database versions are uint64_t, not int64_t

Modified: trunk/Source/WebKit2/Shared/WebPreferencesStore.h (158359 => 158360)


--- trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2013-10-31 15:35:02 UTC (rev 158360)
@@ -167,6 +167,7 @@
     macro(ThreadedScrollingEnabled, threadedScrollingEnabled, Bool, bool, true) \
     macro(SimpleLineLayoutEnabled, simpleLineLayoutEnabled, Bool, bool, true) \
     macro(SimpleLineLayoutDebugBordersEnabled, simpleLineLayoutDebugBordersEnabled, Bool, bool, false) \
+    macro(MediaStreamEnabled, mediaStreamEnabled, Bool, bool, false) \
     \
 
 #define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (158359 => 158360)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2013-10-31 15:35:02 UTC (rev 158360)
@@ -1195,3 +1195,13 @@
 {
     return toImpl(preferencesRef)->simpleLineLayoutDebugBordersEnabled();
 }
+
+void WKPreferencesSetMediaStreamEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+    toImpl(preferencesRef)->setMediaStreamEnabled(enabled);
+}
+
+bool WKPreferencesGetMediaStreamEnabled(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->mediaStreamEnabled();
+}

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.h (158359 => 158360)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.h	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.h	2013-10-31 15:35:02 UTC (rev 158360)
@@ -240,6 +240,10 @@
 WK_EXPORT void WKPreferencesSetAsynchronousSpellCheckingEnabled(WKPreferencesRef preferencesRef, bool enabled);
 WK_EXPORT bool WKPreferencesGetAsynchronousSpellCheckingEnabled(WKPreferencesRef preferencesRef);
 
+// Defaults to false
+WK_EXPORT void WKPreferencesSetMediaStreamEnabled(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetMediaStreamEnabled(WKPreferencesRef preferencesRef);
+
 #ifdef __cplusplus
 }
 #endif

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


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp	2013-10-31 15:35:02 UTC (rev 158360)
@@ -135,7 +135,8 @@
     PROP_USER_AGENT,
     PROP_ENABLE_SMOOTH_SCROLLING,
     PROP_ENABLE_ACCELERATED_2D_CANVAS,
-    PROP_ENABLE_WRITE_CONSOLE_MESSAGES_TO_STDOUT
+    PROP_ENABLE_WRITE_CONSOLE_MESSAGES_TO_STDOUT,
+    PROP_ENABLE_MEDIA_STREAM
 };
 
 static void webKitSettingsConstructed(GObject* object)
@@ -297,6 +298,9 @@
     case PROP_ENABLE_WRITE_CONSOLE_MESSAGES_TO_STDOUT:
         webkit_settings_set_enable_write_console_messages_to_stdout(settings, g_value_get_boolean(value));
         break;
+    case PROP_ENABLE_MEDIA_STREAM:
+        webkit_settings_set_enable_media_stream(settings, g_value_get_boolean(value));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -443,6 +447,9 @@
     case PROP_ENABLE_WRITE_CONSOLE_MESSAGES_TO_STDOUT:
         g_value_set_boolean(value, webkit_settings_get_enable_write_console_messages_to_stdout(settings));
         break;
+    case PROP_ENABLE_MEDIA_STREAM:
+        g_value_set_boolean(value, webkit_settings_get_enable_media_stream(settings));
+        break;
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
         break;
@@ -1135,6 +1142,25 @@
             FALSE,
             readWriteConstructParamFlags));
 
+    /**
+     * WebKitSettings:enable-media-stream:
+     *
+     * Enable or disable support for MediaStream on pages. MediaStream
+     * is an experimental proposal for allowing web pages to access
+     * audio and video devices for capture.
+     *
+     * See also http://dev.w3.org/2011/webrtc/editor/getusermedia.html
+     *
+     * Since: 2.4
+     */
+    g_object_class_install_property(gObjectClass,
+        PROP_ENABLE_MEDIA_STREAM,
+        g_param_spec_boolean("enable-media-stream",
+            _("Enable MediaStream"),
+            _("Whether MediaStream content should be handled"),
+            FALSE,
+            readWriteConstructParamFlags));
+
 }
 
 WebPreferences* webkitSettingsGetPreferences(WebKitSettings* settings)
@@ -2798,3 +2824,42 @@
     priv->preferences->setLogsPageMessagesToSystemConsoleEnabled(enabled);
     g_object_notify(G_OBJECT(settings), "enable-write-console-messages-to-stdout");
 }
+
+/**
+ * webkit_settings_get_enable_media_stream:
+ * @settings: a #WebKitSettings
+ *
+ * Get the #WebKitSettings:enable-media-stream property.
+ *
+ * Returns: %TRUE If mediastream support is enabled or %FALSE otherwise.
+ *
+ * Since: 2.4
+ */
+gboolean webkit_settings_get_enable_media_stream(WebKitSettings* settings)
+{
+    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
+
+    return settings->priv->preferences->mediaStreamEnabled();
+}
+
+/**
+ * webkit_settings_set_enable_media_stream:
+ * @settings: a #WebKitSettings
+ * @enabled: Value to be set
+ *
+ * Set the #WebKitSettings:enable-media-stream property.
+ *
+ * Since: 2.4
+ */
+void webkit_settings_set_enable_media_stream(WebKitSettings* settings, gboolean enabled)
+{
+    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+    WebKitSettingsPrivate* priv = settings->priv;
+    bool currentValue = priv->preferences->mediaStreamEnabled();
+    if (currentValue == enabled)
+        return;
+
+    priv->preferences->setMediaStreamEnabled(enabled);
+    g_object_notify(G_OBJECT(settings), "enable-media-stream");
+}

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


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h	2013-10-31 15:35:02 UTC (rev 158360)
@@ -393,6 +393,13 @@
 webkit_settings_set_enable_write_console_messages_to_stdout    (WebKitSettings *settings,
                                                                 gboolean        enabled);
 
+WEBKIT_API gboolean
+webkit_settings_get_enable_media_stream                        (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_media_stream                        (WebKitSettings *settings,
+                                                                gboolean        enabled);
+
 G_END_DECLS
 
 #endif /* WebKitSettings_h */

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


--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2013-10-31 15:35:02 UTC (rev 158360)
@@ -364,6 +364,8 @@
 webkit_settings_set_enable_accelerated_2d_canvas
 webkit_settings_get_enable_write_console_messages_to_stdout
 webkit_settings_set_enable_write_console_messages_to_stdout
+webkit_settings_get_enable_media_stream
+webkit_settings_set_enable_media_stream
 
 <SUBSECTION Standard>
 WebKitSettingsClass

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


--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp	2013-10-31 15:35:02 UTC (rev 158360)
@@ -258,6 +258,11 @@
     webkit_settings_set_enable_write_console_messages_to_stdout(settings, TRUE);
     g_assert(webkit_settings_get_enable_write_console_messages_to_stdout(settings));
 
+    // MediaStream is disabled by default.
+    g_assert(!webkit_settings_get_enable_media_stream(settings));
+    webkit_settings_set_enable_media_stream(settings, TRUE);
+    g_assert(webkit_settings_get_enable_media_stream(settings));
+
     g_object_unref(G_OBJECT(settings));
 }
 

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp (158359 => 158360)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp	2013-10-31 15:35:02 UTC (rev 158360)
@@ -218,7 +218,8 @@
     macro(WebKitXSSAuditorEnabled, XSSAuditorEnabled, xssAuditorEnabled) \
     macro(WebKitShouldRespectImageOrientation, ShouldRespectImageOrientation, shouldRespectImageOrientation) \
     macro(WebKitEnableCaretBrowsing, CaretBrowsingEnabled, caretBrowsingEnabled) \
-    macro(WebKitDisplayImagesKey, LoadsImagesAutomatically, loadsImagesAutomatically)
+    macro(WebKitDisplayImagesKey, LoadsImagesAutomatically, loadsImagesAutomatically) \
+    macro(WebKitMediaStreamEnabled, MediaStreamEnabled, mediaStreamEnabled)
 
     if (preference == "WebKitAcceleratedCompositingEnabled")
         enabled = enabled && LayerTreeHost::supportsAcceleratedCompositing();

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (158359 => 158360)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-10-31 15:29:28 UTC (rev 158359)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-10-31 15:35:02 UTC (rev 158360)
@@ -2403,6 +2403,10 @@
     settings.setWebAudioEnabled(store.getBoolValueForKey(WebPreferencesKey::webAudioEnabledKey()));
 #endif
 
+#if ENABLE(MEDIA_STREAM)
+    settings.setMediaStreamEnabled(store.getBoolValueForKey(WebPreferencesKey::mediaStreamEnabledKey()));
+#endif
+
     settings.setApplicationChromeMode(store.getBoolValueForKey(WebPreferencesKey::applicationChromeModeKey()));
     settings.setSuppressesIncrementalRendering(store.getBoolValueForKey(WebPreferencesKey::suppressesIncrementalRenderingKey()));
     settings.setIncrementalRenderingSuppressionTimeoutInSeconds(store.getDoubleValueForKey(WebPreferencesKey::incrementalRenderingSuppressionTimeoutKey()));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to