Remove unused code in inspector files. (#9931)
* Remove unused code in inspector_service.dart
* Remove unused code in inspector controllers
* ignore diagnostics node warnings
* formatting
* review comments
* remove unused getter
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 7438d8d..a50ef32 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -170,10 +170,6 @@
# devtools_app/.
# TODO(https://github.com/flutter/devtools/issues/9906) remove these
# excludes as findings are resolved.
- # Investigate internal usages of inspector logic before removing.
- - lib/src/screens/inspector/**_controller.dart
- - lib/src/shared/diagnostics/inspector_service.dart
- - lib/src/shared/diagnostics/diagnostics_node.dart
# This fixture has unused code for testing the debugger.
- test/test_infra/fixtures/flutter_app/**
rules:
diff --git a/packages/devtools_app/lib/src/screens/inspector/inspector_controller.dart b/packages/devtools_app/lib/src/screens/inspector/inspector_controller.dart
index 9484ecb..b9049b0 100644
--- a/packages/devtools_app/lib/src/screens/inspector/inspector_controller.dart
+++ b/packages/devtools_app/lib/src/screens/inspector/inspector_controller.dart
@@ -223,17 +223,10 @@
InspectorObjectGroupManager? _layoutGroups;
- /// Node being highlighted due to the current hover.
- InspectorTreeNode? get currentShowNode => inspectorTree.hover;
-
- set currentShowNode(InspectorTreeNode? node) => inspectorTree.hover = node;
-
bool flutterAppFrameReady = false;
bool treeLoadStarted = false;
- RemoteDiagnosticsNode? subtreeRoot;
-
bool programmaticSelectionChangeInProgress = false;
ValueListenable<InspectorTreeNode?> get selectedNode => _selectedNode;
@@ -252,8 +245,6 @@
_implementationWidgetsHidden;
final _implementationWidgetsHidden = ValueNotifier<bool>(true);
- InspectorTreeNode? lastExpanded;
-
bool isActive = false;
final valueToInspectorTreeNode = <InspectorInstanceRef, InspectorTreeNode>{};
@@ -262,8 +253,6 @@
/// not perform any actions.
bool visibleToUser = false;
- bool highlightNodesShownInBothTrees = false;
-
RemoteDiagnosticsNode? get selectedDiagnostic =>
selectedNode.value?.diagnostic;
@@ -276,10 +265,6 @@
/// inspector tree load timing.
bool firstInspectorTreeLoadCompleted = false;
- FlutterTreeType getTreeType() {
- return treeType;
- }
-
Future<void> setVisibleToUser(bool visible) async {
if (visibleToUser == visible) {
return;
@@ -293,24 +278,12 @@
}
}
- bool hasDiagnosticsValue(InspectorInstanceRef ref) {
- return valueToInspectorTreeNode.containsKey(ref);
- }
-
- RemoteDiagnosticsNode? findDiagnosticsValue(InspectorInstanceRef ref) {
- return valueToInspectorTreeNode[ref]?.diagnostic;
- }
-
void endShowNode() {
highlightShowNode(null);
}
- bool highlightShowFromNodeInstanceRef(InspectorInstanceRef ref) {
- return highlightShowNode(valueToInspectorTreeNode[ref]);
- }
-
bool highlightShowNode(InspectorTreeNode? node) {
- currentShowNode = node;
+ inspectorTree.hover = node;
return true;
}
@@ -350,11 +323,8 @@
_treeGroups?.clear(isolateStopped);
_selectionGroups?.clear(isolateStopped);
- currentShowNode = null;
+ inspectorTree.hover = null;
_selectedNode.value = null;
- lastExpanded = null;
-
- subtreeRoot = null;
inspectorTree.root = inspectorTree.createNode();
programmaticSelectionChangeInProgress = false;
@@ -622,35 +592,6 @@
valueToInspectorTreeNode.clear();
}
- void setSubtreeRoot(
- RemoteDiagnosticsNode? node,
- RemoteDiagnosticsNode? selection,
- ) {
- selection ??= node;
- if (node != null && node == subtreeRoot) {
- // Select the new node in the existing subtree.
- applyNewSelection(selection);
- return;
- }
- subtreeRoot = node;
- if (node == null) {
- // Passing in a null node indicates we should clear the subtree and free any memory allocated.
- shutdownTree(false);
- return;
- }
-
- // Clear now to eliminate frame of highlighted nodes flicker.
- _clearValueToInspectorTreeNodeMapping();
- unawaited(_recomputeTreeRoot(selection));
- }
-
- InspectorTreeNode? getSubtreeRootNode() {
- if (subtreeRoot == null) {
- return null;
- }
- return valueToInspectorTreeNode[subtreeRoot!.valueRef];
- }
-
void refreshSelection(RemoteDiagnosticsNode? newSelection) {
newSelection ??= selectedDiagnostic;
final matchingNode = findMatchingInspectorTreeNode(newSelection);
@@ -676,26 +617,6 @@
animateTo(selectedNode.value);
}
- void selectAndShowNode(RemoteDiagnosticsNode? node) {
- if (node == null) {
- return;
- }
- selectAndShowInspectorInstanceRef(node.valueRef);
- }
-
- void selectAndShowInspectorInstanceRef(InspectorInstanceRef ref) {
- final node = valueToInspectorTreeNode[ref];
- if (node == null) {
- return;
- }
- setSelectedNode(node);
- syncTreeSelection();
- }
-
- InspectorTreeNode? getTreeNode(RemoteDiagnosticsNode node) {
- return valueToInspectorTreeNode[node.valueRef];
- }
-
@override
void onFlutterFrame() {
flutterAppFrameReady = true;
@@ -754,8 +675,6 @@
selectionGroups.promoteNext();
- subtreeRoot = newSelection;
-
applyNewSelection(newSelection);
await _maybeShowNotificationForSelectedNode(
@@ -804,7 +723,6 @@
_selectedNode.value = newSelection;
- lastExpanded = null; // New selected node takes precedence.
endShowNode();
_updateSelectedErrorFromNode(_selectedNode.value);
diff --git a/packages/devtools_app/lib/src/screens/inspector/inspector_tree_controller.dart b/packages/devtools_app/lib/src/screens/inspector/inspector_tree_controller.dart
index de13f61..957364a 100644
--- a/packages/devtools_app/lib/src/screens/inspector/inspector_tree_controller.dart
+++ b/packages/devtools_app/lib/src/screens/inspector/inspector_tree_controller.dart
@@ -220,13 +220,10 @@
return true;
}
- InspectorTreeNode? get hover => _hover;
InspectorTreeNode? _hover;
double? lastContentWidth;
- InspectorTreeRow? _cachedSelectedRow;
-
/// All cached rows of the tree.
///
/// Similar to [rowsInTree] but:
@@ -290,23 +287,11 @@
InspectorTreeRow? rowAtIndex(int index) => _rowsInTree.value.safeGet(index);
+ @visibleForTesting
double rowOffset(int index) {
return (rowAtIndex(index)?.depth ?? 0) * inspectorColumnIndent;
}
- List<InspectorTreeNode> getPathFromSelectedRowToRoot() {
- final selectedItem = _cachedSelectedRow?.node;
- if (selectedItem == null) return [];
-
- final pathToRoot = <InspectorTreeNode>[selectedItem];
- InspectorTreeNode? nextParentNode = selectedItem.parent;
- while (nextParentNode != null) {
- pathToRoot.add(nextParentNode);
- nextParentNode = nextParentNode.parent;
- }
- return pathToRoot.reversed.toList();
- }
-
set hover(InspectorTreeNode? node) {
if (node == _hover) {
return;
@@ -527,6 +512,7 @@
return rowAtIndex(_rowIndexFromNode(node));
}
+ @visibleForTesting
InspectorTreeRow? rowForOffset(Offset offset) {
final rootLocal = root;
if (rootLocal == null) return null;
diff --git a/packages/devtools_app/lib/src/shared/diagnostics/diagnostics_node.dart b/packages/devtools_app/lib/src/shared/diagnostics/diagnostics_node.dart
index 128f2cb..032080a 100644
--- a/packages/devtools_app/lib/src/shared/diagnostics/diagnostics_node.dart
+++ b/packages/devtools_app/lib/src/shared/diagnostics/diagnostics_node.dart
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd.
+// ignore_for_file: unused-code, contains the full model class for DiagnosticsNode.
+
/// @docImport '../console/widgets/description.dart';
library;
diff --git a/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart b/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart
index 2d4e8a7..e983755 100644
--- a/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart
+++ b/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart
@@ -29,7 +29,6 @@
import 'generic_instance_reference.dart';
import 'object_group_api.dart';
import 'primitives/instance_ref.dart';
-import 'primitives/source_location.dart';
const _inspectorLibraryUri =
'package:flutter/src/widgets/widget_inspector.dart';
@@ -466,6 +465,7 @@
);
}
+ @visibleForTesting
Future<bool> isWidgetCreationTracked() {
return invokeBoolServiceMethodNoArgs(
WidgetInspectorServiceExtensions.isWidgetCreationTracked.name,
@@ -536,6 +536,7 @@
);
}
+ // ignore: unused-code, this is used in g3.
Future<RemoteDiagnosticsNode?> invokeServiceMethodWithArgReturningNode(
String methodName,
String arg,
@@ -834,27 +835,6 @@
return properties;
}
- Future<SourcePosition?> getPropertyLocationHelper(
- ClassRef classRef,
- String name,
- ) async {
- final clazz = await inspectorLibrary.getClass(classRef, this) as Class;
- for (final f in clazz.functions!) {
- // TODO(pq): check for properties that match name.
- if (f.name == name) {
- final func = await inspectorLibrary.getFunc(f, this) as Func;
- final location = func.location;
- throw UnimplementedError(
- 'getSourcePosition not implemented. $location',
- );
- }
- }
- final superClass = clazz.superClass;
- return superClass == null
- ? null
- : getPropertyLocationHelper(superClass, name);
- }
-
Future<List<RemoteDiagnosticsNode>> getListHelper(
InspectorInstanceRef? instanceRef,
String methodName,
@@ -1135,23 +1115,6 @@
);
}
- Future<RemoteDiagnosticsNode?> getDetailsSubtree(
- RemoteDiagnosticsNode? node, {
- int subtreeDepth = 2,
- }) async {
- if (node == null) return null;
- final args = {
- 'objectGroup': groupName,
- 'arg': node.valueRef.id,
- 'subtreeDepth': subtreeDepth.toString(),
- };
- final json = await invokeServiceMethodDaemonParams(
- WidgetInspectorServiceExtensions.getDetailsSubtree.name,
- args,
- );
- return parseDiagnosticsNodeHelper(json as Map<String, Object?>?);
- }
-
Future<void> invokeSetFlexProperties(
InspectorInstanceRef ref,
MainAxisAlignment? mainAxisAlignment,
@@ -1203,15 +1166,6 @@
),
);
}
-
- Future<List<String>> getPubRootDirectories() async {
- final invocationResult = await invokeServiceMethodDaemonParams(
- WidgetInspectorServiceExtensions.getPubRootDirectories.name,
- {},
- );
- final directories = (invocationResult as List?)?.cast<Object>();
- return List.from(directories ?? []);
- }
}
abstract class InspectorServiceClient {
diff --git a/packages/devtools_app/test/screens/inspector/inspector_integration_test.dart b/packages/devtools_app/test/screens/inspector/inspector_integration_test.dart
index 3f09b29..47eb492 100644
--- a/packages/devtools_app/test/screens/inspector/inspector_integration_test.dart
+++ b/packages/devtools_app/test/screens/inspector/inspector_integration_test.dart
@@ -708,3 +708,22 @@
await inspectorService.addPubRootDirectories([rootLibrary]);
}
}
+
+extension _ObjectGroupTestExtension on ObjectGroup {
+ Future<RemoteDiagnosticsNode?> getDetailsSubtree(
+ RemoteDiagnosticsNode? node, {
+ int subtreeDepth = 2,
+ }) async {
+ if (node == null) return null;
+ final args = {
+ 'objectGroup': groupName,
+ 'arg': node.valueRef.id,
+ 'subtreeDepth': subtreeDepth.toString(),
+ };
+ final json = await invokeServiceMethodDaemonParams(
+ WidgetInspectorServiceExtensions.getDetailsSubtree.name,
+ args,
+ );
+ return parseDiagnosticsNodeHelper(json as Map<String, Object?>?);
+ }
+}
diff --git a/pubspec.lock b/pubspec.lock
index 71542ee..e746a9d 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -61,34 +61,34 @@
dependency: transitive
description:
name: build
- sha256: a156715e7cd728130c592f30552575908aae5b100005fbc1f0fb16b3c03a3d10
+ sha256: "45d14a0fb23e018d8287c32fc98d726ce466b231928ed9b9200f29bd3ccd39ae"
url: "https://pub.dev"
source: hosted
- version: "4.0.6"
+ version: "4.0.7"
build_config:
dependency: transitive
description:
name: build_config
- sha256: "4070d2a59f8eec34c97c86ceb44403834899075f66e8a9d59706f8e7834f6f71"
+ sha256: "94eaf6708fe64408c632ef2689ca3777b112f9421306ccf4f8c84d7c5c9f83f8"
url: "https://pub.dev"
source: hosted
- version: "1.3.0"
+ version: "1.3.2"
build_daemon:
dependency: transitive
description:
name: build_daemon
- sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957
+ sha256: "8c0535c3b2f625619f4dd1036ef1127f2e77bfedf89ed2eb2676ef076e0b6712"
url: "https://pub.dev"
source: hosted
- version: "4.1.1"
+ version: "4.1.3"
build_runner:
dependency: "direct dev"
description:
name: build_runner
- sha256: "1523ce62448ebac2c15a8ba5fbad8acac169788658a7dd2a1c2d9c2a9318b9a6"
+ sha256: "5367e521935b102bdf1e735d2aab461e36b2edca6517662d088dd04cc39f8d16"
url: "https://pub.dev"
source: hosted
- version: "2.15.0"
+ version: "2.15.1"
built_collection:
dependency: transitive
description:
@@ -181,10 +181,10 @@
dependency: transitive
description:
name: cross_file
- sha256: d687bec93342bf6a764a116d15c8694ebeff10e633dc28a39dd3144f7195024e
+ sha256: "92c9c43c383bfa1c32079d3bc492d55d6d4318044b7b47edaff8971cbb555c51"
url: "https://pub.dev"
source: hosted
- version: "0.3.5+3"
+ version: "0.3.5+4"
crypto:
dependency: transitive
description:
@@ -286,10 +286,10 @@
dependency: transitive
description:
name: file_selector_android
- sha256: "6a26687fa65cbc28a5345c7ae6f227e89f0b47740978a4c475b1a625da7a331b"
+ sha256: "1d45e9910f68c16eb0c74f0b10097ad81aed516ea28054c027137e8f7d75e840"
url: "https://pub.dev"
source: hosted
- version: "0.5.2+8"
+ version: "0.5.2+9"
file_selector_ios:
dependency: transitive
description:
@@ -682,10 +682,10 @@
dependency: transitive
description:
name: posix
- sha256: "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07"
+ sha256: bc1bad54ad2b735816e31f8d4600cfde6c7839975085ddfbca48b6c9f7c4044e
url: "https://pub.dev"
source: hosted
- version: "6.5.0"
+ version: "6.5.2"
process:
dependency: transitive
description:
@@ -767,10 +767,10 @@
dependency: transitive
description:
name: source_gen
- sha256: ec37cc0e6694374cbef59ed79685572c870a54ede6fa30a3e420feb3adffea02
+ sha256: a603f1fb984a7391ae5978d1b92bfaaa08b350dca5c825256f925818f7943bf5
url: "https://pub.dev"
source: hosted
- version: "4.2.3"
+ version: "4.2.4"
source_map_stack_trace:
dependency: transitive
description:
@@ -967,10 +967,10 @@
dependency: transitive
description:
name: vector_math
- sha256: "1d774bbdf6b72a0b12122fc1560c9c2d2a67db5a4a4cc2bd8a5c990ab20e3188"
+ sha256: f36f9f3be64c6198714492bb455c11056e33e2f85d9a0b676a48301e44fdcf47
url: "https://pub.dev"
source: hosted
- version: "2.4.0"
+ version: "2.4.2"
vm_service:
dependency: transitive
description: