@@ -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
@@ -430,6 +431,9 @@ ALLOW_DEPRECATED_DECLARATIONS_END
430431 case PROP_ENABLE_DIRECTORY_UPLOAD:
431432 webkit_settings_set_enable_directory_upload (settings, g_value_get_boolean (value));
432433 break ;
434+ case PROP_ENABLE_SERVICE_WORKER:
435+ webkit_settings_set_enable_service_worker (settings, g_value_get_boolean (value));
436+ break ;
433437 default :
434438 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, propId, paramSpec);
435439 break ;
@@ -652,6 +656,9 @@ ALLOW_DEPRECATED_DECLARATIONS_END
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 ;
@@ -1732,6 +1739,21 @@ static void webkit_settings_class_init(WebKitSettingsClass* klass)
17321739 TRUE ,
17331740 readWriteConstructParamFlags);
17341741
1742+ /* *
1743+ * WebKitSettings:enable-service-worker:
1744+ *
1745+ * Enable or disable service worker.
1746+ * This property will only work as intended if the ServiceWorker feature is enabled at build time
1747+ * with the ENABLE_SERVICE_WORKER flag.
1748+ *
1749+ */
1750+ sObjProperties [PROP_ENABLE_SERVICE_WORKER] = g_param_spec_boolean (
1751+ " enable-service-worker" ,
1752+ _ (" Enable service worker" ),
1753+ _ (" Whether service worker support should be enabled." ),
1754+ TRUE ,
1755+ readWriteConstructParamFlags);
1756+
17351757 g_object_class_install_properties (gObjectClass , N_PROPERTIES, sObjProperties );
17361758}
17371759
@@ -4350,3 +4372,42 @@ void webkit_settings_set_enable_directory_upload(WebKitSettings* settings, gbool
43504372 priv->preferences ->setDirectoryUploadEnabled (enabled);
43514373 g_object_notify (G_OBJECT (settings), " enable-directory-upload" );
43524374}
4375+
4376+ /* *
4377+ * webkit_settings_get_enable_service_worker:
4378+ * @settings: a #WebKitSettings
4379+ *
4380+ * Get the #WebKitSettings:enable-service-worker property.
4381+ *
4382+ * Returns: %TRUE if Service Worker support is enabled or %FALSE otherwise.
4383+ *
4384+ * Since: 2.38
4385+ */
4386+ gboolean webkit_settings_get_enable_service_worker (WebKitSettings* settings)
4387+ {
4388+ g_return_val_if_fail (WEBKIT_IS_SETTINGS (settings), FALSE );
4389+
4390+ return settings->priv ->preferences ->serviceWorkersEnabled ();
4391+ }
4392+
4393+ /* *
4394+ * webkit_settings_set_enable_service_worker:
4395+ * @settings: a #WebKitSettings
4396+ * @enabled: Value to be set
4397+ *
4398+ * Set the #WebKitSettings:enable-service-worker property.
4399+ *
4400+ * Since: 2.38
4401+ */
4402+ void webkit_settings_set_enable_service_worker (WebKitSettings* settings, gboolean enabled)
4403+ {
4404+ g_return_if_fail (WEBKIT_IS_SETTINGS (settings));
4405+
4406+ WebKitSettingsPrivate* priv = settings->priv ;
4407+ bool currentValue = priv->preferences ->serviceWorkersEnabled ();
4408+ if (currentValue == enabled)
4409+ return ;
4410+
4411+ priv->preferences ->setServiceWorkersEnabled (enabled);
4412+ g_object_notify_by_pspec (G_OBJECT (settings), sObjProperties [PROP_ENABLE_SERVICE_WORKER]);
4413+ }
0 commit comments