@@ -186,6 +186,7 @@ enum {
186186 PROP_ALLOW_SCRIPTS_TO_CLOSE_WINDOWS,
187187 PROP_ALLOW_MOVE_TO_SUSPEND_ON_WINDOW_CLOSE,
188188 PROP_ENABLE_DIRECTORY_UPLOAD,
189+ PROP_ENABLE_SERVICE_WORKER,
189190 N_PROPERTIES,
190191};
191192
@@ -432,6 +433,9 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
432433 case PROP_ENABLE_DIRECTORY_UPLOAD:
433434 webkit_settings_set_enable_directory_upload (settings, g_value_get_boolean (value));
434435 break ;
436+ case PROP_ENABLE_SERVICE_WORKER:
437+ webkit_settings_set_enable_service_worker (settings, g_value_get_boolean (value));
438+ break ;
435439 default :
436440 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, propId, paramSpec);
437441 break ;
@@ -658,6 +662,9 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN
658662 case PROP_ENABLE_DIRECTORY_UPLOAD:
659663 g_value_set_boolean (value, webkit_settings_get_enable_directory_upload (settings));
660664 break ;
665+ case PROP_ENABLE_SERVICE_WORKER:
666+ g_value_set_boolean (value, webkit_settings_get_enable_service_worker (settings));
667+ break ;
661668 default :
662669 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, propId, paramSpec);
663670 break ;
@@ -1759,6 +1766,21 @@ static void webkit_settings_class_init(WebKitSettingsClass* klass)
17591766 TRUE ,
17601767 readWriteConstructParamFlags);
17611768
1769+ /* *
1770+ * WebKitSettings:enable-service-worker:
1771+ *
1772+ * Enable or disable service worker.
1773+ * This property will only work as intended if the ServiceWorker feature is enabled at build time
1774+ * with the ENABLE_SERVICE_WORKER flag.
1775+ *
1776+ */
1777+ sObjProperties [PROP_ENABLE_SERVICE_WORKER] = g_param_spec_boolean (
1778+ " enable-service-worker" ,
1779+ _ (" Enable service worker" ),
1780+ _ (" Whether service worker support should be enabled." ),
1781+ TRUE ,
1782+ readWriteConstructParamFlags);
1783+
17621784 g_object_class_install_properties (gObjectClass , N_PROPERTIES, sObjProperties );
17631785}
17641786
@@ -4618,3 +4640,42 @@ void webkit_settings_set_enable_directory_upload(WebKitSettings* settings, gbool
46184640 priv->preferences ->setDirectoryUploadEnabled (enabled);
46194641 g_object_notify (G_OBJECT (settings), " enable-directory-upload" );
46204642}
4643+
4644+ /* *
4645+ * webkit_settings_get_enable_service_worker:
4646+ * @settings: a #WebKitSettings
4647+ *
4648+ * Get the #WebKitSettings:enable-service-worker property.
4649+ *
4650+ * Returns: %TRUE if Service Worker support is enabled or %FALSE otherwise.
4651+ *
4652+ * Since: 2.38
4653+ */
4654+ gboolean webkit_settings_get_enable_service_worker (WebKitSettings* settings)
4655+ {
4656+ g_return_val_if_fail (WEBKIT_IS_SETTINGS (settings), FALSE );
4657+
4658+ return settings->priv ->preferences ->serviceWorkersEnabled ();
4659+ }
4660+
4661+ /* *
4662+ * webkit_settings_set_enable_service_worker:
4663+ * @settings: a #WebKitSettings
4664+ * @enabled: Value to be set
4665+ *
4666+ * Set the #WebKitSettings:enable-service-worker property.
4667+ *
4668+ * Since: 2.38
4669+ */
4670+ void webkit_settings_set_enable_service_worker (WebKitSettings* settings, gboolean enabled)
4671+ {
4672+ g_return_if_fail (WEBKIT_IS_SETTINGS (settings));
4673+
4674+ WebKitSettingsPrivate* priv = settings->priv ;
4675+ bool currentValue = priv->preferences ->serviceWorkersEnabled ();
4676+ if (currentValue == enabled)
4677+ return ;
4678+
4679+ priv->preferences ->setServiceWorkersEnabled (enabled);
4680+ g_object_notify_by_pspec (G_OBJECT (settings), sObjProperties [PROP_ENABLE_SERVICE_WORKER]);
4681+ }
0 commit comments