Skip to content

Commit

Permalink
Delete rootPackages and all the code that depends on it (#7175)
Browse files Browse the repository at this point in the history
  • Loading branch information
elliette authored Apr 16, 2024
1 parent 85c48cc commit 546ded9
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 158 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -203,10 +203,6 @@ class InspectorService extends InspectorServiceBase {

final ValueNotifier<List<String>> _rootDirectories = ValueNotifier([]);

@visibleForTesting
Set<String> get rootPackages => _rootPackages;
late Set<String> _rootPackages;

@visibleForTesting
List<String> get rootPackagePrefixes => _rootPackagePrefixes;
late List<String> _rootPackagePrefixes;
Expand Down Expand Up @@ -326,9 +322,8 @@ class InspectorService extends InspectorServiceBase {
return false;
}

Future<void> _onRootDirectoriesChanged(List<String> directories) async {
void _onRootDirectoriesChanged(List<String> directories) {
_rootDirectories.value = directories;
_rootPackages = {};
_rootPackagePrefixes = [];
for (var directory in directories) {
// TODO(jacobr): add an API to DDS to provide the actual mapping to and
Expand Down Expand Up @@ -356,68 +351,19 @@ class InspectorService extends InspectorServiceBase {
packageParts = packageParts.sublist(2);
}
final google3PackageName = packageParts.join('.');
_rootPackages.add(google3PackageName);
_rootPackagePrefixes.add('$google3PackageName.');
} else {
_rootPackages.add(path.last);
}
}

await _updateLocalClasses();
}

Future<void> _updateLocalClasses() {
return Future.value();
// TODO(https://github.com/flutter/devtools/issues/4393)
// localClasses.clear();
// if (_rootDirectories.value.isNotEmpty) {
// final isolate = inspectorLibrary.isolate!;
// for (var libraryRef in isolate.libraries!) {
// if (isLocalUri(libraryRef.uri!)) {
// try {
// final Library library = await inspectorLibrary.service
// .getObject(isolate.id!, libraryRef.id!) as Library;
// for (var classRef in library.classes!) {
// localClasses[classRef.name!] = classRef;
// }
// } catch (e) {
// // Workaround until https://github.com/flutter/devtools/issues/3110
// // is fixed.
// assert(serviceManager.manager.connectedApp!.isDartWebAppNow!);
// }
// }
// }
// }
}

@visibleForTesting
bool isLocalUri(String rawUri) {
final uri = Uri.parse(rawUri);
if (uri.scheme != 'file' && uri.scheme != 'dart') {
// package scheme or some other dart specific scheme.
final packageName = uri.pathSegments.first;
if (_rootPackages.contains(packageName)) return true;

// This attempts to gracefully handle the bazel package case.
return _rootPackagePrefixes
.any((prefix) => packageName.startsWith(prefix));
}
for (var root in _rootDirectories.value) {
if (root.endsWith(rawUri)) {
return true;
}
}
return false;
}

Future<void> addPubRootDirectories(List<String> rootDirectories) async {
await _addPubRootDirectories(rootDirectories);
await _onRootDirectoriesChanged(rootDirectories);
_onRootDirectoriesChanged(rootDirectories);
}

Future<void> removePubRootDirectories(List<String> rootDirectories) async {
await _removePubRootDirectories(rootDirectories);
await _onRootDirectoriesChanged(rootDirectories);
_onRootDirectoriesChanged(rootDirectories);
}

Future<void> _addPubRootDirectories(List<String> pubDirectories) {
Expand Down
101 changes: 0 additions & 101 deletions packages/devtools_app/test/inspector/inspector_service_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -169,10 +169,6 @@ void main() {
),
);

expect(
inspectorServiceLocal.rootPackages.toList(),
equals(['flutter_app']),
);
expect(
inspectorServiceLocal.rootPackagePrefixes.toList(),
isEmpty,
Expand All @@ -181,50 +177,10 @@ void main() {
await inspectorServiceLocal.addPubRootDirectories(
['/usr/jacobr/foo/lib', '/usr/jacobr/bar/lib/bla'],
);
expect(
inspectorServiceLocal.rootPackages.toList(),
equals(['foo', 'bar']),
);
expect(
inspectorServiceLocal.rootPackagePrefixes.toList(),
isEmpty,
);

expect(
inspectorServiceLocal.isLocalUri('package:foo/src/bar.dart'),
isTrue,
);
expect(
inspectorServiceLocal
.isLocalUri('package:foo.bla/src/bar.dart'),
isFalse,
);
expect(
inspectorServiceLocal.isLocalUri('package:foos/src/bar.dart'),
isFalse,
);
expect(
inspectorServiceLocal.isLocalUri('package:bar/src/bar.dart'),
isTrue,
);
expect(
inspectorServiceLocal.isLocalUri(
'package:bar.core/src/bar.dart',
),
isFalse,
);
expect(
inspectorServiceLocal.isLocalUri(
'package:bar.core.bla/src/bar.dart',
),
isFalse,
);
expect(
inspectorServiceLocal.isLocalUri(
'package:bar.cores/src/bar.dart',
),
isFalse,
);
} finally {
// Restore.
await inspectorServiceLocal
Expand All @@ -250,10 +206,6 @@ void main() {
await inspectorServiceLocal.addPubRootDirectories(
['/usr/me/clients/google3/foo/bar/baz/lib/src/bla'],
);
expect(
inspectorServiceLocal.rootPackages.toList(),
equals(['foo.bar.baz']),
);
expect(
inspectorServiceLocal.rootPackagePrefixes.toList(),
equals(['foo.bar.baz.']),
Expand All @@ -263,12 +215,6 @@ void main() {
'/usr/me/clients/google3/foo/bar/baz/lib/src/bla',
'/usr/me/clients/google3/foo/core/lib',
]);
expect(
inspectorServiceLocal.rootPackages.toList(),
equals(
['foo.bar.baz', 'foo.core'],
),
);
expect(
inspectorServiceLocal.rootPackagePrefixes.toList(),
equals(
Expand All @@ -281,12 +227,6 @@ void main() {
'/usr/me/clients/google3/foo/bar/baz',
'/usr/me/clients/google3/foo/core/',
]);
expect(
inspectorServiceLocal.rootPackages.toList(),
equals(
['foo.bar.baz', 'foo.core'],
),
);
expect(
inspectorServiceLocal.rootPackagePrefixes.toList(),
equals(
Expand All @@ -297,56 +237,15 @@ void main() {
'/usr/me/clients/google3/third_party/dart/foo/lib/src/bla',
'/usr/me/clients/google3/third_party/dart_src/bar/core/lib',
]);
expect(
inspectorServiceLocal.rootPackages.toList(),
equals(['foo', 'bar.core']),
);
expect(
inspectorServiceLocal.rootPackagePrefixes.toList(),
equals(['foo.', 'bar.core.']),
);

expect(
inspectorServiceLocal.isLocalUri('package:foo/src/bar.dart'),
isTrue,
);
// Package at subdirectory.
expect(
inspectorServiceLocal.isLocalUri('package:foo.bla/src/bar.dart'),
isTrue,
);
expect(
inspectorServiceLocal.isLocalUri('package:foos/src/bar.dart'),
isFalse,
);
expect(
inspectorServiceLocal.isLocalUri('package:bar/src/bar.dart'),
isFalse,
);
expect(
inspectorServiceLocal.isLocalUri('package:bar.core/src/bar.dart'),
isTrue,
);
// Package at subdirectory.
expect(
inspectorServiceLocal
.isLocalUri('package:bar.core.bla/src/bar.dart'),
isTrue,
);
expect(
inspectorServiceLocal
.isLocalUri('package:bar.cores/src/bar.dart'),
isFalse,
);

await inspectorServiceLocal.addPubRootDirectories([
'/usr/me/clients/google3/third_party/dart/foo',
'/usr/me/clients/google3/third_party/dart_src/bar/core',
]);
expect(
inspectorServiceLocal.rootPackages.toList(),
equals(['foo', 'bar.core']),
);
expect(
inspectorServiceLocal.rootPackagePrefixes.toList(),
equals(['foo.', 'bar.core.']),
Expand Down

0 comments on commit 546ded9

Please sign in to comment.