Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
analyzer:
strong-mode:
implicit-casts: false
errors:
dead_code: error
unused_element: error
Expand Down
2 changes: 2 additions & 0 deletions dwds/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
- Pre-warm expression compiler cache to speed up Flutter Inspector loading.
- Remove `ChromeProxyService.setExceptionPauseMode()`.
- Display full error on failure to start DDS.
- Fix crash on processing DevTools event when starting DevTools from observatory
uri.

## 16.0.1

Expand Down
24 changes: 14 additions & 10 deletions dwds/lib/src/dwds_vm_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -152,18 +152,22 @@ void _processSendEvent(Map<String, dynamic> event,
_logger.finest('Received DevTools event: $event');
final action = payload?['action'] as String?;
final screen = payload?['screen'] as String?;
final devToolsStart = dwdsStats.devToolsStart;
final debuggerStart = dwdsStats.debuggerStart;
if (screen != null && action == 'pageReady') {
if (dwdsStats.isFirstDebuggerReady) {
final debuggerReadyTime = DateTime.now()
.difference(dwdsStats.devToolsStart)
.inMilliseconds;
emitEvent(DwdsEvent.devToolsLoad(debuggerReadyTime, screen));
_logger.fine('DevTools load time: $debuggerReadyTime ms');
final debuggerStartTime = DateTime.now()
.difference(dwdsStats.debuggerStart)
.inMilliseconds;
emitEvent(DwdsEvent.debuggerReady(debuggerStartTime, screen));
_logger.fine('Debugger ready time: $debuggerStartTime ms');
if (devToolsStart != null) {
final debuggerReadyTime =
DateTime.now().difference(devToolsStart).inMilliseconds;
emitEvent(DwdsEvent.devToolsLoad(debuggerReadyTime, screen));
_logger.fine('DevTools load time: $debuggerReadyTime ms');
}
if (debuggerStart != null) {
final debuggerStartTime =
DateTime.now().difference(debuggerStart).inMilliseconds;
emitEvent(DwdsEvent.debuggerReady(debuggerStartTime, screen));
_logger.fine('Debugger ready time: $debuggerStartTime ms');
}
} else {
_logger
.finest('Debugger and DevTools startup times already recorded.'
Expand Down
8 changes: 4 additions & 4 deletions dwds/lib/src/events.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ import 'package:vm_service/vm_service.dart';

class DwdsStats {
/// The time when the user starts the debugger.
late DateTime _debuggerStart;
DateTime get debuggerStart => _debuggerStart;
DateTime? _debuggerStart;
DateTime? get debuggerStart => _debuggerStart;

/// The time when dwds launches DevTools.
late DateTime _devToolsStart;
DateTime get devToolsStart => _devToolsStart;
DateTime? _devToolsStart;
DateTime? get devToolsStart => _devToolsStart;

/// Records and returns weither the debugger is ready.
bool _isFirstDebuggerReady = true;
Expand Down