Adds a Fuchsia compatibility function that allows for connecting to a
specific Isolate by name when running Flutter Driver on a Fuchsia
device. This will check over multiple Dart VM's in an attempt to find
an Isolate by its name.
* [frdp] Add optional dart isolate filter.
It's now default to filter out non-flutter isolates when searching
across Dart VM's. This is due to a possible issue wherein an Isolate
for testing might have the same name as the flutter Isolate.
In addition, logging messages have been added in dart_vm.dart for
debugging.
Through some integration testing checks, it looks like it's possible
that connecting to a new instance of the Dart VM may fail even after the
Dart VM instance has been discovered.
This means that _getDartVm should be checked in more than just one
place. This changes the function to return a null value in the event of
a 'well-known' exception (`HttpException` or `TimeoutException`
specifically).
As a result, code now calling _getDartVm checks for null and handles it
as appropriate, and the DartVm RPC calls are all updated with
consistent timeout params.
This will now make it so that the Dart VM class returns any Isolate that
matches the passed Pattern, without checking for any specific strings
like "main()"
This causes the search to skip over Isolates that would have matched.