Commit Graph

254 Commits

Author SHA1 Message Date
Anna Gringauze
44d9af80cb
Flutter_tools for web: report error messages with stacks on exit (#87386)
* Flutter_tools for web platform: report error messages with stacks on toolExit

Print error messages and stacks in verbose mode before calling
`throwToolExit` on communication errors to chrome and dwds.

This will help us disagnose CI flakes:

Helps: https://github.com/flutter/flutter/issues/84012
Closes: https://github.com/flutter/flutter/issues/87149

* Added tests

* Extend timeout for testing failure to connect to chrome

* Update rest of chrome tests to await until matching is finished
2021-08-03 10:51:35 -07:00
Jonah Williams
88e756d19e
[flutter_tools] well known device ids (#85184) 2021-06-24 18:46:04 -07:00
Jonah Williams
ad540e4f3f
[flutter_tools] retry chrome launch up to 3 times (#85162) 2021-06-23 19:26:02 -07:00
Anis Alibegić
c99ed373b3
Fixed large amount of spelling errors (#83744) 2021-06-02 10:14:06 -07:00
Alexandre Ardhuin
34059eec2c
enable lint prefer_interpolation_to_compose_strings (#83407) 2021-06-01 11:14:06 -07:00
Jonah Williams
03a3e7b1e4
Revert "[flutter_tools] fix top web crasher (#83272)" (#83376) 2021-05-25 17:49:04 -07:00
Jonah Williams
a8ec764609
[flutter_tools] fix top web crasher (#83272) 2021-05-24 18:04:02 -07:00
Jenn Magder
0d79013a81
Move globals.artifacts to globals_null_migrated, update imports (#83137) 2021-05-21 18:35:02 -07:00
nt4f04uNd
80a2b6b015
Fix typos (#82589) 2021-05-20 17:19:09 -07:00
Balvinder Singh Gambhir
4a33813b35
[flutter_tools] added base-href command in web (#80519) 2021-05-19 12:39:02 -07:00
Hattomo (TomohiroHattori)
08a70e7ac8
Enable avoid_escaping_inner_quotes lint (#81153) 2021-05-19 09:54:02 -07:00
Gary Roumanis
e3fd8dbfd5
Update loader style (#82485) 2021-05-13 22:59:03 -07:00
Gary Roumanis
0cb0767bd7
Flutter Web Loading Indicator (#81581) 2021-04-30 21:04:02 -07:00
Jonah Williams
3bc2378ad2
[flutter_tools] remove mocks from devfs web, cache, and xcode migrator test (#81475) 2021-04-30 17:24:04 -07:00
Jonah Williams
e3625706a8
[flutter_tools] remove mocks, globals from golden comparator and test runner tests | Reland
This reverts commit 027d4ecaba.
2021-04-29 22:40:59 -07:00
Michael Goderbauer
027d4ecaba
Revert "[flutter_tools] remove mocks, globals from golden comparator and test runner tests (#81423)" (#81487)
This reverts commit 8fe4cc7964.
2021-04-29 10:56:57 -07:00
Jonah Williams
8fe4cc7964
[flutter_tools] remove mocks, globals from golden comparator and test runner tests (#81423) 2021-04-29 07:56:34 -07:00
Jonah Williams
064eae8c38
[flutter_tools] remove mocks and fix fake imports (#81309) 2021-04-27 11:51:41 -07:00
Jonah Williams
52661bc713
[flutter_tools] skip copying 1GB of data from chrome cache dirs (#81170)
* [flutter_tools] skip copying 1GB of data from chrome cache dirs

* Update chrome.dart
2021-04-26 13:02:42 -07:00
Emmanuel Garcia
b0a63c4ffe
Reland the Dart plugin registry (#79669) 2021-04-23 15:34:04 -07:00
Jonah Williams
b30d97a64c
[flutter_tools] split host artifacts out of Artifacts (#80876) 2021-04-22 19:29:02 -07:00
Jenn Magder
a99fba01f1
Move FakeOperatingSystemUtils from context.dart to fakes.dart (#80916) 2021-04-22 10:44:02 -07:00
Phil Quitslund
61c30c41b2
fix sort_directives violations (#80817) 2021-04-21 13:49:03 -07:00
Jenn Magder
f2417e6c1c
Launch Chrome natively on ARM macOS (#80758) 2021-04-20 19:39:58 -07:00
Jenn Magder
56c0002c47
Adopt FakeProcessManager.empty (#80480) 2021-04-15 14:19:02 -07:00
Jenn Magder
436ca01e14
Migrate features_tests and other tool tests to null safety (#80168) 2021-04-12 12:35:02 -07:00
Jenn Magder
cf27be38a9
Migrate web_validator to null safety (#80095) 2021-04-08 21:04:02 -07:00
Jenn Magder
fef6f543da
Check if reg can run before calling it on Windows (#79905) 2021-04-08 16:55:38 -07:00
Sam Rawlins
68492c5b69
Remove "unnecessary" imports. (#78664) 2021-04-06 11:19:02 -07:00
Jenn Magder
79f1689f6a
Migrate doctor_validator to null safety (#79682) 2021-04-05 11:54:54 -07:00
Jenn Magder
8ddc27e607
Split globals.dart into null sound and unsound libraries (#79016) 2021-03-31 16:55:20 -07:00
Danny Tuppeny
563338a106
Support WebSockets for injected client (#78961) 2021-03-24 10:45:03 -07:00
Danny Tuppeny
596133a723
Pass the --disable-dds flag through to dwds (#78806) 2021-03-23 12:36:53 -07:00
Jenn Magder
628ae57e4e
Remove mocks from compile_expression_test (#78092) 2021-03-15 16:06:54 -07:00
Jenn Magder
75da995fbc
MockOperatingSystemUtils -> FakeOperatingSystemUtils (#77988) 2021-03-15 11:38:03 -07:00
Jenn Magder
d018c24bb8
MockProcessUtils->FakeProcessManager in version_test (#77985) 2021-03-12 16:38:04 -08:00
Jenn Magder
66768f8c5b
Remove mocks from web devices test (#77968) 2021-03-11 19:55:02 -08:00
Michael Goderbauer
cb867bbedc
Enable unnecessary_await_in_return lint (#77434) 2021-03-05 18:38:15 -08:00
Jonah Williams
2951363dc8
[flutter_tools] switch FakeCache to cache.test and NoopUsage to TestUsage (#76802) 2021-02-26 11:13:32 -08:00
Jenn Magder
e5b5e1475c
Adopt FakeProcess, remove MockProcess (#76276) 2021-02-18 11:13:26 -08:00
Jenn Magder
5e61466794
Adopt FileExceptionHandler in a few tests (#76279) 2021-02-17 23:41:04 -08:00
Jonah Williams
d65c98b4a2
[flutter_tools] replace some mock file/directories with new op handle (#76268) 2021-02-17 21:26:03 -08:00
Jonah Williams
93e7d34dc4
[flutter_tools] Remove globals/mocks from GradleUtils (#76020) 2021-02-17 14:26:57 -08:00
Jonah Williams
645cb64392
[flutter_tools] do not crash if shared profile restoration fails (#75718) 2021-02-09 15:31:48 -08:00
Sam Rawlins
e8d52be500
Remove "unnecessary" imports in flutter_tools tests (#75012) 2021-02-09 09:46:07 -08:00
Jonah Williams
021311ed8a
Revert "[flutter_tools] move process manager into tool (#75350)" (#75639)
This reverts commit 8b6baae44c.
2021-02-08 09:21:46 -08:00
Jonah Williams
8b6baae44c
[flutter_tools] move process manager into tool (#75350)
Our current top crasher is an unclear error when ProcessManager fails to resolve an executable path. To fix this, we'd like to being adjusting the process resolution logic and adding more instrumentation to track failures. In order to begin the process, the ProcessManager has been folded back into the flutter tool
2021-02-04 13:19:11 -08:00
Jonah Williams
18b1e23e89
[flutter_tools] move some fakes out of mocks.dart (#74992) 2021-01-29 14:28:18 -08:00
Jenn Magder
dbb1958c5e
Add canRun override to FakeProcessManager (#74865) 2021-01-28 19:06:56 -08:00
Jonah Williams
74bd7b6f6d
[flutter_tools] opt all flutter tool libraries and tests out of null safety. (#74832)
* opt out the flutter tool

* oops EOF

* fix import

* Update tool_backend.dart

* Update daemon_client.dart

* fix more
2021-01-27 15:17:53 -08:00
Jonah Williams
32db0fe791
[flutter_tools] provide correct sources and metadata for different base hrefs (#74452) 2021-01-21 23:04:03 -08:00
Jonah Williams
68d8c4b3bb
[flutter_tools] open chrome to correct base URL (#73962) 2021-01-14 12:16:32 -08:00
Jia Hao
47bad77287
Support flutter_test_config for flutter test on web platforms (#72488) 2021-01-05 15:49:02 -08:00
Jonah Williams
9e5c8771d4
[flutter_tools] wire up native-null-assertions for flutter web (#71618) 2020-12-03 08:59:31 -08:00
Jonah Williams
5d201a35aa
[flutter_tools] allow hiding web server device, provide flags to re-enable (#71434) 2020-12-01 09:53:27 -08:00
Jonah Williams
c07661cbc5
[flutter_tools] share bootstrap module between run and test (#70903) 2020-11-20 12:11:24 -08:00
Jonah Williams
a76289bb1b
[flutter_tools] run web unit tests in sound null safety (#70799) 2020-11-19 16:49:05 -08:00
Jonah Williams
4832e64cad
[flutter_tools] remove globals from flutter web platform (#70863) 2020-11-19 13:06:30 -08:00
Jonah Williams
f8940709b2
[flutter_tools] refactor shared memory filesystem logic (#70795) 2020-11-18 17:29:13 -08:00
Jonah Williams
0a73ecf6df
[flutter_tools] use initially parsed package config for language version, sound mode determination (#70323) 2020-11-13 09:41:11 -08:00
Jonah Williams
39bc68b6a2
[flutter_tools] dont use autodetect enum for web (#70189) 2020-11-10 12:49:38 -08:00
Yegor
879466eac2
default to unsound nullability for web (#70120) 2020-11-09 13:49:02 -08:00
Gary Roumanis
16daed86c3
Persist Chrome Default Directory (#69921) 2020-11-06 10:54:04 -08:00
Jonah Williams
a0860f6e87
[flutter_tools] retry sever socket setup (and port selection if port is unspecified) (#69351)
Fixes #69348

If the web development server fails to bind, then retry up to 5 times. If a port was not provided, select a new free port each time.
2020-10-29 20:07:34 -07:00
Angjie Li
3056f4194a
Fix issue with --web-renderer. (#69319) 2020-10-29 14:43:06 -07:00
Angjie Li
2bbd004682
Support --web-renderer options which would allow user to specify which rendering backend to use. (#68848) 2020-10-28 17:32:09 -07:00
Jonah Williams
0f28edac65
[flutter_tools] null safety mode is used for dill naming (#68898)
* [flutter_tools] null safety mode is used for dill naming

* add bad test case
2020-10-23 15:39:58 -07:00
Yegor
ea3b08f333
Respond to HTTP POST requests with 404 in WebAssetServer (#68492)
* Respond to POST with 404 in WebAssetServer
2020-10-19 16:21:39 -07:00
Alexandre Ardhuin
73301a35a2
Sync lints (#68136) 2020-10-15 15:37:04 -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
Mouad Debbar
b42e34690a
[web] Update index.html template to support new path strategy (#67081) 2020-10-02 15:12:04 -07:00
Mouad Debbar
5d6321b509
[web] Respond with 404 to non-found asset or package files (#67088) 2020-10-02 11:02:03 -07:00
Jonah Williams
e819f292b3
[flutter_tools] do not require a dependency on devtools server (#66842)
Re-arrange the implementation of the devtools launcher so that google3 is not required to depend on any devtools packages. Also renames the build_runner folders to isolated to better clarify their intention.
2020-09-29 18:15:56 -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
Mouad Debbar
31254fbe03
[web] Change the web server to support path url strategy (#66606) 2020-09-25 15:42:03 -07:00
Jonah Williams
943b41bd61
[flutter_tools] allow device classes to provide platform-specific interface for devFS Sync (#66266) 2020-09-22 16:57:04 -07:00
Michael R Fairhurst
7f3c9b6bda
Remove unused 'dart:async' imports. (#65568) 2020-09-16 14:14:06 -07:00
Balvinder Singh Gambhir
3dde3e034c
[flutter_tools] generates version.json for web using flutter tool (#64644)
Generates version.json in web directory of project. version.json can be used in the future version of package_info which will support web. version.json has the following keys : app_name, version and build_number. This file is generated every time a user runs or builds the project.

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
2020-09-15 11:21:54 -07:00
Jaime Blasco
0699c18e99
[flutter_tool] [web] Remove x-frame-options header during debug (#62115)
Currently flutter run -d web creates a server with the x-frame-options: SAMEORIGIN added by default (shelf add it's by default). This doesn't allow you to use it inside a frame.

I am trying to build an embedded simulator in vscode and it requires using an iframe.

With this PR I remove the header for debug and profile mode.
2020-09-03 13:33:39 -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
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
Danny Tuppeny
f8135add8e
Add a flag for using WS for debug backend (#61359) 2020-07-13 13:31:04 -07:00
Anna Gringauze
9cbe1dccf3
Added web compiler debug metadata (#61265)
Made flutter tools serve metadata produced by the frontend server:

pass --experimental-emit-metadata flag to flutter engine
store and serve metadata from web asset server
store and serve merged metadata from web asset server
add tests to verify that metadata is served from memory
update dwds version so it can read metadata
configure dwds to read metadata from file
Prerequisite changes (landed):

sdk: https://dart-review.googlesource.com/c/sdk/+/150181
flutter engine: flutter/engine#19168
webdev:dart-lang/webdev#1064
2020-07-10 16:36:43 -07:00
Jonah Williams
ae9ac9f211
[flutter_tools] support starting in canvaskit with FLUTTER_WEB_USE_SKIA=true (#60708) 2020-07-01 22:53:03 -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
Jonah Williams
e1538d1b88
[flutter_tools] last pass on general.shard unit tests (#60263)
Last batch of test fixes for general shard.
2020-06-26 13:36:06 -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
Jonah Williams
2a7ee930c3
[flutter_tools] Update WebAssetServer to avoid context, fix tests (#60224)
WebAssetServer could fail if some of the global statics it depended on were initialized in a different order. Fix this by removing globals.

Delete dwds startup test that needs to spawn a real server.
2020-06-24 16:19:49 -07:00
Jonah Williams
5d61bff294
[flutter_tools] even more test fixes (#60156)
Fix tests broken under tester
2020-06-24 10:23:59 -07:00
Jonah Williams
dd49e57be2
[flutter_tools] more test fixes (#60144)
Fixes additional bugs uncovered by tester, style fixes to prevent suggested imports.
2020-06-23 17:53:00 -07:00
Jonah Williams
37db92beeb
[versions] update all versions and fix tool tests (#60127)
Update all versions, specifically file which fixes some bugs that caused tests to fail if run in different orders:

- systemTemp directories created by MemoryFileSystem will allot names based on the file system instance instead of globally.
- MemoryFile.readAsLines()/readAsLinesSync() no longer treat a final newline in the file as the start of a new, empty line.
- RecordingFile.readAsLine()/readAsLinesSync() now always record a final newline.
2020-06-23 15:48:37 -07:00
Danny Tuppeny
96711b00ce
Don't crash on requests for invalid package URLs (#59250) 2020-06-12 09:25:04 -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
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
Jonah Williams
3bc4a82605
[flutter_tools] avoid serving files outside of expected paths (#58653) 2020-06-04 11:53: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 209bdcb669.
2020-05-05 11:15:33 -07:00