From 3e21cf9129b8fcba54c79bb735a5fda736212d4a Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Sat, 3 Jan 2026 19:37:23 +0100 Subject: [PATCH] use new api to get container data in one go --- .../geckoview/domain/providers/tab_state.dart | 13 ++----------- .../geckoview/domain/providers/tab_state.g.dart | 2 +- .../geckoview/domain/repositories/tab.dart | 14 +++----------- .../geckoview/domain/repositories/tab.g.dart | 2 +- .../features/tabs/domain/repositories/tab.dart | 16 ++-------------- .../features/tabs/domain/repositories/tab.g.dart | 2 +- .../presentation/controllers/website_title.dart | 12 ++---------- .../controllers/website_title.g.dart | 2 +- 8 files changed, 13 insertions(+), 50 deletions(-) diff --git a/app/lib/features/geckoview/domain/providers/tab_state.dart b/app/lib/features/geckoview/domain/providers/tab_state.dart index 63dabf84..5e83cda8 100644 --- a/app/lib/features/geckoview/domain/providers/tab_state.dart +++ b/app/lib/features/geckoview/domain/providers/tab_state.dart @@ -35,7 +35,6 @@ import 'package:weblibre/features/geckoview/domain/providers.dart'; import 'package:weblibre/features/geckoview/domain/providers/selected_tab.dart'; import 'package:weblibre/features/geckoview/features/find_in_page/domain/repositories/find_in_page.dart'; import 'package:weblibre/features/geckoview/features/tabs/domain/providers.dart'; -import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/container.dart'; import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/gecko_inference.dart'; import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/tab.dart'; import 'package:weblibre/features/geckoview/utils/image_helper.dart'; @@ -285,17 +284,9 @@ Future isTabTunneled(Ref ref, String? tabId) async { } else { switch (torSettings.proxyRegularTabsMode) { case TorRegularTabProxyMode.container: - final containerId = await ref + final containerData = await ref .read(tabDataRepositoryProvider.notifier) - .getTabContainerId(tabState.id); - - if (!ref.mounted) return false; - - final containerData = await containerId.mapNotNull( - (containerId) => ref - .read(containerRepositoryProvider.notifier) - .getContainerData(containerId), - ); + .getTabContainerData(tabState.id); if (!ref.mounted) return false; diff --git a/app/lib/features/geckoview/domain/providers/tab_state.g.dart b/app/lib/features/geckoview/domain/providers/tab_state.g.dart index 76ae667e..faf74838 100644 --- a/app/lib/features/geckoview/domain/providers/tab_state.g.dart +++ b/app/lib/features/geckoview/domain/providers/tab_state.g.dart @@ -258,7 +258,7 @@ final class IsTabTunneledProvider } } -String _$isTabTunneledHash() => r'84035f8df248cd0586016c12c1820dd902717c1d'; +String _$isTabTunneledHash() => r'55a42ccb73d1921eed27d32f6da3a54680d4ac8c'; final class IsTabTunneledFamily extends $Family with $FunctionalFamilyOverride, String?> { diff --git a/app/lib/features/geckoview/domain/repositories/tab.dart b/app/lib/features/geckoview/domain/repositories/tab.dart index 769797ad..c010eb08 100644 --- a/app/lib/features/geckoview/domain/repositories/tab.dart +++ b/app/lib/features/geckoview/domain/repositories/tab.dart @@ -242,24 +242,16 @@ class TabRepository extends _$TabRepository { } Future selectTab(String tabId) async { - final containerId = await ref + final containerData = await ref .read(tabDataRepositoryProvider.notifier) - .getTabContainerId(tabId); - - if (!ref.mounted) return false; - - final containerData = await containerId.mapNotNull( - (containerId) => ref - .read(containerRepositoryProvider.notifier) - .getContainerData(containerId), - ); + .getTabContainerData(tabId); if (!ref.mounted) return false; if (containerData != null) { if (containerData.metadata.authSettings.authenticationRequired) { // ignore: only_use_keep_alive_inside_keep_alive - if (containerId != ref.read(selectedContainerProvider)) { + if (containerData.id != ref.read(selectedContainerProvider)) { logger.w( 'Tried to open authenticated tab $tabId but container not selected', ); diff --git a/app/lib/features/geckoview/domain/repositories/tab.g.dart b/app/lib/features/geckoview/domain/repositories/tab.g.dart index c3f05235..f29fb0a8 100644 --- a/app/lib/features/geckoview/domain/repositories/tab.g.dart +++ b/app/lib/features/geckoview/domain/repositories/tab.g.dart @@ -41,7 +41,7 @@ final class TabRepositoryProvider } } -String _$tabRepositoryHash() => r'ab4ba2bf11ccbd99497819b9068cbbd733a93d81'; +String _$tabRepositoryHash() => r'0be3f9bb9eef6dfff1c486195e2717932c425db1'; abstract class _$TabRepository extends $Notifier { void build(); diff --git a/app/lib/features/geckoview/features/tabs/domain/repositories/tab.dart b/app/lib/features/geckoview/features/tabs/domain/repositories/tab.dart index de82fa5d..ce5049dc 100644 --- a/app/lib/features/geckoview/features/tabs/domain/repositories/tab.dart +++ b/app/lib/features/geckoview/features/tabs/domain/repositories/tab.dart @@ -18,7 +18,6 @@ * along with this program. If not, see . */ import 'package:drift/drift.dart'; -import 'package:nullability/nullability.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:weblibre/features/geckoview/domain/providers/selected_tab.dart'; import 'package:weblibre/features/geckoview/domain/providers/tab_state.dart'; @@ -26,7 +25,6 @@ import 'package:weblibre/features/geckoview/domain/repositories/tab.dart'; import 'package:weblibre/features/geckoview/features/tabs/data/database/definitions.drift.dart'; import 'package:weblibre/features/geckoview/features/tabs/data/models/container_data.dart'; import 'package:weblibre/features/geckoview/features/tabs/data/providers.dart'; -import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/container.dart'; part 'tab.g.dart'; @@ -37,14 +35,9 @@ class TabDataRepository extends _$TabDataRepository { ContainerData targetContainer, { bool closeOldTab = true, }) async { - final currentContainerId = await getTabContainerId(tabId); final selectedTabId = ref.read(selectedTabProvider); - final currentContainerData = await currentContainerId.mapNotNull( - (containerId) => ref - .read(containerRepositoryProvider.notifier) - .getContainerData(containerId), - ); + final currentContainerData = await getTabContainerData(tabId); if (targetContainer.metadata.contextualIdentity == currentContainerData?.metadata.contextualIdentity) { @@ -73,14 +66,9 @@ class TabDataRepository extends _$TabDataRepository { } Future unassignContainer(String tabId) async { - final currentContainerId = await getTabContainerId(tabId); final selectedTabId = ref.read(selectedTabProvider); - final currentContainerData = await currentContainerId.mapNotNull( - (containerId) => ref - .read(containerRepositoryProvider.notifier) - .getContainerData(containerId), - ); + final currentContainerData = await getTabContainerData(tabId); if (currentContainerData?.metadata.contextualIdentity == null) { return ref diff --git a/app/lib/features/geckoview/features/tabs/domain/repositories/tab.g.dart b/app/lib/features/geckoview/features/tabs/domain/repositories/tab.g.dart index 2b7279bb..452f2e3a 100644 --- a/app/lib/features/geckoview/features/tabs/domain/repositories/tab.g.dart +++ b/app/lib/features/geckoview/features/tabs/domain/repositories/tab.g.dart @@ -41,7 +41,7 @@ final class TabDataRepositoryProvider } } -String _$tabDataRepositoryHash() => r'0ab598656accfc90a15a9bfef3899cd3bb577b66'; +String _$tabDataRepositoryHash() => r'502f2ce548d3a4d1506d239c9a2e506b9436c408'; abstract class _$TabDataRepository extends $Notifier { void build(); diff --git a/app/lib/presentation/controllers/website_title.dart b/app/lib/presentation/controllers/website_title.dart index a7916041..5a6b4cf6 100644 --- a/app/lib/presentation/controllers/website_title.dart +++ b/app/lib/presentation/controllers/website_title.dart @@ -18,7 +18,6 @@ * along with this program. If not, see . */ import 'package:fast_equatable/fast_equatable.dart'; -import 'package:nullability/nullability.dart'; import 'package:riverpod/riverpod.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:weblibre/data/models/web_page_info.dart'; @@ -26,7 +25,6 @@ import 'package:weblibre/domain/services/generic_website.dart'; import 'package:weblibre/extensions/ref_cache.dart'; import 'package:weblibre/features/geckoview/domain/entities/states/tab.dart'; import 'package:weblibre/features/geckoview/domain/providers/tab_state.dart'; -import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/container.dart'; import 'package:weblibre/features/geckoview/features/tabs/domain/repositories/tab.dart'; import 'package:weblibre/features/tor/domain/services/tor_proxy.dart'; import 'package:weblibre/features/user/data/models/tor_settings.dart'; @@ -85,15 +83,9 @@ Future pageInfo( int? proxyPort; if (tabState?.id != null) { - final containerId = await ref + final containerData = await ref .read(tabDataRepositoryProvider.notifier) - .getTabContainerId(tabState!.id); - - final containerData = await containerId.mapNotNull( - (containerId) => ref - .read(containerRepositoryProvider.notifier) - .getContainerData(containerId), - ); + .getTabContainerData(tabState!.id); final torSettings = ref.read(torSettingsWithDefaultsProvider); diff --git a/app/lib/presentation/controllers/website_title.g.dart b/app/lib/presentation/controllers/website_title.g.dart index 36d4acda..49b3c9f1 100644 --- a/app/lib/presentation/controllers/website_title.g.dart +++ b/app/lib/presentation/controllers/website_title.g.dart @@ -162,7 +162,7 @@ final class PageInfoProvider } } -String _$pageInfoHash() => r'b756ee75e155bcee1e54658556eb8f4ef417d118'; +String _$pageInfoHash() => r'89b1cd86bb7ed7cfe507650cca33d6b6b72ca770'; final class PageInfoFamily extends $Family with