run formatter

This commit is contained in:
Fabian Freund
2026-01-21 11:25:56 +01:00
parent dc4a5a9c85
commit baf19eed99
19 changed files with 231 additions and 109 deletions
@@ -52,7 +52,11 @@ class BangKey {
trigger: trigger, trigger: trigger,
); );
} catch (e, s) { } catch (e, s) {
logger.w('Failed to parse BangKey from string: "$key"', error: e, stackTrace: s); logger.w(
'Failed to parse BangKey from string: "$key"',
error: e,
stackTrace: s,
);
return null; return null;
} }
} }
@@ -52,7 +52,11 @@ class SelectedTab extends _$SelectedTab {
state = tabId; state = tabId;
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in selected tab events', error: error, stackTrace: stackTrace); logger.e(
'Error in selected tab events',
error: error,
stackTrace: stackTrace,
);
}, },
); );
@@ -57,7 +57,11 @@ class TabList extends _$TabList {
} }
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in tab list events', error: error, stackTrace: stackTrace); logger.e(
'Error in tab list events',
error: error,
stackTrace: stackTrace,
);
}, },
); );
@@ -223,7 +223,11 @@ class TabStates extends _$TabStates {
await _onTabContentStateChange(event); await _onTabContentStateChange(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in tab content events', error: error, stackTrace: stackTrace); logger.e(
'Error in tab content events',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
eventService.iconChangeEvents.listen( eventService.iconChangeEvents.listen(
@@ -231,7 +235,11 @@ class TabStates extends _$TabStates {
await _onIconChange(event); await _onIconChange(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in icon change events', error: error, stackTrace: stackTrace); logger.e(
'Error in icon change events',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
eventService.thumbnailEvents.listen( eventService.thumbnailEvents.listen(
@@ -239,7 +247,11 @@ class TabStates extends _$TabStates {
await _onThumbnailChange(event); await _onThumbnailChange(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in thumbnail events', error: error, stackTrace: stackTrace); logger.e(
'Error in thumbnail events',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
eventService.securityInfoEvents.listen( eventService.securityInfoEvents.listen(
@@ -247,7 +259,11 @@ class TabStates extends _$TabStates {
_onSecurityInfoStateChange(event); _onSecurityInfoStateChange(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in security info events', error: error, stackTrace: stackTrace); logger.e(
'Error in security info events',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
eventService.historyEvents.listen( eventService.historyEvents.listen(
@@ -255,7 +271,11 @@ class TabStates extends _$TabStates {
_onHistoryStateChange(event); _onHistoryStateChange(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in history events', error: error, stackTrace: stackTrace); logger.e(
'Error in history events',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
eventService.readerableEvents.listen( eventService.readerableEvents.listen(
@@ -263,7 +283,11 @@ class TabStates extends _$TabStates {
_onReaderableStateChange(event); _onReaderableStateChange(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in readerable events', error: error, stackTrace: stackTrace); logger.e(
'Error in readerable events',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
eventService.findResultsEvent eventService.findResultsEvent
@@ -273,7 +297,11 @@ class TabStates extends _$TabStates {
_onFindResultsChange(event); _onFindResultsChange(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in find results events', error: error, stackTrace: stackTrace); logger.e(
'Error in find results events',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
]; ];
@@ -106,7 +106,11 @@ class WebExtensionsState extends _$WebExtensionsState {
_onExtensionUpdate(event); _onExtensionUpdate(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in browser extension stream', error: error, stackTrace: stackTrace); logger.e(
'Error in browser extension stream',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
addonService.browserIconStream.listen( addonService.browserIconStream.listen(
@@ -114,7 +118,11 @@ class WebExtensionsState extends _$WebExtensionsState {
await _onIconChange(event); await _onIconChange(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in browser icon stream', error: error, stackTrace: stackTrace); logger.e(
'Error in browser icon stream',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
], ],
@@ -124,7 +132,11 @@ class WebExtensionsState extends _$WebExtensionsState {
_onExtensionUpdate(event); _onExtensionUpdate(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in page extension stream', error: error, stackTrace: stackTrace); logger.e(
'Error in page extension stream',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
addonService.pageIconStream.listen( addonService.pageIconStream.listen(
@@ -132,7 +144,11 @@ class WebExtensionsState extends _$WebExtensionsState {
await _onIconChange(event); await _onIconChange(event);
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in page icon stream', error: error, stackTrace: stackTrace); logger.e(
'Error in page icon stream',
error: error,
stackTrace: stackTrace,
);
}, },
), ),
], ],
@@ -436,100 +436,107 @@ class TabRepository extends _$TabRepository {
); );
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in tab added stream', error: error, stackTrace: stackTrace); logger.e(
'Error in tab added stream',
error: error,
stackTrace: stackTrace,
);
}, },
); );
final containerSiteAssignementSub = eventSerivce.siteAssignementEvent.listen(( final containerSiteAssignementSub = eventSerivce.siteAssignementEvent.listen(
event, (event) async {
) async { if (event.tabId != null) {
if (event.tabId != null) { // Prevent concurrent processing of the same tab (race condition protection)
// Prevent concurrent processing of the same tab (race condition protection) if (_tabsBeingProcessedForAssignment.contains(event.tabId)) {
if (_tabsBeingProcessedForAssignment.contains(event.tabId)) { logger.d(
logger.d( 'Skipping container assignment for tab ${event.tabId} - already being processed',
'Skipping container assignment for tab ${event.tabId} - already being processed', );
); return;
return; }
}
_tabsBeingProcessedForAssignment.add(event.tabId!); _tabsBeingProcessedForAssignment.add(event.tabId!);
// ignore: only_use_keep_alive_inside_keep_alive // ignore: only_use_keep_alive_inside_keep_alive
final tabState = ref.read(tabStateProvider(event.tabId)); final tabState = ref.read(tabStateProvider(event.tabId));
if (tabState != null) { if (tabState != null) {
final uri = Uri.parse(event.url); final uri = Uri.parse(event.url);
final originUri = event.originUrl.mapNotNull(Uri.parse); final originUri = event.originUrl.mapNotNull(Uri.parse);
final targetContainerId = await ref final targetContainerId = await ref
.read(containerRepositoryProvider.notifier)
.siteAssignedContainerId(Uri.parse(uri.origin));
final containerData = await targetContainerId.mapNotNull(
(id) => ref
.read(containerRepositoryProvider.notifier) .read(containerRepositoryProvider.notifier)
.getContainerData(id), .siteAssignedContainerId(Uri.parse(uri.origin));
); final containerData = await targetContainerId.mapNotNull(
(id) => ref
.read(containerRepositoryProvider.notifier)
.getContainerData(id),
);
if (containerData != null) { if (containerData != null) {
final tabIsEmpty = final tabIsEmpty =
tabState.url == TabState.defaultUrl && tabState.url == TabState.defaultUrl &&
tabState.historyState.items.isEmpty; tabState.historyState.items.isEmpty;
if (event.blocked || tabIsEmpty) { if (event.blocked || tabIsEmpty) {
// Check if contextual identity is changing // Check if contextual identity is changing
final currentContainerData = await ref final currentContainerData = await ref
.read(tabDataRepositoryProvider.notifier) .read(tabDataRepositoryProvider.notifier)
.getTabContainerData(tabState.id); .getTabContainerData(tabState.id);
final contextChanging = final contextChanging =
containerData.metadata.contextualIdentity != containerData.metadata.contextualIdentity !=
currentContainerData?.metadata.contextualIdentity; currentContainerData?.metadata.contextualIdentity;
await addTab( await addTab(
url: uri, url: uri,
private: tabState.isPrivate, private: tabState.isPrivate,
container: Value(containerData), container: Value(containerData),
parentId: contextChanging parentId: contextChanging
? null ? null
: tabState.id, // Break parent chain if context changes : tabState.id, // Break parent chain if context changes
selectTab: true, selectTab: true,
); );
if (tabIsEmpty) { if (tabIsEmpty) {
await closeTab(tabState.id); await closeTab(tabState.id);
} }
} else { } else {
final tabContainerId = await ref final tabContainerId = await ref
.read(tabDataRepositoryProvider.notifier) .read(tabDataRepositoryProvider.notifier)
.getTabContainerId(tabState.id); .getTabContainerId(tabState.id);
if (targetContainerId != tabContainerId) { if (targetContainerId != tabContainerId) {
if (originUri == null) { if (originUri == null) {
await ref await ref
.read(tabDataRepositoryProvider.notifier) .read(tabDataRepositoryProvider.notifier)
.assignContainer(tabState.id, containerData); .assignContainer(tabState.id, containerData);
} else if (tabState.url == originUri) { } else if (tabState.url == originUri) {
await ref await ref
.read(tabDataRepositoryProvider.notifier) .read(tabDataRepositoryProvider.notifier)
.assignContainer( .assignContainer(
tabState.id, tabState.id,
containerData, containerData,
closeOldTab: false, closeOldTab: false,
); );
} else { } else {
logger.w( logger.w(
'Could not match origin url for assignment ${tabState.url} to request ${event.originUrl}', 'Could not match origin url for assignment ${tabState.url} to request ${event.originUrl}',
); );
}
} }
} }
} }
} else {
logger.w('Could not get tab for assignement ${tabState?.url}');
} }
} else {
logger.w('Could not get tab for assignement ${tabState?.url}');
} }
} },
},
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in container site assignment stream', error: error, stackTrace: stackTrace); logger.e(
'Error in container site assignment stream',
error: error,
stackTrace: stackTrace,
);
}, },
); );
@@ -545,7 +552,11 @@ class TabRepository extends _$TabRepository {
); );
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in tab content stream', error: error, stackTrace: stackTrace); logger.e(
'Error in tab content stream',
error: error,
stackTrace: stackTrace,
);
}, },
); );
@@ -69,7 +69,11 @@ class EngineBoundIntentStream extends _$EngineBoundIntentStream {
]).listen( ]).listen(
controller.add, controller.add,
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Intent stream error', error: error, stackTrace: stackTrace); logger.e(
'Intent stream error',
error: error,
stackTrace: stackTrace,
);
controller.addError(error, stackTrace); controller.addError(error, stackTrace);
}, },
onDone: controller.close, onDone: controller.close,
@@ -1010,7 +1010,9 @@ class NavigateBackButton extends HookConsumerWidget {
} }
} }
: null, : null,
icon: isLoading ? const Icon(Icons.close) : const Icon(Icons.arrow_back), icon: isLoading
? const Icon(Icons.close)
: const Icon(Icons.arrow_back),
), ),
); );
} }
@@ -302,7 +302,9 @@ class _BrowserViewState extends ConsumerState<BrowserView>
await router.push(route.location); await router.push(route.location);
} else { } else {
throw UnimplementedError('Unknown quick action shortcut type'); throw UnimplementedError(
'Unknown quick action shortcut type',
);
} }
} }
}); });
@@ -82,7 +82,9 @@ class _TabDraggable extends HookConsumerWidget {
sourceSearchQuery: switch (entity) { sourceSearchQuery: switch (entity) {
DefaultTabEntity _ => null, DefaultTabEntity _ => null,
final SearchResultTabEntity entity => entity.searchQuery, final SearchResultTabEntity entity => entity.searchQuery,
TabTreeEntity _ => throw UnimplementedError('TabTreeEntity not implemented in tab grid view'), TabTreeEntity _ => throw UnimplementedError(
'TabTreeEntity not implemented in tab grid view',
),
}, },
); );
}, [entity.tabId, activeTab, suggestedContainerId]); }, [entity.tabId, activeTab, suggestedContainerId]);
@@ -83,7 +83,9 @@ class _TabDraggable extends HookConsumerWidget {
sourceSearchQuery: switch (entity) { sourceSearchQuery: switch (entity) {
DefaultTabEntity _ => null, DefaultTabEntity _ => null,
final SearchResultTabEntity entity => entity.searchQuery, final SearchResultTabEntity entity => entity.searchQuery,
TabTreeEntity _ => throw UnimplementedError('TabTreeEntity not implemented in tab list view'), TabTreeEntity _ => throw UnimplementedError(
'TabTreeEntity not implemented in tab list view',
),
}, },
); );
}, [entity.tabId, activeTab, suggestedContainerId]); }, [entity.tabId, activeTab, suggestedContainerId]);
@@ -486,7 +486,11 @@ class TabViewHeader extends HookConsumerWidget {
); );
} }
} catch (e, s) { } catch (e, s) {
logger.e('Failed to clear container data', error: e, stackTrace: s); logger.e(
'Failed to clear container data',
error: e,
stackTrace: s,
);
if (context.mounted) { if (context.mounted) {
ui_helper.showErrorMessage( ui_helper.showErrorMessage(
context, context,
@@ -171,7 +171,9 @@ class Section extends MultiSliver {
VisitType.download => const Text('Download'), VisitType.download => const Text('Download'),
VisitType.framedLink => const Text('Frame'), VisitType.framedLink => const Text('Frame'),
VisitType.reload => const Text('Page Reload'), VisitType.reload => const Text('Page Reload'),
VisitType.bookmark => throw UnimplementedError('VisitType.bookmark chip display not implemented'), VisitType.bookmark => throw UnimplementedError(
'VisitType.bookmark chip display not implemented',
),
}, },
), ),
Chip( Chip(
@@ -374,7 +376,9 @@ class HistoryScreen extends HookConsumerWidget {
VisitType.download => const Text('Downloads'), VisitType.download => const Text('Downloads'),
VisitType.framedLink => const Text('Frames'), VisitType.framedLink => const Text('Frames'),
VisitType.reload => const Text('Page Reloads'), VisitType.reload => const Text('Page Reloads'),
VisitType.bookmark => throw UnimplementedError('VisitType.bookmark filter not implemented'), VisitType.bookmark => throw UnimplementedError(
'VisitType.bookmark filter not implemented',
),
}, },
), ),
), ),
@@ -101,7 +101,11 @@ class TrackingProtectionExceptionsScreen extends HookConsumerWidget {
.read(trackingProtectionRepositoryProvider.notifier) .read(trackingProtectionRepositoryProvider.notifier)
.removeAllExceptions(); .removeAllExceptions();
} catch (e, s) { } catch (e, s) {
logger.e('Failed to delete tracking protection exceptions', error: e, stackTrace: s); logger.e(
'Failed to delete tracking protection exceptions',
error: e,
stackTrace: s,
);
if (context.mounted) { if (context.mounted) {
showErrorMessage(context, 'Failed to delete exceptions: $e'); showErrorMessage(context, 'Failed to delete exceptions: $e');
} }
@@ -119,7 +123,11 @@ class TrackingProtectionExceptionsScreen extends HookConsumerWidget {
.read(trackingProtectionRepositoryProvider.notifier) .read(trackingProtectionRepositoryProvider.notifier)
.removeExceptionByUrl(exception.url); .removeExceptionByUrl(exception.url);
} catch (e, s) { } catch (e, s) {
logger.e('Failed to remove tracking protection exception', error: e, stackTrace: s); logger.e(
'Failed to remove tracking protection exception',
error: e,
stackTrace: s,
);
if (context.mounted) { if (context.mounted) {
showErrorMessage(context, 'Failed to remove exception: $e'); showErrorMessage(context, 'Failed to remove exception: $e');
} }
@@ -111,8 +111,12 @@ class TorProxyService extends _$TorProxyService {
(setting) => (setting) =>
setting.bridge.type == setting.bridge.type ==
switch (torSettings.config) { switch (torSettings.config) {
TorConnectionConfig.auto => throw UnimplementedError('TorConnectionConfig.auto bridge type not supported'), TorConnectionConfig.auto => throw UnimplementedError(
TorConnectionConfig.direct => throw UnimplementedError('TorConnectionConfig.direct does not use bridges'), 'TorConnectionConfig.auto bridge type not supported',
),
TorConnectionConfig.direct => throw UnimplementedError(
'TorConnectionConfig.direct does not use bridges',
),
TorConnectionConfig.obfs4 => MoatTransportType.obfs4, TorConnectionConfig.obfs4 => MoatTransportType.obfs4,
TorConnectionConfig.snowflake => TorConnectionConfig.snowflake =>
MoatTransportType.snowflake, MoatTransportType.snowflake,
@@ -57,7 +57,11 @@ class CacheRepository extends _$CacheRepository {
} }
}, },
onError: (Object error, StackTrace stackTrace) { onError: (Object error, StackTrace stackTrace) {
logger.e('Error in icon update events', error: error, stackTrace: stackTrace); logger.e(
'Error in icon update events',
error: error,
stackTrace: stackTrace,
);
}, },
); );
@@ -92,7 +92,9 @@ class FeedParser {
tags: tags, tags: tags,
); );
default: default:
throw Exception('Unknown feed type in readGeneralData: ${_feed.runtimeType}'); throw Exception(
'Unknown feed type in readGeneralData: ${_feed.runtimeType}',
);
} }
} }
@@ -209,7 +211,9 @@ class FeedParser {
); );
}).toList(); }).toList();
default: default:
throw Exception('Unknown feed type in readArticles: ${_feed.runtimeType}'); throw Exception(
'Unknown feed type in readArticles: ${_feed.runtimeType}',
);
} }
} }
} }
+10 -2
View File
@@ -110,10 +110,18 @@ class _MainWidget extends HookConsumerWidget {
engineSettings.addonCollection, engineSettings.addonCollection,
); );
} on PlatformException catch (e, s) { } on PlatformException catch (e, s) {
logger.e('Platform exception during Gecko initialization', error: e, stackTrace: s); logger.e(
'Platform exception during Gecko initialization',
error: e,
stackTrace: s,
);
rethrow; rethrow;
} catch (e, s) { } catch (e, s) {
logger.e('Failed to initialize Gecko browser service', error: e, stackTrace: s); logger.e(
'Failed to initialize Gecko browser service',
error: e,
stackTrace: s,
);
rethrow; rethrow;
} }
@@ -67,7 +67,10 @@ class _GeckoViewState extends State<GeckoView> {
final result = await browserService.showNativeFragment(); final result = await browserService.showNativeFragment();
if (result) { if (result) {
developer.log('Fragment ATTACHED after $attempt tries', name: 'GeckoView'); developer.log(
'Fragment ATTACHED after $attempt tries',
name: 'GeckoView',
);
return true; return true;
} }
@@ -76,7 +79,11 @@ class _GeckoViewState extends State<GeckoView> {
} }
} }
developer.log('Fragment FAILED after $maxRetries tries', name: 'GeckoView', level: 900); developer.log(
'Fragment FAILED after $maxRetries tries',
name: 'GeckoView',
level: 900,
);
return false; return false;
} }