@@ -179,6 +179,7 @@ enum {
179179 PROP_ALLOW_SCRIPTS_TO_CLOSE_WINDOWS,
180180 PROP_ALLOW_MOVE_TO_SUSPEND_ON_WINDOW_CLOSE,
181181 PROP_ENABLE_DIRECTORY_UPLOAD,
182+ PROP_ENABLE_SERVICE_WORKER,
182183 N_PROPERTIES,
183184};
184185
@@ -429,6 +430,9 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
429430 case PROP_ENABLE_DIRECTORY_UPLOAD:
430431 webkit_settings_set_enable_directory_upload (settings, g_value_get_boolean (value));
431432 break ;
433+ case PROP_ENABLE_SERVICE_WORKER:
434+ webkit_settings_set_enable_service_worker (settings, g_value_get_boolean (value));
435+ break ;
432436 default :
433437 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, propId, paramSpec);
434438 break ;
@@ -652,6 +656,9 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
652656 case PROP_ENABLE_DIRECTORY_UPLOAD:
653657 g_value_set_boolean (value, webkit_settings_get_enable_directory_upload (settings));
654658 break ;
659+ case PROP_ENABLE_SERVICE_WORKER:
660+ g_value_set_boolean (value, webkit_settings_get_enable_service_worker (settings));
661+ break ;
655662 default :
656663 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, propId, paramSpec);
657664 break ;
@@ -1716,6 +1723,21 @@ static void webkit_settings_class_init(WebKitSettingsClass* klass)
17161723 TRUE ,
17171724 readWriteConstructParamFlags);
17181725
1726+ /* *
1727+ * WebKitSettings:enable-service-worker:
1728+ *
1729+ * Enable or disable service worker.
1730+ * This property will only work as intended if the ServiceWorker feature is enabled at build time
1731+ * with the ENABLE_SERVICE_WORKER flag.
1732+ *
1733+ */
1734+ sObjProperties [PROP_ENABLE_SERVICE_WORKER] = g_param_spec_boolean (
1735+ " enable-service-worker" ,
1736+ _ (" Enable service worker" ),
1737+ _ (" Whether service worker support should be enabled." ),
1738+ TRUE ,
1739+ readWriteConstructParamFlags);
1740+
17191741 g_object_class_install_properties (gObjectClass , N_PROPERTIES, sObjProperties );
17201742}
17211743
@@ -4406,3 +4428,42 @@ void webkit_settings_set_enable_directory_upload(WebKitSettings* settings, gbool
44064428 priv->preferences ->setDirectoryUploadEnabled (enabled);
44074429 g_object_notify (G_OBJECT (settings), " enable-directory-upload" );
44084430}
4431+
4432+ /* *
4433+ * webkit_settings_get_enable_service_worker:
4434+ * @settings: a #WebKitSettings
4435+ *
4436+ * Get the #WebKitSettings:enable-service-worker property.
4437+ *
4438+ * Returns: %TRUE if Service Worker support is enabled or %FALSE otherwise.
4439+ *
4440+ * Since: 2.38
4441+ */
4442+ gboolean webkit_settings_get_enable_service_worker (WebKitSettings* settings)
4443+ {
4444+ g_return_val_if_fail (WEBKIT_IS_SETTINGS (settings), FALSE );
4445+
4446+ return settings->priv ->preferences ->serviceWorkersEnabled ();
4447+ }
4448+
4449+ /* *
4450+ * webkit_settings_set_enable_service_worker:
4451+ * @settings: a #WebKitSettings
4452+ * @enabled: Value to be set
4453+ *
4454+ * Set the #WebKitSettings:enable-service-worker property.
4455+ *
4456+ * Since: 2.38
4457+ */
4458+ void webkit_settings_set_enable_service_worker (WebKitSettings* settings, gboolean enabled)
4459+ {
4460+ g_return_if_fail (WEBKIT_IS_SETTINGS (settings));
4461+
4462+ WebKitSettingsPrivate* priv = settings->priv ;
4463+ bool currentValue = priv->preferences ->serviceWorkersEnabled ();
4464+ if (currentValue == enabled)
4465+ return ;
4466+
4467+ priv->preferences ->setServiceWorkersEnabled (enabled);
4468+ g_object_notify_by_pspec (G_OBJECT (settings), sObjProperties [PROP_ENABLE_SERVICE_WORKER]);
4469+ }
0 commit comments