197 Commits

Author SHA1 Message Date
Jonah Williams
22724370cb
[flutter_tools] do not delete web directory during flutter build web (#69115) 2020-10-30 11:00:24 -07: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 2e75f52ae4fe22128a2d4274a01bc19bdc13507f.
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
Jenn Magder
5e17a240bd
Generate only requested platform directories on create (#68376) 2020-10-19 14:17:43 -07:00
Alexandre Ardhuin
73301a35a2
Sync lints (#68136) 2020-10-15 15:37:04 -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
Jonah Williams
18bb4d7254
Revert "[flutter_tools] reland: fold process resolution logic into the flutter tool (#67957)" (#67968)
This reverts commit bd8138797e445627d7a92ec139ac661af1b6b584.
2020-10-12 15:53:16 -07:00
Jonah Williams
bd8138797e
[flutter_tools] reland: fold process resolution logic into the flutter tool (#67957)
Reland of #67669

The flutter tool has a number of crashes on stable where an ArgumentError is thrown due to the process manager not being able to resolve an executable.

So that we can adjust/modify this logic, fold it into flutter and add some additional logging.
caches the resolved executable per target directory, to avoid repeated look ups.
Instead of throwing an argument error, attempts to run the executable as given if an exact path can't be found
Accept files or symlinks for the executable path.
user where/which to resolve path instead of package:process logic.
2020-10-12 15:37:02 -07:00
Jonah Williams
354e2a57b1
Revert "[flutter_tools] fold executable resolution into flutter (#67669)" (#67954)
This reverts commit 10c78c264a6d269b42e6174edde55f670d531525.
2020-10-12 13:15:39 -07:00
Jonah Williams
10c78c264a
[flutter_tools] fold executable resolution into flutter (#67669)
The flutter tool has a number of crashes on stable where an ArgumentError is thrown due to the process manager not being able to resolve an executable. Fold the resolution logic into the tool and use where/which instead of the package:process specific logic.
2020-10-12 12:51:37 -07:00
Jonah Williams
08576cb671
[flutter_tools] HACKTOBERFEST (#67882)
HACKTOBERFEST
2020-10-12 09:31:02 -07:00
Yegor
0b78110b26
Work around the glibc bug that causes rare Chrome crashes (#67466)
Work around the glibc bug that causes rare Chrome crashes
2020-10-07 19:29:47 -07:00
Jonah Williams
aa90dbe7f4
[flutter_tools] disable source maps by default for release builds, enable for run and with command line arg (#67331)
Disables source map production by default for build web. For web builds performed as a part of flutter run --release, enable the source maps, or allow force enabling with --source-maps command line flag.

fixes #67328
2020-10-05 13:24:51 -07:00
Jonah Williams
0e9c6a3d5f
[flutter_tools] do not crash if chrome preference save fails (#66705)
Crash reporting shows at least one occurrence of this due to a windows file lock. That could happen if there is another running chrome instance, or perhaps a virus scanner is running. Print out the error and do not crash.
2020-09-29 13:00:11 -07:00
Jonah Williams
418681d6f1
[flutter_tools] allow disabling pwa from build command, fix run release build caching (#64587)
Fix run release/profile modes generating a full service worker.
2020-09-03 13:42:47 -07:00
Jonah Williams
69fd5c50a2
[flutter_tools] null assertions off by default for web (#64186)
Like Android/iOS, only enable --null-assertions if asked. Previously this was enabled by default for web, but in general this has proved to be too breaking to enable by default.

#61042
2020-08-19 14:52:47 -07:00
Helin Shiah
5b9ce492f3
Skip printing rendered error text in machine mode (#61684) 2020-07-20 09:41:03 -07:00
Danny Tuppeny
d19bd37749
Tweak message about debugging with web-server (#61535) 2020-07-15 17:57:14 +01:00
Jonah Williams
cb7770b3a5
[flutter_tools] add support for enable null safety asserts (#61114)
Enable null safety asserts for web debug mode. This induces runtime asserts at the boundaries between null safe and non-null safe libraries. Adds integration test that validates assertion error is thrown.

#61042
2020-07-15 09:54:39 -07:00
Jonah Williams
e666ea8de4
[flutter_tools] cleanups to web runner functionality (#61178)
Skip unnecessary parsing of chrome URI. Ensure stack traces are initialized in web server. Disclaimer on web server that it does not support debugging and remove help message. Fix generated entrypoint to check for main(List<String> args)

- Fixes #59643
- Fixes #55084
- Fixes #60417
2020-07-13 15:12:46 -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
7ca324ac01
[flutter_tools] support sound null-safety mode for the web (#60570)
In web debug mode, infer sound null safety by default. When sound null safety is enabled, provide a separate dill and precompiled Dart SDK. Release builds do not need this setting since we run dart2js from source.

Fixes #59873
2020-06-30 12:29:42 -07:00
Gary Roumanis
d25b9c80a4
Do not depend on embedded (#59210) 2020-06-11 09:31:05 -07:00
Jonah Williams
6067571fab
[flutter_tools] support flutter run -d edge (#56173)
Support Microsoft Edge as a device for flutter run when web is enabled. Currently this only works on Windows, and does not include a validator for edge.

Fixes #55322
2020-06-09 12:03:51 -07:00
Jenn Magder
886313393f
Support work profiles and multiple Android users for run, install, attach, drive (#58815) 2020-06-08 11:28: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
206ccc3632
[flutter_tools] rename library to be less absurd (#58891)
Instead of targets/dart.dart -> targets/common.dart
2020-06-08 11:19:53 -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
Jonah Williams
b1d75fc99d
[flutter_tools] add flag for sound-null-safety, unify with experiments (#58533)
Also combines experiments into extraGenSnapshot/ExtraFrontEndOptions. Allows providing --no-sound-null-safety to allow out of order migration and running.
2020-06-03 21:02:07 -07:00
Jonah Williams
a926715dac
[flutter_tools] URI encode dart-define values (#57873) 2020-05-27 10:11:04 -07:00
Zachary Anderson
6f0ed5e142
[flutter_tools] Restore base/platform.dart (#56410) 2020-05-06 08:15:39 -07:00
Jonah Williams
9b7b9d795e
[flutter_tools] reland remove flutter view cache (#56387)
Fixes #56194

Remove caching of FlutterView and poll forever if the list of flutter views is empty. Added test for missing release mode logic.
2020-05-05 12:09:51 -07:00
Jonah Williams
d98d3a973f
Revert "[flutter_tools] remove flutter view cache (#56223)" (#56385)
This reverts commit 209bdcb6695b6bffa7b21ce6fc8fcf2310f5ecd0.
2020-05-05 11:15:33 -07:00
Jonah Williams
209bdcb669
[flutter_tools] remove flutter view cache (#56223)
Remove caching of FlutterView. Perhaps the FlutterView RPC might return an empty list if the VM is not quite up yet? We had some old logic to poll the flutter views RPC for up to 200ms. That doesn't seem like a great approach, so instead we could forgo it entirely and trust that either the views come up before the developer tries to interact, or we crash.
2020-05-05 10:47:01 -07:00
Jonah Williams
72397fd448
[flutter_tools] Lazily inject logger into web devices (#55961)
Constructing the WebDevices with the global logger too early will lead to them grabbing the StdoutLogger when running in daemon mode. This prevents IDEs from seeing the correct debug message.
2020-04-29 11:35:40 -07:00
Jonah Williams
f2761b6b04
[flutter_tools] refactor Chrome launch logic to remove globals/statics (#55160) 2020-04-22 01:28:51 -07:00
Jonah Williams
0b3f5cfcc0
[flutter_tools] initial support for enable experiment, run, apk, ios, macos (#54617) 2020-04-21 20:39:36 -07:00
Jonah Williams
d46da3ae11
[flutter_tools] remove PackageMap and finish PackageConfig migration (#55244) 2020-04-21 19:55:15 -07:00
Jonah Williams
77c05f7501
[flutter_tools] check if requireloader is defined (#55085) 2020-04-20 13:02:26 -07:00
Jonah Williams
9e72bf565e
[flutter_tools] don't compute hashes of well known artifacts (#53848) 2020-04-20 12:21:20 -07:00
Jonah Williams
e092dcfa22
[flutter_tools] Reland: fix multiple dart defines (#54973) 2020-04-16 10:56:49 -07:00
Jonah Williams
11ab2fa35c
Revert "[flutter_tools] fix multiple defines in flutter tooling, web (#54909)" (#54967)
This reverts commit b8bd09db210d2c6299555643af8db4b8ff3e8d92.
2020-04-16 08:33:16 -07:00
Jonah Williams
b8bd09db21
[flutter_tools] fix multiple defines in flutter tooling, web (#54909) 2020-04-15 22:25:32 -07:00
Alexandre Ardhuin
f5a9902577
enable avoid_equals_and_hash_code_on_mutable_classes (#52507) 2020-04-06 13:36:01 -07:00
Jonah Williams
72343ee0e4
[flutter_tools] refactor build_system and targets to be context-free (#53268) 2020-03-30 12:51:04 -07:00
xster
1376746237
Reland #53153 to attach to existing modules and apps for Android (#53289) 2020-03-25 16:45:49 -07:00
Jenn Magder
b684041bb8
Revert "Let flutter attach find the service port by looking through old logs again (#53153)" (#53282)
This reverts commit 0c5ffdc9efc4e04ed637645014465b656afc14a5.
2020-03-25 10:53:45 -07:00
xster
0c5ffdc9ef
Let flutter attach find the service port by looking through old logs again (#53153) 2020-03-24 23:26:01 -07:00
Devon Carew
d6614dbafd
save and restore the chrome session local storage information (#53030)
save and restore the chrome session local storage information
2020-03-24 12:20:13 -07:00