|
88 | 88 | PROP_IS_EPHEMERAL, |
89 | 89 | PROP_LOCAL_STORAGE_QUOTA, |
90 | 90 | PROP_ORIGIN_STORAGE_RATIO, |
91 | | - PROP_TOTAL_STORAGE_RATIO |
| 91 | + PROP_TOTAL_STORAGE_RATIO, |
| 92 | + PROP_VOLUME_CAPACITY_OVERRIDE |
92 | 93 | }; |
93 | 94 |
|
94 | 95 | struct _WebKitWebsiteDataManagerPrivate { |
@@ -119,6 +120,7 @@ struct _WebKitWebsiteDataManagerPrivate { |
119 | 120 |
|
120 | 121 | gdouble originStorageRatio; |
121 | 122 | gdouble totalStorageRatio; |
| 123 | + guint64 volumeCapacityOverride; |
122 | 124 | unsigned localStorageQuota { 0 }; |
123 | 125 | }; |
124 | 126 |
|
@@ -228,6 +230,9 @@ static void webkitWebsiteDataManagerSetProperty(GObject* object, guint propID, c |
228 | 230 | case PROP_TOTAL_STORAGE_RATIO: |
229 | 231 | manager->priv->totalStorageRatio = g_value_get_double(value); |
230 | 232 | break; |
| 233 | + case PROP_VOLUME_CAPACITY_OVERRIDE: |
| 234 | + manager->priv->volumeCapacityOverride = g_value_get_uint64(value); |
| 235 | + break; |
231 | 236 | case PROP_LOCAL_STORAGE_QUOTA: |
232 | 237 | manager->priv->localStorageQuota = g_value_get_uint(value); |
233 | 238 | WebProcessPool::setLocalStorageQuota(manager->priv->localStorageQuota); |
@@ -549,6 +554,24 @@ static void webkit_website_data_manager_class_init(WebKitWebsiteDataManagerClass |
549 | 554 | nullptr, nullptr, |
550 | 555 | -1.0, 1.0, -1.0, |
551 | 556 | static_cast<GParamFlags>(WEBKIT_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY))); |
| 557 | + |
| 558 | + /** |
| 559 | + * WebKitWebsiteDataManager:volume-capacity-override: |
| 560 | + * |
| 561 | + * The volume capacity that shall be considered as available for any data storage. Relevant for |
| 562 | + * origin and total storage ratios. |
| 563 | + * A value of 0, which is the default, means no override shall take place and auto-detection shall |
| 564 | + * be performed. |
| 565 | + * |
| 566 | + * Since: 2.46 |
| 567 | + */ |
| 568 | + g_object_class_install_property( |
| 569 | + gObjectClass, |
| 570 | + PROP_VOLUME_CAPACITY_OVERRIDE, |
| 571 | + g_param_spec_uint64("volume-capacity-override", |
| 572 | + nullptr, nullptr, |
| 573 | + 0, G_MAXUINT64, 0, |
| 574 | + static_cast<GParamFlags>(WEBKIT_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY))); |
552 | 575 | } |
553 | 576 |
|
554 | 577 | WebKit::WebsiteDataStore& webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager* manager) |
@@ -583,6 +606,9 @@ WebKit::WebsiteDataStore& webkitWebsiteDataManagerGetDataStore(WebKitWebsiteData |
583 | 606 | if (priv->totalStorageRatio >= 0.0) |
584 | 607 | configuration->setTotalQuotaRatio(priv->totalStorageRatio); |
585 | 608 |
|
| 609 | + if (priv->volumeCapacityOverride > 0) |
| 610 | + configuration->setVolumeCapacityOverride(priv->volumeCapacityOverride); |
| 611 | + |
586 | 612 | priv->websiteDataStore = WebKit::WebsiteDataStore::create(WTFMove(configuration), PAL::SessionID::generatePersistentSessionID()); |
587 | 613 | #if !ENABLE(2022_GLIB_API) |
588 | 614 | priv->websiteDataStore->setIgnoreTLSErrors(priv->tlsErrorsPolicy == WEBKIT_TLS_ERRORS_POLICY_IGNORE); |
|
0 commit comments