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()));