@@ -194,6 +194,7 @@ enum {
194194 PROP_ENABLE_DIRECTORY_UPLOAD,
195195 PROP_ALLOW_RUNNING_OF_INSECURE_CONTENT,
196196 PROP_ALLOW_DISPLAY_OF_INSECURE_CONTENT,
197+ PROP_ENABLE_SERVICE_WORKER,
197198 N_PROPERTIES,
198199};
199200
@@ -439,6 +440,9 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
439440 case PROP_ALLOW_DISPLAY_OF_INSECURE_CONTENT:
440441 webkit_settings_set_allow_display_of_insecure_content (settings, g_value_get_boolean (value));
441442 break ;
443+ case PROP_ENABLE_SERVICE_WORKER:
444+ webkit_settings_set_enable_service_worker (settings, g_value_get_boolean (value));
445+ break ;
442446 default :
443447 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, propId, paramSpec);
444448 break ;
@@ -668,6 +672,9 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
668672 case PROP_ALLOW_DISPLAY_OF_INSECURE_CONTENT:
669673 g_value_set_boolean (value, webkit_settings_get_allow_display_of_insecure_content (settings));
670674 break ;
675+ case PROP_ENABLE_SERVICE_WORKER:
676+ g_value_set_boolean (value, webkit_settings_get_enable_service_worker (settings));
677+ break ;
671678 default :
672679 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, propId, paramSpec);
673680 break ;
@@ -1813,6 +1820,21 @@ static void webkit_settings_class_init(WebKitSettingsClass* klass)
18131820 FALSE ,
18141821 readWriteConstructParamFlags);
18151822
1823+ /* *
1824+ * WebKitSettings:enable-service-worker:
1825+ *
1826+ * Enable or disable service worker.
1827+ * This property will only work as intended if the ServiceWorker feature is enabled at build time
1828+ * with the ENABLE_SERVICE_WORKER flag.
1829+ *
1830+ */
1831+ sObjProperties [PROP_ENABLE_SERVICE_WORKER] = g_param_spec_boolean (
1832+ " enable-service-worker" ,
1833+ _ (" Enable service worker" ),
1834+ _ (" Whether service worker support should be enabled." ),
1835+ TRUE ,
1836+ readWriteConstructParamFlags);
1837+
18161838 g_object_class_install_properties (gObjectClass , N_PROPERTIES, sObjProperties .data ());
18171839}
18181840
@@ -4723,3 +4745,42 @@ void webkit_settings_set_allow_display_of_insecure_content(WebKitSettings* setti
47234745
47244746 g_object_notify_by_pspec (G_OBJECT (settings), sObjProperties [PROP_ALLOW_DISPLAY_OF_INSECURE_CONTENT]);
47254747}
4748+
4749+ /* *
4750+ * webkit_settings_get_enable_service_worker:
4751+ * @settings: a #WebKitSettings
4752+ *
4753+ * Get the #WebKitSettings:enable-service-worker property.
4754+ *
4755+ * Returns: %TRUE if Service Worker support is enabled or %FALSE otherwise.
4756+ *
4757+ * Since: 2.38
4758+ */
4759+ gboolean webkit_settings_get_enable_service_worker (WebKitSettings* settings)
4760+ {
4761+ g_return_val_if_fail (WEBKIT_IS_SETTINGS (settings), FALSE );
4762+
4763+ return settings->priv ->preferences ->serviceWorkersEnabled ();
4764+ }
4765+
4766+ /* *
4767+ * webkit_settings_set_enable_service_worker:
4768+ * @settings: a #WebKitSettings
4769+ * @enabled: Value to be set
4770+ *
4771+ * Set the #WebKitSettings:enable-service-worker property.
4772+ *
4773+ * Since: 2.38
4774+ */
4775+ void webkit_settings_set_enable_service_worker (WebKitSettings* settings, gboolean enabled)
4776+ {
4777+ g_return_if_fail (WEBKIT_IS_SETTINGS (settings));
4778+
4779+ WebKitSettingsPrivate* priv = settings->priv ;
4780+ bool currentValue = priv->preferences ->serviceWorkersEnabled ();
4781+ if (currentValue == enabled)
4782+ return ;
4783+
4784+ priv->preferences ->setServiceWorkersEnabled (enabled);
4785+ g_object_notify_by_pspec (G_OBJECT (settings), sObjProperties [PROP_ENABLE_SERVICE_WORKER]);
4786+ }
0 commit comments