Commit Graph

269 Commits

Author SHA1 Message Date
Jonah Williams
d8b6fa153a
[flutter_tools] generate a synthetic flutter_gen package on pub get (#61261)
Allow configuring the flutter_manifest to support a synthetic package, this is done through flutter: generate: true.

When running pub get, insert a flutter_gen entry into the packages if it does not already exist. This points to .dart_tool/flutter_gen, which can be updated to contain the generated intl sources (But doesn't currently)

Adds an integration test that verifies this code can be run and imported when enabled.

Part of #60914
2020-07-15 10:12:52 -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
Dan Field
eadc35f62b
Optionally invert oversized images (#61209)
* Optionally invert oversized images
2020-07-13 14:03:23 -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
2188196125
[flutter_tools] ensure flutter daemon can exit correctly when app fails to start (#60615)
The flutter daemon unconditionally waits for the appFinished signal, even if startup failed. Ensure this future is correctly completed if there is a failure in ResidentRunner.run and not just ResidentRunner.attach. Adds regression tests for run release, debug, debug web, and release web. Adds missing try catch in cold runner startup.

Manually tested with release/debug on Android and release/debug on web.

Fixes #60613
2020-06-30 12:26:18 -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
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
55abbb6be6
[flutter_tools] track null safety usage (#59822)
* [flutter_tools] track null safety usage

* Update flutter_command_test.dart

* cleanups
2020-06-22 17:05:01 -07:00
Jonah Williams
fbdc79e448
[versions] update all versions (#59832)
Fixes #59718

Update all versions, specifically dwds which has a hot restart fix
2020-06-19 14:48:57 -07:00
Jonah Williams
e1f4cfb4f4
[flutter_tools] add toggle b and service extension to change platform brightness (#59571)
A frequent request from the last Flutter developer survey was for an easier method of testing light/dark mode changes. Currently, a user needs to manually change the theme settings or adjust phone settings to see the difference. Instead we should add a toggle from the CLI, and eventually devtools/Intellij/Vscode that allows developers to override the current setting.

Fixes #59495

Adds flutter.ext.brightnessOverride service protocol which either queries the current platform brightness, or overrides it to a new value. This accepts either Brightness.light or Brightness.dark as a value.

Adds a CLI toggle b which allows the setting to be toggled manually.

Requires an update to the MediaQuery, to conditionally use a debug override when not in release mode
2020-06-18 10:32:43 -07:00
Jonah Williams
958f7c5b55
[flutter_tools] ensure generated entrypoint matches test and web entrypoint language version (#59291)
Ensure that the language version of the test/web generated entrypoint matches the language version of the test file to run, or the overall package language version if no annotation is provided.
2020-06-16 09:17:12 -07:00
Danny Tuppeny
96711b00ce
Don't crash on requests for invalid package URLs (#59250) 2020-06-12 09:25:04 -07:00
Helin Shiah
e62c1f6954
Send text error in JSON and print in tools (#59018) 2020-06-09 11:18:03 -07:00
Jonah Williams
01e60a1ca4
[flutter_tools] Reland: use correct sdk path for analysis (#59081)
flutter analyze was unconditionally using the cached dart-sdk for analysis, and was not running with the built SDK during local engine. This broke when trying to update the analyzer for null safety, since it required us to wait for the dart change to roll into the framework first.
2020-06-09 10:47:21 -07:00
Jonah Williams
5e3e5a2a1a
Revert "[flutter_tools] use correct sdk path for analysis (#58871)" (#59035)
This reverts commit 9ed3e5bea6.
2020-06-08 17:38:23 -07:00
Jonah Williams
9ed3e5bea6
[flutter_tools] use correct sdk path for analysis (#58871)
flutter analyze was unconditionally using the cached dart-sdk for analysis, and was not running with the built SDK during local engine. This broke when trying to update the analyzer for null safety, since it required us to wait for the dart change to roll into the framework first.
2020-06-08 17:21:33 -07:00
Jonah Williams
0620cfa770
Revert "Send text error in JSON and print in tools (#58994)" (#59002)
This reverts commit f0174b176a.
2020-06-08 11:56:23 -07:00
Helin Shiah
f0174b176a
Send text error in JSON and print in tools (#58994)
* Revert "Revert "Send text error in JSON and print in tools (#58284)" (#58872)"

This reverts commit c2d5e18cb2.

* Put streamListen in try/catch if extension events already listened for
2020-06-08 11:24:23 -07:00
Jonah Williams
64538f4d78
[flutter_tools] disable dartdev when calling snapshots directly (#58830) 2020-06-06 14:48:03 -07:00
Jonah Williams
c2d5e18cb2
Revert "Send text error in JSON and print in tools (#58284)" (#58872)
This reverts commit cce6b3c5ae.
2020-06-06 10:35:58 -07:00
Helin Shiah
cce6b3c5ae
Send text error in JSON and print in tools (#58284)
* Send text error in JSON and print in tools

* Add test for error text

* Fix analysis issues

* Move streamListen to try/catch and use global.printStatus

* Extract print error fn and listen for events in web runner

* Add extension listen request to test

* Update packages/flutter_tools/lib/src/resident_runner.dart

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* Rename error parsing method

* Allow crash if listen for extension stream fails

* Add test for error and non-error extension events

* Fix formatting for TextTreeRenderer

* Use shorter message for second exceptions

* Specify types for map

* Add empty JSON for resident_web_runner test

* Move stream listen to vmservice and add vmservice test

* Fix stream type

* Move structured error log definition to vmservice

* Use correct test matcher isNot

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
2020-06-05 19:07:37 -07:00
Jonah Williams
3bc4a82605
[flutter_tools] avoid serving files outside of expected paths (#58653) 2020-06-04 11:53:04 -07:00
Jonah Williams
e934c2fc0a
[flutter_tools] reland: copy dill after startup (#58455)
* [flutter_tools] only copy cached dill after startup

* shared code

* cleanup artifact directory

* do not copy if dillOutputPath is given
2020-06-04 10:17:43 -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
6135091de9
Revert "[flutter_tools] only copy cached dill after startup (#58188)" (#58454)
This reverts commit 39d1e4b7e9.
2020-06-01 17:17:03 -07:00
Jonah Williams
39d1e4b7e9
[flutter_tools] only copy cached dill after startup (#58188)
Remove copying from the shutdown stage since that seems risky. If the tool copies the first compilation there will still be a decent dill for initialization.
2020-06-01 16:31:27 -07:00
Jonah Williams
b70e7a9b65
[flutter_tools] fix incorrect comment on web runner (#57450) 2020-05-19 18:07:04 -07:00
Jonah Williams
70b889a9a3
[flutter_tools] reland: integrate l10n tool into hot reload/restart/build (#57510)
Reland: #56167
2020-05-18 12:47:18 -07:00
Anna Gringauze
e88ef6d554
Updated dwds (and other packages) (#56958) 2020-05-13 09:07:09 -07:00
Jenn Magder
9c87b32477
Remove Runner target check, prefer schemes (#56620) 2020-05-11 11:56:44 -07:00
Jonah Williams
d70d0913b2
Revert "[flutter_tools] integrate l10n tool into build/run (#56167)" (#56800)
This reverts commit f865ac7e25.
2020-05-09 17:50:46 -07:00
Jonah Williams
f865ac7e25
[flutter_tools] integrate l10n tool into build/run (#56167)
* [flutter_tools] integration l10n tool

* add runtime skip to build system

* Update build_system.dart

* add links to issues, comments

* Update packages/flutter_tools/test/general.shard/build_system/build_system_test.dart

Co-authored-by: Shi-Hao Hong <shihaohong@google.com>

* Update packages/flutter_tools/lib/src/build_system/targets/localizations.dart

Co-authored-by: Shi-Hao Hong <shihaohong@google.com>

* Update localizations.dart

* switch to gen_l10n localizations

* fix tests

Co-authored-by: Shi-Hao Hong <shihaohong@google.com>
2020-05-08 12:06:15 -07:00
Bogdan Lukin
80a14af582
[flutter_tools] ensure track-widget-creation can be changed on devcompiler (#56564)
Workaround for cached web builds with --[no-]track-widget-creation flags.
Similar PR: #23299
2020-05-07 18:58:43 -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
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
6dc1e83f12
[flutter_tools] ensure track-widget-creation can be disabled on Android/macOS (#56203)
Ensure --no-track-widget-creation is piped through android/macOS. Adds integration testing for iOS/android/macOS
2020-05-04 11:22:15 -07:00
Jonah Williams
7b1d24216e
[flutter_tools] Make packages not required for local engine (#55882) 2020-04-28 14:53:53 -07:00
Jonah Williams
2aa9016652
[flutter_tools] ensure etag headers are ascii (#55704) 2020-04-27 15:02:15 -07:00
Jonah Williams
2f0d41b2a6
[flutter_tools] set test directory base as additional root, allow running without index.html (#55531) 2020-04-24 09:09:53 -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
9202e54704
[flutter_tools] move service extensions off of deprecated vm service (#55012) 2020-04-20 15:15:54 -07:00
Jonah Williams
b7e30cfc26
[flutter_tools] update compilation to use package config (#54467) 2020-04-20 14:02:49 -07:00