run formatter
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
+3
-1
@@ -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),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -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',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
+3
-1
@@ -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]);
|
||||||
|
|||||||
+3
-1
@@ -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]);
|
||||||
|
|||||||
+5
-1
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user