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,
);
} 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;
}
}
@@ -52,7 +52,11 @@ class SelectedTab extends _$SelectedTab {
state = tabId;
},
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) {
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);
},
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(
@@ -231,7 +235,11 @@ class TabStates extends _$TabStates {
await _onIconChange(event);
},
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(
@@ -239,7 +247,11 @@ class TabStates extends _$TabStates {
await _onThumbnailChange(event);
},
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(
@@ -247,7 +259,11 @@ class TabStates extends _$TabStates {
_onSecurityInfoStateChange(event);
},
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(
@@ -255,7 +271,11 @@ class TabStates extends _$TabStates {
_onHistoryStateChange(event);
},
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(
@@ -263,7 +283,11 @@ class TabStates extends _$TabStates {
_onReaderableStateChange(event);
},
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
@@ -273,7 +297,11 @@ class TabStates extends _$TabStates {
_onFindResultsChange(event);
},
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);
},
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(
@@ -114,7 +118,11 @@ class WebExtensionsState extends _$WebExtensionsState {
await _onIconChange(event);
},
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);
},
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(
@@ -132,7 +144,11 @@ class WebExtensionsState extends _$WebExtensionsState {
await _onIconChange(event);
},
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) {
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((
event,
) async {
if (event.tabId != null) {
// Prevent concurrent processing of the same tab (race condition protection)
if (_tabsBeingProcessedForAssignment.contains(event.tabId)) {
logger.d(
'Skipping container assignment for tab ${event.tabId} - already being processed',
);
return;
}
final containerSiteAssignementSub = eventSerivce.siteAssignementEvent.listen(
(event) async {
if (event.tabId != null) {
// Prevent concurrent processing of the same tab (race condition protection)
if (_tabsBeingProcessedForAssignment.contains(event.tabId)) {
logger.d(
'Skipping container assignment for tab ${event.tabId} - already being processed',
);
return;
}
_tabsBeingProcessedForAssignment.add(event.tabId!);
_tabsBeingProcessedForAssignment.add(event.tabId!);
// ignore: only_use_keep_alive_inside_keep_alive
final tabState = ref.read(tabStateProvider(event.tabId));
if (tabState != null) {
final uri = Uri.parse(event.url);
final originUri = event.originUrl.mapNotNull(Uri.parse);
// ignore: only_use_keep_alive_inside_keep_alive
final tabState = ref.read(tabStateProvider(event.tabId));
if (tabState != null) {
final uri = Uri.parse(event.url);
final originUri = event.originUrl.mapNotNull(Uri.parse);
final targetContainerId = await ref
.read(containerRepositoryProvider.notifier)
.siteAssignedContainerId(Uri.parse(uri.origin));
final containerData = await targetContainerId.mapNotNull(
(id) => ref
final targetContainerId = await ref
.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) {
final tabIsEmpty =
tabState.url == TabState.defaultUrl &&
tabState.historyState.items.isEmpty;
if (containerData != null) {
final tabIsEmpty =
tabState.url == TabState.defaultUrl &&
tabState.historyState.items.isEmpty;
if (event.blocked || tabIsEmpty) {
// Check if contextual identity is changing
final currentContainerData = await ref
.read(tabDataRepositoryProvider.notifier)
.getTabContainerData(tabState.id);
if (event.blocked || tabIsEmpty) {
// Check if contextual identity is changing
final currentContainerData = await ref
.read(tabDataRepositoryProvider.notifier)
.getTabContainerData(tabState.id);
final contextChanging =
containerData.metadata.contextualIdentity !=
currentContainerData?.metadata.contextualIdentity;
final contextChanging =
containerData.metadata.contextualIdentity !=
currentContainerData?.metadata.contextualIdentity;
await addTab(
url: uri,
private: tabState.isPrivate,
container: Value(containerData),
parentId: contextChanging
? null
: tabState.id, // Break parent chain if context changes
selectTab: true,
);
await addTab(
url: uri,
private: tabState.isPrivate,
container: Value(containerData),
parentId: contextChanging
? null
: tabState.id, // Break parent chain if context changes
selectTab: true,
);
if (tabIsEmpty) {
await closeTab(tabState.id);
}
} else {
final tabContainerId = await ref
.read(tabDataRepositoryProvider.notifier)
.getTabContainerId(tabState.id);
if (tabIsEmpty) {
await closeTab(tabState.id);
}
} else {
final tabContainerId = await ref
.read(tabDataRepositoryProvider.notifier)
.getTabContainerId(tabState.id);
if (targetContainerId != tabContainerId) {
if (originUri == null) {
await ref
.read(tabDataRepositoryProvider.notifier)
.assignContainer(tabState.id, containerData);
} else if (tabState.url == originUri) {
await ref
.read(tabDataRepositoryProvider.notifier)
.assignContainer(
tabState.id,
containerData,
closeOldTab: false,
);
} else {
logger.w(
'Could not match origin url for assignment ${tabState.url} to request ${event.originUrl}',
);
if (targetContainerId != tabContainerId) {
if (originUri == null) {
await ref
.read(tabDataRepositoryProvider.notifier)
.assignContainer(tabState.id, containerData);
} else if (tabState.url == originUri) {
await ref
.read(tabDataRepositoryProvider.notifier)
.assignContainer(
tabState.id,
containerData,
closeOldTab: false,
);
} else {
logger.w(
'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) {
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) {
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(
controller.add,
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);
},
onDone: controller.close,
@@ -1010,7 +1010,9 @@ class NavigateBackButton extends HookConsumerWidget {
}
}
: 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);
} 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) {
DefaultTabEntity _ => null,
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]);
@@ -83,7 +83,9 @@ class _TabDraggable extends HookConsumerWidget {
sourceSearchQuery: switch (entity) {
DefaultTabEntity _ => null,
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]);
@@ -486,7 +486,11 @@ class TabViewHeader extends HookConsumerWidget {
);
}
} 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) {
ui_helper.showErrorMessage(
context,
@@ -171,7 +171,9 @@ class Section extends MultiSliver {
VisitType.download => const Text('Download'),
VisitType.framedLink => const Text('Frame'),
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(
@@ -374,7 +376,9 @@ class HistoryScreen extends HookConsumerWidget {
VisitType.download => const Text('Downloads'),
VisitType.framedLink => const Text('Frames'),
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)
.removeAllExceptions();
} 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) {
showErrorMessage(context, 'Failed to delete exceptions: $e');
}
@@ -119,7 +123,11 @@ class TrackingProtectionExceptionsScreen extends HookConsumerWidget {
.read(trackingProtectionRepositoryProvider.notifier)
.removeExceptionByUrl(exception.url);
} 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) {
showErrorMessage(context, 'Failed to remove exception: $e');
}
@@ -111,8 +111,12 @@ class TorProxyService extends _$TorProxyService {
(setting) =>
setting.bridge.type ==
switch (torSettings.config) {
TorConnectionConfig.auto => throw UnimplementedError('TorConnectionConfig.auto bridge type not supported'),
TorConnectionConfig.direct => throw UnimplementedError('TorConnectionConfig.direct does not use bridges'),
TorConnectionConfig.auto => throw UnimplementedError(
'TorConnectionConfig.auto bridge type not supported',
),
TorConnectionConfig.direct => throw UnimplementedError(
'TorConnectionConfig.direct does not use bridges',
),
TorConnectionConfig.obfs4 => MoatTransportType.obfs4,
TorConnectionConfig.snowflake =>
MoatTransportType.snowflake,
@@ -57,7 +57,11 @@ class CacheRepository extends _$CacheRepository {
}
},
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,
);
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();
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,
);
} 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;
} 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;
}
@@ -67,7 +67,10 @@ class _GeckoViewState extends State<GeckoView> {
final result = await browserService.showNativeFragment();
if (result) {
developer.log('Fragment ATTACHED after $attempt tries', name: 'GeckoView');
developer.log(
'Fragment ATTACHED after $attempt tries',
name: 'GeckoView',
);
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;
}