Commit graph

5912 commits

Author SHA1 Message Date
Jonah Williams 2e54c4a8ea
[flutter_tools] implement safe file copy with multiple fallbacks (#69000)
The tool observes a large number of unhandled exceptions during the file copy portion of flutter create. it is difficult to tell whether the permission issue is caused by the source/destination, or whether it is due to a bug in dart:io.

To work around this, implement a permission check for both the source and dest files. If either fails, the tool can exit with a more specific message.

If these checks pass, then perform the actual copy. If the copy fails, fallback to manually copying the bytes
2020-10-26 15:49:07 -07:00
Jonah Williams 8b973f01c4
[flutter_tools] add package_config.json to analyze_once_test.dart (#69059)
* [flutter_tools] add package_config.json to analyze_once_test.dart
2020-10-26 15:46:51 -07:00
Jacob MacDonald 193fe3e980
Update null safe deps to prepare for the 2.12 sdk version (#69041)
* update pinned null safety deps

* run update-packages

* add http dep to devicelab package

* rerun update-packages
2020-10-26 14:31:13 -07:00
Alexandre Ardhuin 17cdf5559d
enable unnecessary_string_escapes and use_raw_strings (#68302) (#69025) 2020-10-26 12:42:05 -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 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
Jenn Magder 832d776b15
Stop debugger when iOS app crashes (#68844) 2020-10-23 14:12:04 -07:00
Jenn Magder 59544e377d
Apple silicon arch -arm64 -> -arm64e (#68855) 2020-10-23 13:48:38 -07:00
Jonah Williams 424ea0958b
[flutter_tools] make android deps no longer required for flutter doctor (#68533) 2020-10-23 12:37:04 -07:00
Jonah Williams cb67513f29
[flutter_tools] Reland: simplify pub cache logic (#67589)
There have been some more additional reports of a missing 'package:characters' import after upgrading flutter. This has me concerned that our pub caching logic is incorrect. Instead of the tool attempting to guess when pub should be run, always delegate to pub.

Also takes an opportunity to fix the kernel snapshot depending on the .packages or package_config. Due to the generated: date field this causes extra rebuilds. Instead when pub get is run, write out an additional file with just the package contents and version.

Fixes #66777
Fixes #65723
2020-10-23 10:00:56 -07:00
Jenn Magder 351ccf7eaf
Better error message when export options plist does not a fix (#68826) 2020-10-22 23:28:51 -07:00
Jenn Magder aea070790f
Turn off CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER in CocoaPod targets (#68817) 2020-10-22 22:02:04 -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
Jenn Magder f63d56e455
App.framework must support iOS 8 for older Flutter projects (#68729)
* App.framework must support iOS 8 for older Flutter projects

* Fix test
2020-10-22 13:50:54 -07:00
stuartmorgan 3ff334d68d
Add a missing include to the Linux plugin template (#68737)
The template uses strcmp (to check the received method), so should
include <cstring>
2020-10-22 13:50:39 -07:00
Jonah Williams 37470dfc0b
[devicelab] de-flake iOS launch (#68790)
* [devicelab] de-flake iOS launch
2020-10-22 13:37:57 -07:00
Jonah Williams 21ca1f9ba5
[flutter_tools] use --no-print-incremental-dependencies for non-resident and test compiles (#68678) 2020-10-22 13:34:59 -07:00
Jonah Williams 37042fdb08
[flutter_tools] remove iOS screenshot on failure functionality (#68650)
* [flutter_tools] remove iOS screenshot on failure functionality

* remove all screenshot code
2020-10-22 13:34:07 -07:00
Jenn Magder f877266139
Add CocoaPods sudo installation note (#68542)
* Add CocoaPods sudo installation note

* Refer to instructions
2020-10-22 13:33:35 -07:00
Jenn Magder 04657354f5
Build IPA command (#67781)
* Build IPA command

* xcarchive -> ipa
2020-10-22 13:32:51 -07:00
Robert Ancell 16b9933d85
Disable header bar when not using GNOME Shell. (#68452)
Fixes https://github.com/flutter/flutter/issues/68253
2020-10-22 10:24:19 +13:00
Robert Ancell b200baebd7
Try the Wayland GDK backend, the engine now supports it (#66519)
* Try the Wayland GDK backend, the engine now supports it

* Update comment from review

* Just do default GTK behaviour
2020-10-22 09:38:11 +13:00
Zachary Anderson cbcd1321ed
Revert "enable unnecessary_string_escapes and use_raw_strings (#68302)" (#68714)
This reverts commit ae06c19a37.
2020-10-21 08:16:13 -07:00
Alexandre Ardhuin ae06c19a37
enable unnecessary_string_escapes and use_raw_strings (#68302) 2020-10-21 16:34:24 +02:00
Jenn Magder d29cd9beb6
Clean up device logger and port forwarding on drive completion (#68655) 2020-10-20 16:01:51 -07:00
Jonah Williams cb5865d86c
[flutter_tools] add some versions to tool sources, cleanup build.yaml (#68624) 2020-10-20 09:50:31 -07:00
Jenn Magder d81691d0f4
Revert "Build iOS apps using Swift Packages (#68361)" (#68546)
This reverts commit dd9323bdfb.
2020-10-19 17:57:32 -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
Jenn Magder dd9323bdfb
Build iOS apps using Swift Packages (#68361) 2020-10-19 15:47:04 -07:00
Jenn Magder 5e17a240bd
Generate only requested platform directories on create (#68376) 2020-10-19 14:17:43 -07:00
Jonah Williams e422d5c724
[flutter_tools] reland: --no-android-gradle-daemon in devicelab (#68491)
Remove devicelab specific code for shutting down gradle daemon, add --android-gradle-daemon option to build/run/drive`. Avoids need for un-tested devicelab specific handler. There are also some feature requests for this, so 2 birds one stone.

Example:

flutter build apk --no-android-gradle-daemon will pass --no-daemon on to gradle
2020-10-19 10:27:58 -07:00
Jonah Williams 19f363029e
[flutter_tools] increase devFS sync timeout to 60 seconds (#68488)
The current timeout is too short for some remote workflows. The existing unit test require hitting a real timeout so I've removed it.

See b/171005910
2020-10-19 10:14:37 -07:00
Jonah Williams ed5482de19
Revert "[flutter_tools] add --android-gradle-daemon option, use in devicelab (#68409)" (#68489)
This reverts commit ddab72e79f.
2020-10-19 09:33:52 -07:00
Jonah Williams ddab72e79f
[flutter_tools] add --android-gradle-daemon option, use in devicelab (#68409)
Remove devicelab specific code for shutting down gradle daemon, add --android-gradle-daemon option to build/run/drive`. Avoids need for un-tested devicelab specific handler. There are also some feature requests for this, so 2 birds one stone.

Example:

flutter build apk --no-android-gradle-daemon will pass --no-daemon on to gradle
2020-10-19 09:12:21 -07:00
Nobuhiro Tabuki 4e2f82cf93
[flutter_tools] change the IntelliJ plugin detection logic. (#68020)
This PR suggests improving the IntelliJ plugin "jar" detection logic.

Previously:
The IntelliJ Flutter plugin was contained flutter-intellij.jar.
Currently:
It is named flutter-intellij-X.Y.Z.jar and does not contain META-INF/plugin.xml.
META-INF/plugin.xml is included in flutter-idea-X.Y.Z.jar.

So this PR changes the rules for searching the plugin's jar file.
Concretely, it looks for the jar file containing META-INF/plugin.xml in the plugin's package directory and reads the package version from its META-INF/plugin.xml.

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
2020-10-19 08:19:48 -07:00
Michael Thomsen c97ea71798
Adjust constraints (#68437) 2020-10-19 17:17:13 +02:00
Lau Ching Jun 583db83865
request.mainUri should be fileUri (#68329) 2020-10-16 15:23:54 -07:00
Jonah Williams 198e40c9eb
[flutter_tools] retry the driver launch of the application up to 3 times. (#68334)
We'd like to see how many of these flakes are transient and how many involve the device/machine getting temporarily wedged. Add a retry with no delay to see if it is possible to add sufficient error handling to startApp/installApp to handle this.
2020-10-16 15:07:23 -07:00
Lau Ching Jun 3393566b56
Use multiroot scheme for initial compilation in ResidentRunner recompile (#68280) 2020-10-16 10:54:19 -07:00
Jonah Williams dd93ee301f
[flutter_tools] drive uses correct application package for prebuilt (#68309)
Both start and stop app create an application package, but only start app used the application binary. Create the application package once and pass it to both start and stop app.
2020-10-16 09:40:08 -07:00
Martin Kustermann 6fae89c8b5
Update package:stack_trace dependency to 1.10.0-nullsafety.4 (#68132) 2020-10-16 16:35:20 +02:00
Alexandre Ardhuin 4ce5c2713b
fix the tree (#68277) 2020-10-16 10:28:38 +02:00
Shi-Hao Hong 38ebc5588b
[gen_l10n] Create pubspec.yaml in ".dart_tool/flutter_gen" if it does not already exist (#68206)
* Generate pubspec.yaml for synthetic package if it did not exist prior
2020-10-16 11:34:27 +08:00
Jenn Magder acde65d14a
Revert noninteractive lldb debugging, timeout warning (#68245) 2020-10-15 18:02:15 -07:00
Jonah Williams 4ce27ea0ac
[flutter_tools] update metadata detection to account for invalid yaml (#68243) 2020-10-15 16:51:52 -07:00
Jay Freeman (saurik) a69e393d66
Avoid skipping variable initialization using case. (#67899) 2020-10-15 16:07:03 -07:00
Alexandre Ardhuin 73301a35a2
Sync lints (#68136) 2020-10-15 15:37:04 -07:00
Jonah Williams 0f88644883
[devicelab] allow the devicelab to take a screenshot if the iOS connection fails with FLUTTER_IOS_SCREENSHOT_ON_CONNECTION_FAILURE (#68156)
More attempts to remote diagnose the issues in the iOS devicelab
2020-10-15 13:13:28 -07:00
Jonah Williams 27936e9f22
Revert "[flutter_tools] ensure android log reader works in flutter drive (#68131)" (#68222)
This reverts commit d962c8f2a2.
2020-10-15 10:50:56 -07:00