diff --git a/dwds/analysis_options.yaml b/dwds/analysis_options.yaml index 16a61295f..af2eb6bc7 100644 --- a/dwds/analysis_options.yaml +++ b/dwds/analysis_options.yaml @@ -19,3 +19,4 @@ linter: - directives_ordering - prefer_final_locals - unawaited_futures + - avoid_void_async diff --git a/dwds/debug_extension/tool/copy_builder.dart b/dwds/debug_extension/tool/copy_builder.dart index 8cd114257..c9e716964 100644 --- a/dwds/debug_extension/tool/copy_builder.dart +++ b/dwds/debug_extension/tool/copy_builder.dart @@ -21,7 +21,7 @@ class _CopyBuilder extends Builder { }; @override - void build(BuildStep buildStep) async { + Future build(BuildStep buildStep) async { final inputAsset = buildStep.inputId; final allowedOutputs = buildStep.allowedOutputs; diff --git a/dwds/debug_extension/web/background.dart b/dwds/debug_extension/web/background.dart index 7b6700d21..210a498f3 100644 --- a/dwds/debug_extension/web/background.dart +++ b/dwds/debug_extension/web/background.dart @@ -233,7 +233,7 @@ void _startDebugging(DebuggerTrigger debuggerTrigger) { })); } -void _attachDebuggerToTab(Tab currentTab) async { +Future _attachDebuggerToTab(Tab currentTab) async { if (!_debuggableTabs.contains(currentTab.id)) return; if (_tabIdToWarning.containsKey(currentTab.id)) { @@ -287,7 +287,7 @@ void _handleMessageFromPanelScript(Request request, MessageSender sender) { } } -void _maybeMarkTabAsDebuggable( +Future _maybeMarkTabAsDebuggable( Request request, MessageSender sender, Function sendResponse) async { // Register any warnings for the tab: if (request.warning != '') { @@ -300,7 +300,7 @@ void _maybeMarkTabAsDebuggable( sendResponse(true); } -void _maybeAttachDebugSession( +Future _maybeAttachDebugSession( Debuggee source, String method, Object? params, @@ -361,7 +361,7 @@ int _removeDebugSessionForTab(int tabId) { } } -void _maybeSaveDevToolsTabId(Tab tab) async { +Future _maybeSaveDevToolsTabId(Tab tab) async { // Remembers the ID of the DevTools tab. // // This assumes that the next launched tab after a session is created is the @@ -369,7 +369,7 @@ void _maybeSaveDevToolsTabId(Tab tab) async { if (_debugSessions.isNotEmpty) _debugSessions.last.devtoolsTabId ??= tab.id; } -void _handleMessageFromExternalExtensions( +Future _handleMessageFromExternalExtensions( dynamic jsRequest, MessageSender sender, Function sendResponse) async { if (jsRequest == null) return; final request = jsRequest as Request; @@ -408,7 +408,7 @@ void _handleMessageFromExternalExtensions( } } -void _forwardMessageToExternalExtensions( +Future _forwardMessageToExternalExtensions( Debuggee source, String method, Object? params) async { if (_allowedEvents.contains(method)) { sendMessageToExtensions(ExternalExtensionRequest( diff --git a/dwds/debug_extension_mv3/tool/copy_builder.dart b/dwds/debug_extension_mv3/tool/copy_builder.dart index 93875c935..cf0db0a8d 100644 --- a/dwds/debug_extension_mv3/tool/copy_builder.dart +++ b/dwds/debug_extension_mv3/tool/copy_builder.dart @@ -18,7 +18,7 @@ class _CopyBuilder extends Builder { }; @override - void build(BuildStep buildStep) async { + Future build(BuildStep buildStep) async { final inputAsset = buildStep.inputId; final allowedOutputs = buildStep.allowedOutputs; diff --git a/dwds/debug_extension_mv3/web/background.dart b/dwds/debug_extension_mv3/web/background.dart index bfc4c99b2..e4e94229a 100644 --- a/dwds/debug_extension_mv3/web/background.dart +++ b/dwds/debug_extension_mv3/web/background.dart @@ -55,7 +55,7 @@ void _registerListeners() { )); } -void _handleRuntimeMessages( +Future _handleRuntimeMessages( dynamic jsRequest, MessageSender sender, Function sendResponse) async { if (jsRequest is! String) return; @@ -137,7 +137,8 @@ void _handleRuntimeMessages( }); } -void _detectNavigationAwayFromDartApp(NavigationInfo navigationInfo) async { +Future _detectNavigationAwayFromDartApp( + NavigationInfo navigationInfo) async { final tabId = navigationInfo.tabId; final debugInfo = await _fetchDebugInfo(navigationInfo.tabId); if (debugInfo == null) return; diff --git a/dwds/debug_extension_mv3/web/cross_extension_communication.dart b/dwds/debug_extension_mv3/web/cross_extension_communication.dart index 77faf5e44..19a04f847 100644 --- a/dwds/debug_extension_mv3/web/cross_extension_communication.dart +++ b/dwds/debug_extension_mv3/web/cross_extension_communication.dart @@ -27,16 +27,16 @@ final _eventsForAngularDartDevTools = { 'dwds.encodedUri', }; -void handleMessagesFromAngularDartDevTools( +Future handleMessagesFromAngularDartDevTools( dynamic jsRequest, MessageSender sender, Function sendResponse) async { if (jsRequest == null) return; final message = jsRequest as ExternalExtensionMessage; if (message.name == 'chrome.debugger.sendCommand') { _forwardCommandToChromeDebugger(message, sendResponse); } else if (message.name == 'dwds.encodedUri') { - _respondWithEncodedUri(message.tabId, sendResponse); + await _respondWithEncodedUri(message.tabId, sendResponse); } else if (message.name == 'dwds.startDebugging') { - attachDebugger(message.tabId, trigger: Trigger.angularDartDevTools); + await attachDebugger(message.tabId, trigger: Trigger.angularDartDevTools); sendResponse(true); } else { sendResponse( @@ -83,7 +83,7 @@ void _respondWithChromeResult(Object? chromeResult, Function sendResponse) { } } -void _respondWithEncodedUri(int tabId, Function sendResponse) async { +Future _respondWithEncodedUri(int tabId, Function sendResponse) async { final encodedUri = await fetchStorageObject( type: StorageObject.encodedUri, tabId: tabId); sendResponse(encodedUri ?? ''); diff --git a/dwds/debug_extension_mv3/web/debug_session.dart b/dwds/debug_extension_mv3/web/debug_session.dart index 74d313e14..b101b42e8 100644 --- a/dwds/debug_extension_mv3/web/debug_session.dart +++ b/dwds/debug_extension_mv3/web/debug_session.dart @@ -104,7 +104,8 @@ bool get existsActiveDebugSession => _debugSessions.isNotEmpty; int? get latestAppBeingDebugged => existsActiveDebugSession ? _debugSessions.last.appTabId : null; -void attachDebugger(int dartAppTabId, {required Trigger trigger}) async { +Future attachDebugger(int dartAppTabId, + {required Trigger trigger}) async { // Check if a debugger is already attached: final existingDebuggerLocation = _debuggerLocation(dartAppTabId); if (existingDebuggerLocation != null) { @@ -372,7 +373,8 @@ void _forwardChromeDebuggerEventToDwds( } } -void _openDevTools(String devToolsUri, {required int dartAppTabId}) async { +Future _openDevTools(String devToolsUri, + {required int dartAppTabId}) async { if (devToolsUri.isEmpty) { debugError('DevTools URI is empty.'); return; diff --git a/dwds/debug_extension_mv3/web/devtools.dart b/dwds/debug_extension_mv3/web/devtools.dart index 68521425f..6494eef70 100644 --- a/dwds/debug_extension_mv3/web/devtools.dart +++ b/dwds/debug_extension_mv3/web/devtools.dart @@ -19,7 +19,7 @@ bool panelsExist = false; void main() async { _registerListeners(); - _maybeCreatePanels(); + await _maybeCreatePanels(); } void _registerListeners() { @@ -31,7 +31,7 @@ void _registerListeners() { })); } -void _maybeCreatePanels() async { +Future _maybeCreatePanels() async { if (panelsExist) return; final tabId = chrome.devtools.inspectedWindow.tabId; final debugInfo = await fetchStorageObject( diff --git a/dwds/debug_extension_mv3/web/settings.dart b/dwds/debug_extension_mv3/web/settings.dart index 450b190f2..aa49d75c5 100644 --- a/dwds/debug_extension_mv3/web/settings.dart +++ b/dwds/debug_extension_mv3/web/settings.dart @@ -23,7 +23,7 @@ void _registerListeners() { saveButton.addEventListener('click', _saveSettingsToStorage); } -void _updateSettingsFromStorage(Event _) async { +Future _updateSettingsFromStorage(Event _) async { final devToolsOpener = await fetchStorageObject( type: StorageObject.devToolsOpener); final openInNewWindow = devToolsOpener?.newWindow ?? false; @@ -31,7 +31,7 @@ void _updateSettingsFromStorage(Event _) async { _getRadioButton('tabOpt').checked = !openInNewWindow; } -void _saveSettingsToStorage(Event event) async { +Future _saveSettingsToStorage(Event event) async { event.preventDefault(); _maybeHideSavedMsg(); final form = document.querySelector("form") as FormElement; diff --git a/dwds/lib/src/debugging/debugger.dart b/dwds/lib/src/debugging/debugger.dart index 02901b5cd..21d797d16 100644 --- a/dwds/lib/src/debugging/debugger.dart +++ b/dwds/lib/src/debugging/debugger.dart @@ -213,7 +213,7 @@ class Debugger extends Domain { Future resumeFromStart() => _resumeHandler(null); /// Notify the debugger the [Isolate] is paused at the application start. - void notifyPausedAtStart() async { + void notifyPausedAtStart() { stackComputer = FrameComputer(this, []); } diff --git a/dwds/lib/src/handlers/dev_handler.dart b/dwds/lib/src/handlers/dev_handler.dart index cec7aa61c..c4db774f3 100644 --- a/dwds/lib/src/handlers/dev_handler.dart +++ b/dwds/lib/src/handlers/dev_handler.dart @@ -432,7 +432,7 @@ class DevHandler { .createIsolate(appConnection); } - void _listen() async { + Future _listen() async { _subs.add(_injected.devHandlerPaths.listen((devHandlerPath) async { final uri = Uri.parse(devHandlerPath); if (!_sseHandlers.containsKey(uri.path)) { @@ -473,14 +473,14 @@ class DevHandler { return appDebugService; } - void _listenForDebugExtension() async { + Future _listenForDebugExtension() async { while (await _extensionBackend!.connections.hasNext) { - _startExtensionDebugService(); + await _startExtensionDebugService(); } } /// Starts a [DebugService] for Dart Debug Extension. - void _startExtensionDebugService() async { + Future _startExtensionDebugService() async { final extensionDebugger = await _extensionBackend!.extensionDebugger; // Waits for a `DevToolsRequest` to be sent from the extension background // when the extension is clicked. diff --git a/dwds/lib/src/services/batched_expression_evaluator.dart b/dwds/lib/src/services/batched_expression_evaluator.dart index 3c39d54cb..75658c1c4 100644 --- a/dwds/lib/src/services/batched_expression_evaluator.dart +++ b/dwds/lib/src/services/batched_expression_evaluator.dart @@ -68,7 +68,7 @@ class BatchedExpressionEvaluator extends ExpressionEvaluator { return request.completer.future; } - void _processRequest(List requests) async { + Future _processRequest(List requests) async { String? libraryUri; String? isolateId; Map? scope; diff --git a/dwds/lib/src/services/chrome_proxy_service.dart b/dwds/lib/src/services/chrome_proxy_service.dart index d1cb2a20b..63fa47199 100644 --- a/dwds/lib/src/services/chrome_proxy_service.dart +++ b/dwds/lib/src/services/chrome_proxy_service.dart @@ -991,7 +991,7 @@ ${globalLoadStrategy.loadModuleSnippet}("dart_sdk").developer.invokeExtension( ..timestamp = event.timestamp.toInt()); break; case 'dart.developer.log': - _handleDeveloperLog(isolateRef, event); + await _handleDeveloperLog(isolateRef, event); break; default: break; @@ -1005,7 +1005,8 @@ ${globalLoadStrategy.loadModuleSnippet}("dart_sdk").developer.invokeExtension( controller.add(event); } - void _handleDeveloperLog(IsolateRef isolateRef, ConsoleAPIEvent event) async { + Future _handleDeveloperLog( + IsolateRef isolateRef, ConsoleAPIEvent event) async { final logObject = event.params?['args'][1] as Map?; final logParams = {}; for (dynamic obj in logObject?['preview']?['properties'] ?? {}) { diff --git a/dwds/test/fixtures/context.dart b/dwds/test/fixtures/context.dart index 3fcd2a836..bc8454882 100644 --- a/dwds/test/fixtures/context.dart +++ b/dwds/test/fixtures/context.dart @@ -481,7 +481,7 @@ class TestContext { void makeEditToDartEntryFile({ required String toReplace, required String replaceWith, - }) async { + }) { final file = File(_dartEntryFilePath); final fileContents = file.readAsStringSync(); file.writeAsStringSync(fileContents.replaceAll(toReplace, replaceWith)); diff --git a/dwds/test/puppeteer/extension_test.dart b/dwds/test/puppeteer/extension_test.dart index 188147ad6..97738e8ba 100644 --- a/dwds/test/puppeteer/extension_test.dart +++ b/dwds/test/puppeteer/extension_test.dart @@ -472,7 +472,7 @@ void main() async { (target) => target.url.startsWith('devtools://devtools')); chromeDevToolsTarget.type = 'page'; final chromeDevToolsPage = await chromeDevToolsTarget.page; - _tabLeft(chromeDevToolsPage); + await _tabLeft(chromeDevToolsPage); await _takeScreenshot(chromeDevToolsPage, screenshotName: 'chromeDevTools_externalBuild'); final inspectorPanelTarget = browser.targets.firstWhereOrNull( @@ -564,7 +564,7 @@ void main() async { // therefore we rely on a slight delay: await Future.delayed(Duration(seconds: 1)); if (isFlutterApp) { - _tabLeft(chromeDevToolsPage); + await _tabLeft(chromeDevToolsPage); final inspectorPanelElement = await _getPanelElement( browser, panel: Panel.inspector, @@ -576,7 +576,7 @@ void main() async { screenshotName: 'inspectorPanelLandingPage_flutterApp', ); } - _tabLeft(chromeDevToolsPage); + await _tabLeft(chromeDevToolsPage); final debuggerPanelElement = await _getPanelElement( browser, panel: Panel.debugger, @@ -597,9 +597,9 @@ void main() async { // therefore we rely on a slight delay: await Future.delayed(Duration(seconds: 1)); // Navigate to the Dart Debugger panel: - _tabLeft(chromeDevToolsPage); + await _tabLeft(chromeDevToolsPage); if (isFlutterApp) { - _tabLeft(chromeDevToolsPage); + await _tabLeft(chromeDevToolsPage); } await _clickLaunchButton( browser, @@ -661,9 +661,9 @@ void main() async { // therefore we rely on a slight delay: await Future.delayed(Duration(seconds: 1)); // Navigate to the Dart Debugger panel: - _tabLeft(chromeDevToolsPage); + await _tabLeft(chromeDevToolsPage); if (isFlutterApp) { - _tabLeft(chromeDevToolsPage); + await _tabLeft(chromeDevToolsPage); } await _clickLaunchButton( browser, @@ -702,9 +702,9 @@ void main() async { // therefore we rely on a slight delay: await Future.delayed(Duration(seconds: 1)); // Navigate to the Dart Debugger panel: - _tabLeft(chromeDevToolsPage); + await _tabLeft(chromeDevToolsPage); if (isFlutterApp) { - _tabLeft(chromeDevToolsPage); + await _tabLeft(chromeDevToolsPage); } // Expect there to be no warning banner: var warningMsg = await _evaluateInPanel(browser, @@ -884,7 +884,7 @@ Future _getPanelElement( return panelElement; } -void _tabLeft(Page chromeDevToolsPage) async { +Future _tabLeft(Page chromeDevToolsPage) async { // TODO(elliette): Detect which enviroment we are OS we are running // in and update modifier key accordingly. Meta key for MacOs and // Ctrl key for Linux/Windows.