Commit Graph

299 Commits

Author SHA1 Message Date
Jonah Williams
fb90544cab
[flutter_tools] remove unused or no longer useful code (#69547) 2020-11-02 22:48:03 -08:00
Jonah Williams
183fe75d58
[flutter_tools] reland: drive service (#68887)
Overhaul of flutter drive in order to deliver a better experience, namely:

* flutter run and flutter drive now share more flags, so code paths that were previously only testable on run are now testable on drive.
* Removes web-initialize-platform as this is no longer used
* flutter drive correctly sets up a logger that shows native exceptions, by connecting to the vm service.
* VM service connection now provides access to memory info without launching devtools (only for debug/profile mode)

Web changes

* Passes on the one test in the repo, otherwise the webdriver code has been isolated as much as possible

Additional NNBD related bug fixes:

No longer passes --enable-experiment to the test script. (FYI @blasten ). earlier we might have assumed that the flutter gallery benchmarks would be migrated along side the app and flutter driver, but only the app under test needs to be migrated. The test scripts should never be run with the experiment.
2020-10-26 10:11:30 -07:00
Jonah Williams
1edec6fc20
Revert "[flutter_tools] refactor drive launch into separate service, split by mobile+desktop and web (#68451)" (#68845)
This reverts commit 2e75f52ae4.
2020-10-22 19:39:33 -07:00
Jonah Williams
2e75f52ae4
[flutter_tools] refactor drive launch into separate service, split by mobile+desktop and web (#68451)
Overhaul of flutter drive in order to deliver a better experience, namely:

flutter run and flutter drive now share more flags, so code paths that were previously only testable on run are now testable on drive.
Removes web-initialize-platform as this is no longer used
flutter drive correctly sets up a logger that shows native exceptions, by connecting to the vm service.
VM service connection now provides access to memory info without launching devtools (only for debug/profile mode)
Web changes

Passes on the one test in the repo, otherwise the webdriver code has been isolated as much as possible

Additional NNBD related bug fixes:

No longer passes --enable-experiment to the test script. (FYI @blasten ). earlier we might have assumed that the flutter gallery benchmarks would be migrated along side the app and flutter driver, but only the app under test needs to be migrated. The test scripts should never be run with the experiment.
2020-10-22 15:07:02 -07:00
Jonah Williams
9e70180f63
[flutter_tools] do not measure progress timeout (#67959)
Remove "This is taking a long time" progress timeout and TimeoutConfiguration.
2020-10-13 13:05:47 -07:00
James D. Lin
e4206ac5dd
[flutter tools] Add a DelegatingLogger class (#67581)
[flutter tools] Add a DelegatingLogger class

Move most of `DelegateLogger` `from test/src/testbed.dart` to
`lib/src/base/logger.dart` to better formalize the common practice of
chaining `Logger`s together.  I renamed the class since it isn't
itself the delegate and to better match the `Delegating...` classes
from `package:collection`.

Additionally, add a freestanding `asLogger<T>` function to "cast" a
`Logger` into a matching delegate if possible.  This will allow
`Logger` chains to be ordered a *bit* more freely (e.g.
`NotifyingLogger` and `AppRunLogger` will no longer required to be
at the end of the chain, an unwritten rule that has led to breakage in
google3).  Chain order still matters since lack of virtual dispatch
means that parent `Logger`s can never invoke child methods, however.

I made `asLogger<T>` a freestanding function because I didn't want to
make it part of the `Logger` interface (and I thought that making it
an extension method might be weird).

Bonus cleanup:
There no longer appears to be a way to construct an `AppRunLogger`
with a null parent, so remove all of code paths for that case and
make the `parent` construction parameter required.
2020-10-09 15:55:24 -07:00
Jonah Williams
3a51bcb5c0
[flutter_tools] delete code related to reload method (#67279)
This functionality ultimately became the single widget reload optimization, which did not require a separate service protocol.
2020-10-05 09:57:10 -07:00
Jonah Williams
1bea512a83
[flutter_tools] flutter logs no longer requires supported device (#66696)
Flutter logs should not attempt to filter the device list based on the current project, because it does not require a current project. Also fix disabled polling test

Fixes #47996
Fixes #63550
2020-10-02 21:12:50 -07:00
Jonah Williams
51ededb92f
[flutter_tools] reland: map file URIs to a multiroot scheme (#66405)
If a file scheme and one or more roots is provided, fall back to this mapping before the direct file path if the file path cannot be turned into a package URI.

Use URI representation so that the transformation is resilient to the org-dartlang-app scheme used by the web builds.

Fixes #66095
Fixes #66404
2020-09-23 07:03:59 -07:00
Jenn Magder
78e54dd46b
Revert "[flutter_tools] map file Uri to multi-root scheme if provided (#66151)" (#66403)
This reverts commit af6ba86728.
2020-09-22 17:50:27 -07:00
Jonah Williams
af6ba86728
[flutter_tools] map file Uri to multi-root scheme if provided (#66151)
If a file scheme and one or more roots is provided, fall back to this mapping before the direct file path if the file path cannot be turned into a package URI.

Fixes #66095
2020-09-22 16:51:18 -07:00
Jonah Williams
a19f5baccc
[flutter_tools] connect widget cache from frontend_server (#65951) 2020-09-19 11:02:04 -07:00
Devon Carew
04e4b117f6
fix an issue where raw json output is written to IDE clients (#65508)
fix an issues where raw json output was written to IDE clients
2020-09-15 12:44:05 -07:00
Danny Tuppeny
92eb7945a5
Remove invalid assert (#65623) 2020-09-11 15:35:04 -07:00
Helin Shiah
3d3b5349a7
Return host and port from devtools launcher (#63795) 2020-08-17 10:46:05 -07:00
Michael Klimushyn
cb69bbb4d5
Remove unused l and --isolate-filter tools (#63336) 2020-08-10 10:51:04 -07:00
Helin Shiah
5ce7282a36
Return devtools serve response instead of printing (#62702) 2020-08-03 10:26:12 -07:00
Helin Shiah
7cbec567de
Add daemon handler to start devtools (#62608) 2020-07-31 11:06:05 -07:00
Jonah Williams
07caa0fbfe
[flutter_tools] Add plumbing for widget cache (#61766)
To support #61407 , the tool needs to check if a single widget reload is feasible, and then conditionally perform a fast reassemble.

To accomplish this, the FlutterDevice class will have a WidgetCache injected. This will eventually contain the logic for parsing the invalidated dart script. Concurrent with the devFS update, the widget cache will be updated/checked if a single widget reload is feasible. If so, an expression evaluation with the target type is performed and the success is communicated through the devFS result. An integration test which demonstrates that this works is already present in https://github.com/flutter/flutter/blob/master/packages/flutter_tools/test/integration.shard/hot_reload_test.dart#L86

Finally, when actually performing the reassemble the tool simply checks if this flag has been set and calls the alternative reassemble method.

Cleanups:

Remove modules, as this is unused now.
2020-07-20 14:03:44 -07:00
Helin Shiah
5b9ce492f3
Skip printing rendered error text in machine mode (#61684) 2020-07-20 09:41:03 -07:00
Jenn Magder
55176c4d6f
Show device diagnostic messages in doctor (#61585) 2020-07-17 09:41:03 -07:00
Danny Tuppeny
51fcf8fa7a
Add debounce support to daemon hot reload requests (#55376) 2020-07-15 11:56:05 -07:00
Jonah Williams
d4589e0c71
[flutter_tools] ensure AppRunLogger is injected for run/attach machine (#61103)
run/attach --machine requires a different logger than daemon, which uses the NotifyingLogger. We have too many loggers!

Fixes #59463
2020-07-08 18:21:46 -07:00
Jonah Williams
82a6f9bf0b
[flutter_tools] remove most use of global packages path (#60231)
The global packages path could cause tests to fail when it would be overriden to unexpected (in test setup) values. Remove most usage and make it a configuration on buildInfo, along with most other build information. Cleanup the asset builder to require the .packages path and the resident runners to no longer require it, since they already have the information in build_info.

It needs to stick around for the fuchsia deps we do not control.

Filled #60232 for remaining work.
2020-06-25 12:52:14 -07:00
Jenn Magder
f41f795640
Clean up PollingDeviceDiscovery dispose (#59709) 2020-06-18 16:38:02 -07:00
Jonah Williams
5e77083b8d
[flutter_tools] make parent logger optional (#59786)
The addition of the non-optional parent logger broke the google3 roll. Make it optional so we can roll
2020-06-18 11:44:29 -07:00
Jonah Williams
447e3d3f38
[flutter_tools] remove globals from compilers (#59184)
Refactors KernelCompiler and ResidentCompiler to no longer use globals (except as a fallback for g3 migration). Improves the compilation error when running flutter test on a package without a flutter_test dependency.

Updates machine mode to output trace text to stderr
2020-06-18 10:33:17 -07:00
Jenn Magder
5eb4917d73
Release cache lock for commands after required artifacts are downloaded (#59012) 2020-06-08 17:18:02 -07:00
Jonah Williams
4f88ed1d3c
[flutter_tools] only restrict devices based on arch + buildMode, not emulator status (#58887)
instead of restricting profile/release mode based on whether the tool thinks the device is an emulator, restrict based on the device target architecture and the requested build mode. Notably, this enables release mode on x86_64 Android emulators, but not x86 emulators since we do not support that as an AOT target.

This does not add release mode support for simulators, since this requires us to build and upload artifacts for simulator/x86_64
2020-06-08 11:20:15 -07:00
Jonah Williams
f5de6aadd4
[flutter_tools] remove zone level overrides of verbose and daemon logging (#57448)
Make it possible for all FlutterCommands to be global free, by moving instantiation to inside the Zone context. Additionally, provide VerboseLogger and NotifyLogger (daemon) at the top level and remove from command-specific overrides.

This allows removing a work around where web devices needed to look up directly from the context in non-test code.

Technically the output preferences are still zone injected, but these will be moved soon as they were not being used correctly by the top level command (the injection comes after ArgParser reads the overflow values, causing numerous wrap issues)
2020-06-04 16:35:36 -07:00
Jenn Magder
f4d26a3b85
Change iOS device discovery from polling to long-running observation (#58137) 2020-06-01 12:33:01 -07:00
Jonah Williams
f640ad6914
[flutter_tools] ensure emulator command does not crash with missing avdmanager (#57703) 2020-05-27 10:10:30 -07:00
Jonah Williams
4605b51a7e
[flutter_tools] use package Uuid consistently (#53492) 2020-03-30 12:46:06 -07:00
Jonah Williams
8e492fa845
[flutter_tools] fix type error with AppDomain current directory (#53181) 2020-03-24 12:58:40 -07:00
Jonah Williams
6804cef587
[flutter_tools] throw exception instead of string from startApp (#52365)
When attempting to start an emulator in profile mode, ensure the daemon can exit gracefully
2020-03-11 09:41:52 -07:00
Jonah Williams
c1112d3f7e
[flutter_tools] Reland: Allow providing dart-defines to Android, iOS, macOS builds (#52044) 2020-03-06 14:53:36 -08:00
Zachary Anderson
6c408a0567
Reland: [flutter_tool] Where possible, catch only subtypes of Exception (#52021)
* Reland: [flutter_tool] Where possible, catch only subtypes of Exception

* Add armv7f to getIOSArchForName
2020-03-06 10:22:12 -08:00
Jonah Williams
ee476a7bd1
Revert "[flutter_tools] Allow providing dart-defines to Android, iOS, macOS builds (#51714)" (#52041)
This reverts commit ee60eeea3e.
2020-03-05 12:51:42 -08:00
Jonah Williams
ee60eeea3e
[flutter_tools] Allow providing dart-defines to Android, iOS, macOS builds (#51714) 2020-03-05 12:38:40 -08:00
Jenn Magder
cbbb7ec5a7
Revert "Reland: [flutter_tool] Where possible, catch only subtypes of Exception (#51774)" (#51960)
This reverts commit 57c6721cd5.
2020-03-04 12:40:15 -08:00
Flutter GitHub Bot
57c6721cd5
Reland: [flutter_tool] Where possible, catch only subtypes of Exception (#51774) 2020-03-04 11:41:02 -08:00
Zachary Anderson
b32ee2f15c
Revert "Reland: [flutter_tool] Where possible, catch only subtypes of Exception (#51567)" (#51616)
This reverts commit 9de7787f25.
2020-02-27 22:57:13 -08:00
Zachary Anderson
9de7787f25
Reland: [flutter_tool] Where possible, catch only subtypes of Exception (#51567) 2020-02-27 22:46:23 -08:00
Zachary Anderson
483f49962c
Revert "[flutter_tool] Where possible, catch only subtypes of Exception (#51440)" (#51539)
This reverts commit f1cd47ef5c.
2020-02-26 23:42:19 -08:00
Zachary Anderson
f1cd47ef5c
[flutter_tool] Where possible, catch only subtypes of Exception (#51440) 2020-02-26 21:45:02 -08:00
Levi Lesches
149e06232b
Add option to clear the terminal by pressing "c" (#50034) 2020-02-06 15:53:04 -08:00
Zachary Anderson
68ed5c2baf [flutter_tool] Hide unsafe std{out,err} operations (#49561) 2020-01-28 07:58:02 -08:00
Zachary Anderson
93a5b7d419 [flutter_tool] Don't crash on a failure to write to std{out,err} (#49380) 2020-01-25 01:23:01 -08:00
Emmanuel Garcia
ec2d58335a Make subcommands return success instead of null (#48100) 2020-01-10 11:28:01 -08:00
Jonah Williams
749589d896
[flutter_tools] Remove context usage from status and clean up test cases (#48446) 2020-01-10 09:36:49 -08:00