@@ -48,7 +48,8 @@ final _tabsToAttach = <Tab>{};
48
48
49
49
final _debugSessions = < DebugSession > [];
50
50
51
- final _devToolsPanelsNotifier = Notifier (< DevToolsPanel > []);
51
+ final _devToolsPanelsNotifier =
52
+ Notifier <List <DevToolsPanel >>(< DevToolsPanel > []);
52
53
53
54
// Keeps track of the most recent Dart tab that was opened. This is a heuristic
54
55
// to let us guess which tab the user is trying to debug if they start debugging
@@ -178,9 +179,9 @@ void _startDebugging(DebuggerTrigger debuggerTrigger) {
178
179
// Extracts the extension backend port from the injected JS.
179
180
var attachDebuggerToTab = allowInterop (_attachDebuggerToTab);
180
181
181
- queryTabs (getCurrentTabQuery, allowInterop ((List < Tab > tabs) {
182
- if (tabs != null && tabs .isNotEmpty) {
183
- attachDebuggerToTab (tabs[ 0 ] );
182
+ queryTabs (getCurrentTabQuery, allowInterop ((List tabs) {
183
+ if (tabs.isNotEmpty) {
184
+ attachDebuggerToTab (tabs.first as Tab );
184
185
} else if (_mostRecentDartTab != null ) {
185
186
attachDebuggerToTab (_mostRecentDartTab);
186
187
} else {
@@ -371,8 +372,9 @@ void _forwardMessageToExternalExtensions(
371
372
}
372
373
}
373
374
374
- void _notifyPanelScriptOfChanges (List <DevToolsPanel > panels) {
375
- for (final panel in panels) {
375
+ void _notifyPanelScriptOfChanges (List panels) {
376
+ final panelsList = List <DevToolsPanel >.from (panels);
377
+ for (final panel in panelsList) {
376
378
sendSimpleMessage (panel.panelId,
377
379
SimpleMessage (recipient: 'panel-script' , body: panel.devToolsUri));
378
380
}
@@ -532,7 +534,8 @@ Future<void> _startSseClient(
532
534
533
535
void _updateOrCreateDevToolsPanel (
534
536
String appId, void Function (DevToolsPanel panel) update) {
535
- final devToolsPanels = _devToolsPanelsNotifier.value;
537
+ final devToolsPanels =
538
+ List <DevToolsPanel >.from (_devToolsPanelsNotifier.value);
536
539
var panelAlreadyExists = false ;
537
540
for (final panel in devToolsPanels) {
538
541
if (panel.appId == appId) {
@@ -551,19 +554,18 @@ void _updateOrCreateDevToolsPanel(
551
554
void _updateIcon () {
552
555
var query = QueryInfo (active: true , currentWindow: true );
553
556
queryTabs (query, allowInterop ((List tabs) {
554
- var tabList = List <Tab >.from (tabs);
555
557
// If tabList is empty, the user has likely navigated to a different window.
556
558
// Therefore, do not update the icon:
557
- if (tabList .isEmpty || tabList.first == null || tabList.first.id == null ) {
558
- return ;
559
- }
559
+ if (tabs .isEmpty) return ;
560
+ final tab = tabs.first as Tab ;
561
+ if (tab.id == null ) return ;
560
562
561
- if (_tabIdToWarning.containsKey (tabList.first .id)) {
563
+ if (_tabIdToWarning.containsKey (tab .id)) {
562
564
// Set the warning icon (red):
563
565
setIcon (IconInfo (path: 'dart_warning.png' ));
564
- } else if (_debuggableTabs.contains (tabList.first .id)) {
566
+ } else if (_debuggableTabs.contains (tab .id)) {
565
567
// Set the debuggable icon (blue):
566
- _mostRecentDartTab = tabList.first ;
568
+ _mostRecentDartTab = tab ;
567
569
setIcon (IconInfo (path: 'dart.png' ));
568
570
} else {
569
571
// Set the default icon (grey):
@@ -595,7 +597,7 @@ class Notifier<T> {
595
597
Notifier (T value) : _value = value;
596
598
597
599
T _value;
598
- final List <Listener > _listeners = < Listener > [];
600
+ final List <Listener < T >> _listeners = < Listener < T > > [];
599
601
600
602
T get value => _value;
601
603
@@ -604,7 +606,7 @@ class Notifier<T> {
604
606
notifyListeners ();
605
607
}
606
608
607
- void addListener (Listener listener) {
609
+ void addListener (Listener < T > listener) {
608
610
_listeners.add (listener);
609
611
}
610
612
0 commit comments