Skip to content

Commit f0f239d

Browse files
marcin-mielczarczyk-redspenap
authored andcommitted
Add setting to enable/disable WebRTC ICE candidate filtering
1 parent 52c1e45 commit f0f239d

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ enum {
195195
PROP_ALLOW_RUNNING_OF_INSECURE_CONTENT,
196196
PROP_ALLOW_DISPLAY_OF_INSECURE_CONTENT,
197197
PROP_ENABLE_SERVICE_WORKER,
198+
PROP_ENABLE_ICE_CANDIDATE_FILTERING,
198199
N_PROPERTIES,
199200
};
200201

@@ -443,6 +444,9 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
443444
case PROP_ENABLE_SERVICE_WORKER:
444445
webkit_settings_set_enable_service_worker(settings, g_value_get_boolean(value));
445446
break;
447+
case PROP_ENABLE_ICE_CANDIDATE_FILTERING:
448+
webkit_settings_set_enable_ice_candidate_filtering(settings, g_value_get_boolean(value));
449+
break;
446450
default:
447451
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
448452
break;
@@ -675,6 +679,9 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
675679
case PROP_ENABLE_SERVICE_WORKER:
676680
g_value_set_boolean(value, webkit_settings_get_enable_service_worker(settings));
677681
break;
682+
case PROP_ENABLE_ICE_CANDIDATE_FILTERING:
683+
g_value_set_boolean(value, webkit_settings_get_enable_ice_candidate_filtering(settings));
684+
break;
678685
default:
679686
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
680687
break;
@@ -1835,6 +1842,19 @@ static void webkit_settings_class_init(WebKitSettingsClass* klass)
18351842
TRUE,
18361843
readWriteConstructParamFlags);
18371844

1845+
/**
1846+
* WebKitSettings:enable-ice-candidate-filtering:
1847+
*
1848+
* Enable or disable ICE candidate filtering.
1849+
*
1850+
*/
1851+
sObjProperties[PROP_ENABLE_ICE_CANDIDATE_FILTERING] = g_param_spec_boolean(
1852+
"enable-ice-candidate-filtering",
1853+
_("Enable ICE candidate filtering"),
1854+
_("Whether ICE candidate filtering should be enabled."),
1855+
TRUE,
1856+
readWriteConstructParamFlags);
1857+
18381858
g_object_class_install_properties(gObjectClass, N_PROPERTIES, sObjProperties.data());
18391859
}
18401860

@@ -4784,3 +4804,38 @@ void webkit_settings_set_enable_service_worker(WebKitSettings* settings, gboolea
47844804
priv->preferences->setServiceWorkersEnabled(enabled);
47854805
g_object_notify_by_pspec(G_OBJECT(settings), sObjProperties[PROP_ENABLE_SERVICE_WORKER]);
47864806
}
4807+
4808+
/**
4809+
* webkit_settings_get_enable_ice_candidate_filtering:
4810+
* @settings: a #WebKitSettings
4811+
*
4812+
* Get the #WebKitSettings:enable-ice-candidate-filtering property.
4813+
*
4814+
* Returns: %TRUE If ICE candidate filtering is enabled or %FALSE otherwise.
4815+
*/
4816+
gboolean webkit_settings_get_enable_ice_candidate_filtering(WebKitSettings* settings)
4817+
{
4818+
g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
4819+
4820+
return settings->priv->preferences->iceCandidateFilteringEnabled();
4821+
}
4822+
4823+
/**
4824+
* webkit_settings_set_enable_ice_candidate_filtering:
4825+
* @settings: a #WebKitSettings
4826+
* @enabled: Value to be set
4827+
*
4828+
* Set the #WebKitSettings:enable-ice-candidate-filtering property.
4829+
*/
4830+
void webkit_settings_set_enable_ice_candidate_filtering(WebKitSettings* settings, gboolean enabled)
4831+
{
4832+
g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
4833+
4834+
WebKitSettingsPrivate* priv = settings->priv;
4835+
bool currentValue = priv->preferences->iceCandidateFilteringEnabled();
4836+
if (currentValue == enabled)
4837+
return;
4838+
4839+
priv->preferences->setICECandidateFilteringEnabled(enabled);
4840+
g_object_notify(G_OBJECT(settings), "enable-ice-candidate-filtering");
4841+
}

Source/WebKit/UIProcess/API/glib/WebKitSettings.h.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,13 @@ WEBKIT_API void
622622
webkit_settings_set_enable_service_worker (WebKitSettings* settings,
623623
gboolean enabled);
624624

625+
WEBKIT_API gboolean
626+
webkit_settings_get_enable_ice_candidate_filtering (WebKitSettings *settings);
627+
628+
WEBKIT_API void
629+
webkit_settings_set_enable_ice_candidate_filtering (WebKitSettings *settings,
630+
gboolean enabled);
631+
625632
G_END_DECLS
626633

627634
#endif /* WebKitSettings_h */

0 commit comments

Comments
 (0)