clear container data on exit

This commit is contained in:
Fabian Freund
2026-01-01 07:02:08 +01:00
parent 0764cf4c10
commit af8c2b4f4d
11 changed files with 94 additions and 4 deletions
@@ -63,6 +63,16 @@ class BrowserDataService extends _$BrowserDataService {
return _service.clearDataForContext(contextId);
}
Future<void> clearContainerDataOnEngineStart(
List<String> contextIds,
) async {
if (!_onStartDeleted && contextIds.isNotEmpty) {
for (final contextId in contextIds) {
await clearDataForContext(contextId);
}
}
}
@override
void build() {}
}
@@ -42,7 +42,7 @@ final class BrowserDataServiceProvider
}
String _$browserDataServiceHash() =>
r'502dff526bcf7c10c218d2d9fa2cd0f41ad25622';
r'861943be10c4dea325484b6a28ba21f3ff0d29fa';
abstract class _$BrowserDataService extends $Notifier<void> {
void build();
@@ -46,6 +46,7 @@ import 'package:weblibre/features/geckoview/features/browser/domain/services/eng
import 'package:weblibre/features/geckoview/features/browser/domain/services/proxy_settings_replication.dart';
import 'package:weblibre/features/geckoview/features/history/domain/repositories/history.dart';
import 'package:weblibre/features/geckoview/features/preferences/data/repositories/preference_observer.dart';
import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/container.dart';
import 'package:weblibre/features/share_intent/domain/entities/shared_content.dart';
import 'package:weblibre/features/user/data/models/general_settings.dart';
import 'package:weblibre/features/user/domain/repositories/cache.dart';
@@ -116,6 +117,17 @@ class _BrowserViewState extends ConsumerState<BrowserView>
);
}
});
// Clear data for containers with clearDataOnExit enabled
final containersToClear = await ref
.read(containerRepositoryProvider.notifier)
.getContainersToClearOnExit();
if (containersToClear.isNotEmpty) {
await ref
.read(browserDataServiceProvider.notifier)
.clearContainerDataOnEngineStart(containersToClear);
}
});
final hasTab = ref.watch(