Skip to content

Commit 9d2803c

Browse files
Add setting to enable/disable WebRTC ICE candidate filtering
1 parent 68dd1d8 commit 9d2803c

2 files changed

Lines changed: 62 additions & 0 deletions

File tree

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

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ enum {
180180
PROP_ALLOW_MOVE_TO_SUSPEND_ON_WINDOW_CLOSE,
181181
PROP_ENABLE_DIRECTORY_UPLOAD,
182182
PROP_ENABLE_SERVICE_WORKER,
183+
PROP_ENABLE_ICE_CANDIDATE_FILTERING,
183184
N_PROPERTIES,
184185
};
185186

@@ -434,6 +435,9 @@ ALLOW_DEPRECATED_DECLARATIONS_END
434435
case PROP_ENABLE_SERVICE_WORKER:
435436
webkit_settings_set_enable_service_worker(settings, g_value_get_boolean(value));
436437
break;
438+
case PROP_ENABLE_ICE_CANDIDATE_FILTERING:
439+
webkit_settings_set_enable_ice_candidate_filtering(settings, g_value_get_boolean(value));
440+
break;
437441
default:
438442
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
439443
break;
@@ -659,6 +663,9 @@ ALLOW_DEPRECATED_DECLARATIONS_END
659663
case PROP_ENABLE_SERVICE_WORKER:
660664
g_value_set_boolean(value, webkit_settings_get_enable_service_worker(settings));
661665
break;
666+
case PROP_ENABLE_ICE_CANDIDATE_FILTERING:
667+
g_value_set_boolean(value, webkit_settings_get_enable_ice_candidate_filtering(settings));
668+
break;
662669
default:
663670
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
664671
break;
@@ -1754,6 +1761,19 @@ static void webkit_settings_class_init(WebKitSettingsClass* klass)
17541761
TRUE,
17551762
readWriteConstructParamFlags);
17561763

1764+
/**
1765+
* WebKitSettings:enable-ice-candidate-filtering:
1766+
*
1767+
* Enable or disable ICE candidate filtering.
1768+
*
1769+
*/
1770+
sObjProperties[PROP_ENABLE_ICE_CANDIDATE_FILTERING] = g_param_spec_boolean(
1771+
"enable-ice-candidate-filtering",
1772+
_("Enable ICE candidate filtering"),
1773+
_("Whether ICE candidate filtering should be enabled."),
1774+
TRUE,
1775+
readWriteConstructParamFlags);
1776+
17571777
g_object_class_install_properties(gObjectClass, N_PROPERTIES, sObjProperties);
17581778
}
17591779

@@ -4411,3 +4431,38 @@ void webkit_settings_set_enable_service_worker(WebKitSettings* settings, gboolea
44114431
priv->preferences->setServiceWorkersEnabled(enabled);
44124432
g_object_notify_by_pspec(G_OBJECT(settings), sObjProperties[PROP_ENABLE_SERVICE_WORKER]);
44134433
}
4434+
4435+
/**
4436+
* webkit_settings_get_enable_ice_candidate_filtering:
4437+
* @settings: a #WebKitSettings
4438+
*
4439+
* Get the #WebKitSettings:enable-ice-candidate-filtering property.
4440+
*
4441+
* Returns: %TRUE If ICE candidate filtering is enabled or %FALSE otherwise.
4442+
*/
4443+
gboolean webkit_settings_get_enable_ice_candidate_filtering(WebKitSettings* settings)
4444+
{
4445+
g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
4446+
4447+
return settings->priv->preferences->iceCandidateFilteringEnabled();
4448+
}
4449+
4450+
/**
4451+
* webkit_settings_set_enable_ice_candidate_filtering:
4452+
* @settings: a #WebKitSettings
4453+
* @enabled: Value to be set
4454+
*
4455+
* Set the #WebKitSettings:enable-ice-candidate-filtering property.
4456+
*/
4457+
void webkit_settings_set_enable_ice_candidate_filtering(WebKitSettings* settings, gboolean enabled)
4458+
{
4459+
g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
4460+
4461+
WebKitSettingsPrivate* priv = settings->priv;
4462+
bool currentValue = priv->preferences->iceCandidateFilteringEnabled();
4463+
if (currentValue == enabled)
4464+
return;
4465+
4466+
priv->preferences->setICECandidateFilteringEnabled(enabled);
4467+
g_object_notify(G_OBJECT(settings), "enable-ice-candidate-filtering");
4468+
}

Source/WebKit/UIProcess/API/wpe/WebKitSettings.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,13 @@ WEBKIT_API void
533533
webkit_settings_set_enable_service_worker (WebKitSettings* settings,
534534
gboolean enabled);
535535

536+
WEBKIT_API gboolean
537+
webkit_settings_get_enable_ice_candidate_filtering (WebKitSettings *settings);
538+
539+
WEBKIT_API void
540+
webkit_settings_set_enable_ice_candidate_filtering (WebKitSettings *settings,
541+
gboolean enabled);
542+
536543
G_END_DECLS
537544

538545
#endif /* WebKitSettings_h */

0 commit comments

Comments
 (0)