258 Commits

Author SHA1 Message Date
Jia Hao
9fdda01252
[flutter_tools] Generalize waitForExtension (#77220) 2021-03-11 07:31:25 +08:00
Jonah Williams
a3b14c58ae
[flutter_tools] replace vm_service extension methods with wrapper class (#76721) 2021-02-24 15:40:33 -08:00
Jonah Williams
820fb0bf2b
[flutter_tools] stop using throttled print for service extensions (#76022) 2021-02-16 12:11:57 -08:00
Jenn Magder
3f163d29a4
Return an empty FlutterViews list when the service disappears (#75301) 2021-02-03 11:01:03 -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
Zachary Anderson
2007186d2e
Reland: Handle more cases where the tool receives RPCError 112 (#74602)
* Reland: Handle more cases where the tool receives RPCError 112

* Add null-aware access
2021-01-24 12:54:00 -08:00
Zachary Anderson
6be4d1c8bf
Revert "Handle more cases where the tool receives RPCError 112 (#74574)" (#74601)
This reverts commit c87f15fe094b5645305efd4cc638fc17788eab30.
2021-01-24 09:52:27 -08:00
Zachary Anderson
c87f15fe09
Handle more cases where the tool receives RPCError 112 (#74574) 2021-01-23 23:11:15 -08:00
Ben Konyi
35b9288e13
Handle RPCError when VM service disappears while invoking VmService.getIsolate (#74528)
* Handle RPCError when VM service disappears while invoking `VmService.getIsolate`

* Add test
2021-01-22 17:21:39 -08:00
Ben Konyi
08068fd94c
Handle service disappeared RPCError when VM service connection disappears (#74424)
* Handle service disappeared RPCError when VM service connection
disappears while invoking a service extension registered by the
framework

* Add unit test, handle non-trivial cases
2021-01-21 22:51:03 -08:00
Ben Konyi
e2e3976a12
Roll package:dds to 1.7.3 and add error handling for VM service disappearing (#74272) 2021-01-20 10:49:13 -08:00
Gary Roumanis
705811fee2
Fix launching DevTools with Flutter Web applications (#72110) 2021-01-07 15:49:09 -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 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
Jonah Williams
08576cb671
[flutter_tools] HACKTOBERFEST (#67882)
HACKTOBERFEST
2020-10-12 09:31:02 -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
a19f5baccc
[flutter_tools] connect widget cache from frontend_server (#65951) 2020-09-19 11:02:04 -07:00
Michael R Fairhurst
7f3c9b6bda
Remove unused 'dart:async' imports. (#65568) 2020-09-16 14:14:06 -07:00
Jonah Williams
042fa8cf66
[flutter_tools] trim trailing newline from vm service logging events (#63976) 2020-08-17 12:26:03 -07:00
Nolan Scobie
43c1b34cf5
Add punctuation for unterminated sentences in doc comments (#62755)
* Add punctuation for unterminated sentences in doc comments

* Addressing review nit
2020-08-06 19:18:52 -04: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
Dan Field
eadc35f62b
Optionally invert oversized images (#61209)
* Optionally invert oversized images
2020-07-13 14:03:23 -07:00
Chris Bracken
e0f60918d4
Roll the engine from 965fbbe to b5f5e63 (#59804)
This rolls the engine from:
965fbbed1776545ee681cb57f3fb1d0c2000bbcb to
b5f5e6332cb4987e9e38ffaa267733ec0a8705ba. A Dart SDK roll in this range
changed the format of the compileExpression RPC VMService endpoint,
necessitating a tool patch.
2020-06-18 16:12:54 -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
Chris Bracken
f39ab52221
Revert "Manual engine roll to update format of compileExpression RPC response (#59717)" (#59774)
Failing dev/integration_tests/ui/test_driver/keyboard_resize_test.dart
Also timing out on new_gallery_ios__transition_perf

This reverts commit c7a37c72c2d4f74faac718abf7599b1f8d59aaa9.
2020-06-18 09:52:44 -07:00
Ben Konyi
c7a37c72c2
Manual engine roll to update format of compileExpression RPC response (#59717) 2020-06-18 09:18:03 -07:00
Jonah Williams
719ea5a8c0
[flutter_tools] make expando on vm service null safe to handle web stuff (#59624) 2020-06-18 08:18: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
0620cfa770
Revert "Send text error in JSON and print in tools (#58994)" (#59002)
This reverts commit f0174b176a87ca12a8128ca1cd5edadcfede46b5.
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 c2d5e18cb2df9400ab3b34f12fb1eba957084e2f.

* Put streamListen in try/catch if extension events already listened for
2020-06-08 11:24:23 -07:00
Jonah Williams
c2d5e18cb2
Revert "Send text error in JSON and print in tools (#58284)" (#58872)
This reverts commit cce6b3c5aeb12488d7dbec854a0b3adb4b720cd0.
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
72f81f4167
remove unused completer (#58804) 2020-06-05 11:53:01 -07:00
Jonah Williams
1e4d9f8502
[flutter_tools] add --write-sksl-on-exit to flutter drive (#58743)
Allow dumping sksl files on driver exit when a file path is provided to drive's --write-sksl-on-exit
2020-06-05 11:01:23 -07:00
Jonah Williams
600338286f
[flutter_tools] add vm service method to pull SkSL (#57813) 2020-05-27 10:10:41 -07:00
James D. Lin
c6f7792311
[flutter tools] Improve messages when we fail to connect to the Observatory (#57355) 2020-05-21 17:47:02 -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
Devon Carew
3f9ede1311
fix the reload and restart service extension methods (#56240) 2020-05-04 11:34:02 -07:00
Jonah Williams
0889e14361
[flutter_tools] increase stopApp timeout for FlutterDevice.exitApps (#55984) 2020-04-29 15:08:34 -07:00
Jonah Williams
534b0608ce
[flutter_tools] remove vm service (#55794)
Finishes the gradual vm service migration by deleting the flutter tooling's vm_service
2020-04-29 11:52:46 -07:00
Jonah Williams
ffcf1db3ca
[flutter_tools] reland migrate FlutterViews to package:vm_service (#55797)
Move FlutterView and related RPCs to the package:vm_service implementation. Update some getIsolate calls with catchError to match previous behavior.

- Updates tests that were previously mocking FlutterViews to use real views
- Moves the FlutterView cache from VM to FlutterDevice
- Catch SentinelException during Isolate.kill
2020-04-27 17:41:42 -07:00
Jenn Magder
958ab9336f
Revert "[flutter_tools] reland migrate FlutterView to new vmservice (#55774)" (#55788)
This reverts commit a18e6361cf7b5b56ddc8c13fbc871dd10348e00c.
2020-04-27 16:19:25 -07:00
Jonah Williams
a18e6361cf
[flutter_tools] reland migrate FlutterView to new vmservice (#55774) 2020-04-27 15:54:59 -07:00
Jonah Williams
07c451fea9
Revert "[flutter_tools] migrate FlutterView to new vm_service (#55341)" (#55772)
This reverts commit 2e50fd75eb06f593947437ed921e401dcab40259.
2020-04-27 14:26:56 -07:00
Jonah Williams
2e50fd75eb
[flutter_tools] migrate FlutterView to new vm_service (#55341)
Move FlutterView and related RPCs to the package:vm_service implementation. Update some getIsolate calls with catchError to match previous behavior.

- Updates tests that were previously mocking FlutterViews to use real views
- Moves the FlutterView cache from VM to FlutterDevice
- Catch SentinelException during Isolate.kill
2020-04-27 14:16:28 -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
e6abda7f00
[flutter_tools] remove Isolate implementations of vm_service methods (#54920) 2020-04-16 15:48:21 -07:00