Commit Graph

5822 Commits

Author SHA1 Message Date
Jonah Williams
9bc533c9e5
[flutter_tools] do not error flutter doctor on missing AS/intellij plugins (#66782)
In cases where the Intellij/AS plugins are not located, display links to where they can be downloaded but do not surface an error. This should generally reduce confusion about whether the plugins are required for every installed IDE. For example, frequently users may only install AS so that they can install the Android SDK - or they may have multiple copies of Intellij installed.

For example: #66762
2020-09-29 16:51:28 -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
Marcus Tomlinson
5f76bfb4af
Add the ability to inject a bootstrap script (#66897) 2020-09-29 19:24:21 +01:00
Ben Konyi
65a81c7cd3
Roll package:dds to 1.4.0 and update error handling (#66836) 2020-09-29 10:28:17 -07:00
Jonah Williams
6f20c8a83f
[flutter_tools] handle missing zip/unzip argument errors (#66685)
it is possible for users that download the prebuilt SDKs to run the tool without unzip installed. Rather than crashing with an unclear argument error, exit the tool with a message on how to install that mirrors the message in the update_dart_sdk.sh script.

Also applied to zip for completeness
2020-09-29 07:58:09 -07:00
Jonah Williams
21caa8db33
Update flutter_tools README.md to document need for FLUTTER_ROOT (#66854) 2020-09-28 14:36:09 -07:00
Jonah Williams
549de844ed
[flutter_tools] add a mechanism to turn off immediate tool exit (#66787)
Instead of always exiting the tool, provide a mechanism to turn off this behavior for non-critical functionality like configuration and analytics settings.

Fixes #66786 Fixes #4674
2020-09-28 13:04:38 -07:00
Jenn Magder
65159afb55
Force plugins to inherit minimum iOS version from Flutter app (#66590) 2020-09-28 10:14:47 -07:00
Ian Hickson
d95bff1ed8
Minor tool text typo (#66801) 2020-09-28 09:27:04 -07:00
Tim Sneath
b8397f69d3
Improve consistency of top-level help text (#66748) 2020-09-27 15:12:03 -07:00
Jonah Williams
ec40df9576
[flutter_tools] dont mention git clone of flutter in run message (#66691)
This message is displayed if we do not find a pubspec.yaml

99% of the time this additional advice is going to have nothing to do with the actual error. Just remove it because it will cause more confusion than it could clear up
2020-09-25 21:27:22 -07:00
Jonah Williams
19fbe98df3
[flutter_tools] pass existsSync through error handling io (#66704)
Crash reporting shows at least one instance of EACCES during an existsSync cache call. Add this to the list of error handling io methods. Did not add the async exists method since we lint against its usage.
2020-09-25 20:17:39 -07:00
knaeckeKami
8e9e13449b
Teach the flutter tool how to find android output files if the flavor contains uppercase letters (#66687)
This changes the name of the generated output files on android in case a flavor with uppercase letters is used.
Previously, the lowercased flavor name would be used for the apk/aab file. Now, the flavor name is used as-is.
2020-09-25 15:54:55 -07:00
Mouad Debbar
31254fbe03
[web] Change the web server to support path url strategy (#66606) 2020-09-25 15:42:03 -07:00
Nebi Sarigul
eb54388934
Update .gitignore.tmpl (#66382) 2020-09-25 15:37:03 -07:00
Jonah Williams
99d0954857
[flutter_tools] ensure ErrorHandlingFileSystem wraps current directory (#66680)
The lack of current directory wrapping was letting some of the already handled errors through

Fixes #66675
2020-09-25 14:29:22 -07:00
Jenn Magder
934e05f86d
Remove Try accepting the local network permissions popup warning (#66621) 2020-09-25 11:05:47 -07:00
gaaclarke
76ad864727
Added timeout for closing devfs sync http connections. (#66152) 2020-09-25 10:52:33 -07:00
Jonah Williams
90bc7c64dd
[flutter_tools] fix calling debugToggleBrightness on release mode (#66401)
ensure that the terminal handler checks if the service protocol is enabled before calling debug toggle brightness. Also removes globals from TerminalHander and test cases.

Fixes #65477
2020-09-24 18:56:07 -07:00
includecmath
71c42c9c54
[flutter_tools] Add channel order aware version_test (#62417) 2020-09-24 13:07:03 -07:00
Jonah Williams
b9274c7c60
[flutter_tools] bypass pubspec yaml content check when running pubdependencies (#66559)
Otherwise the heuristics we have may decide to skip running pub. We should consider reducing the number of dimensions of caching here to a single check optimized for the run/test case.
2020-09-24 12:51:18 -07:00
Jonah Williams
90d83e37a6
[flutter_tools] register service worker after first frame event (#66082)
Registering the service worker immediately after the documented has loaded may cause SW initialization to compete with framework initialization. It was recommended to us that we defer the service worker setup until after the framework is done with setup, which should be sometime after the first frame.

To implement this, I augmented the binding setup to dispatch an event on the document after the binding has initialized. I don't see any obvious risks with this setup.

Fixes #66066
2020-09-23 18:58:05 -07:00
Jonah Williams
6642d8f16a
[flutter_tools] enable single widget reload optimization by default on master (#66507)
This should be a mostly non breaking change for hot reload workflows that improves performance, but if you see anything odd with hot reload behavior on master please file a bug. This feature can also be disabled without any changes to the SDK with flutter config --no-single-widget-reload-optimization
2020-09-23 17:26:58 -07:00
Jonah Williams
faa4b6635a
[flutter_tools] try deleting the web cache directory before copying new web sdk (#66461)
Delete the destination directory for the web sdk before copying the new contents. This might fix an error where the OS refuses to overwrite the files on dev
2020-09-23 16:45:20 -07:00
Jonah Williams
707aa49e42
[flutter_tools] flush UI thread tasks before finishing hot restart (#66417)
Improve our ability to measure the performance of hot restart. Also flush all UI thread tasks before calling the hot restart "complete" in benchmark mode.

If this is successful at stabilizing the benchmarks, this should be enabled for "normal" hot restart so that we can accurately track execution time.
2020-09-23 13:39:52 -07:00
Jenn Magder
f654346777
Check git commands in Flutter version check test (#66406) 2020-09-23 13:27:24 -07:00
Greg Spencer
bbd7b97664
Change the default visual density to be adaptive based on platform. (#66370)
Based on feedback from various desktop developers, and to be consistent between the defaults and the sample code, this PR switches the default for visual density in desktop themes to be compact instead of standard.

It also removes the same setting from the sample code generated by "flutter create" because it is no longer needed now that it is the default.
2020-09-23 11:14:58 -07:00
Jacob MacDonald
9cee75ba61
update to the latest null safe packages (#66384)
Updates all null safe dependencies to versions that allow 2.10 stable and 2.11 dev releases.

Also updates flutter_goldens and flutter_goldens_client to allow 2.11 dev.
2020-09-23 11:03:29 -07:00
Jonah Williams
1d4e7cd52d
[flutter_tools] do not add events to closed sink in throttle transform (#66468)
The throttle duration could delay past the point where the destination sink was closed. Check if it is closed before adding an event. Fixes a crash on dev: StateError: Bad State: Stream is already closed.
2020-09-23 10:40:39 -07:00
Emmanuel Garcia
fc1e764264
Expose enable-experiment in Flutter drive (#66311) 2020-09-23 10:38:02 -07:00
Jonah Williams
51ededb92f
[flutter_tools] reland: map file URIs to a multiroot scheme (#66405)
If a file scheme and one or more roots is provided, fall back to this mapping before the direct file path if the file path cannot be turned into a package URI.

Use URI representation so that the transformation is resilient to the org-dartlang-app scheme used by the web builds.

Fixes #66095
Fixes #66404
2020-09-23 07:03:59 -07:00
Jenn Magder
78e54dd46b
Revert "[flutter_tools] map file Uri to multi-root scheme if provided (#66151)" (#66403)
This reverts commit af6ba86728.
2020-09-22 17:50:27 -07:00
Jenn Magder
d5b715d7cb
Stream logging from attached debugger on iOS 13+ (#66399) 2020-09-22 17:16:45 -07:00
Jenn Magder
658e6c8a8d
Listen to Debug VM stream to get Stdout logs from VMService (#66310) 2020-09-22 17:12:02 -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
Jonah Williams
af6ba86728
[flutter_tools] map file Uri to multi-root scheme if provided (#66151)
If a file scheme and one or more roots is provided, fall back to this mapping before the direct file path if the file path cannot be turned into a package URI.

Fixes #66095
2020-09-22 16:51:18 -07:00
Ben Konyi
a3b3d53d62
Revert "Revert "Ensure VmService instance is disposed after failed direct connection attempt (#66123)" (#66164)" (#66377)
This reverts commit 3e6863ab2b.
2020-09-22 16:29:13 -07:00
Jenn Magder
4881b4b07c
Revert "Stream logging from attached debugger on iOS (#66092) (#66390)" (#66397)
This reverts commit 2be4570d3a.
2020-09-22 15:15:56 -07:00
Jenn Magder
2be4570d3a
Stream logging from attached debugger on iOS (#66092) (#66390) 2020-09-22 14:59:14 -07:00
Jonah Williams
76698a5026
[flutter_tools] dont crash if attach is given a bad debug uri (#66358) 2020-09-22 12:03:21 -07:00
Jenn Magder
8d2e257633
Revert "Stream logging from attached debugger on iOS (#66092)" (#66368)
This reverts commit 5c8580360a.
2020-09-22 11:30:50 -07:00
Dan Field
4299dd7843
Revert "Revert "Stream logging from attached debugger on iOS (#66092)" (#66359)" (#66360)
This reverts commit 53fee1be38.
2020-09-22 09:23:57 -07:00
Dan Field
53fee1be38
Revert "Stream logging from attached debugger on iOS (#66092)" (#66359)
This reverts commit 5c8580360a.
2020-09-22 09:22:55 -07:00
Jonah Williams
511367aa5a
[flutter_tools] remove k toggle for canvaskit from web runner (#66273)
The k toggle allows switching between canvaskit and html backend at runtime. unfortunately this causes hot restart to break, since the dart_sdk modules stores state at runtime. The recommendation will be to use cavaskit via dart-defines.
2020-09-21 15:33:32 -07:00
Jonah Williams
6809542008
[flutter_tools] declare non-transitive deps correctly (#66269) 2020-09-21 15:22:06 -07:00
Yegor
905feb7771
roll source_span 1.8.0-nullsafety.2 (#66290) 2020-09-21 15:02:07 -07:00
Jonah Williams
2c6f862bf8
[flutter_tools] add EPERM to set of immediate exit errors (#66159) 2020-09-21 11:32:07 -07:00
Jonah Williams
a029e172fe
[flutter_tools] fix bug where last build id parent folder is missing (#66156) 2020-09-21 11:17:13 -07:00
Jonah Williams
689ca09cd0
[versions] update to latest source span and roll engine to 4b8477d11573d233e6791204191c0090f733b05d (#66136) 2020-09-19 11:22:07 -07:00
Jonah Williams
a19f5baccc
[flutter_tools] connect widget cache from frontend_server (#65951) 2020-09-19 11:02:04 -07:00
Zachary Anderson
3e6863ab2b
Revert "Ensure VmService instance is disposed after failed direct connection attempt (#66123)" (#66164)
This reverts commit 409e994cd0.

Co-authored-by: Jenn Magder <magder@google.com>
2020-09-18 21:05:27 -07:00
Jenn Magder
5c8580360a
Stream logging from attached debugger on iOS (#66092) 2020-09-18 15:26:28 -07:00
stuartmorgan
c11440ae92
Remove the Windows 'flutter create' warning (#66113) 2020-09-18 14:32:10 -07:00
Ben Konyi
409e994cd0
Ensure VmService instance is disposed after failed direct connection attempt (#66123)
_attemptServiceConnection in FallbackDiscovery would fail if the root
library URI was not a package URI even if the VM service connection
attempt was successful. This resulted in a VM service connection being
left alive, causing DDS to fail its connection to the VM service.

Updated _attemptServiceConnection to ensure the VM service instance is
disposed after a non-connection related failure and to allow for root
library URIs with a file scheme.
2020-09-18 14:20:35 -07:00
Jonah Williams
84aae22c3e
[flutter_tools] optimize fetch requests and remove main.dart.js bypass (#66069)
The main.dart.js bypass is not needed now that we have skipWaiting. Additionally optimize the fetch handler so that resources not in the cache skip the service worker altogether.

Fixes #66068
2020-09-17 17:05:46 -07:00
Yegor
fde120df6d
Hide flutter test --platform (#65984) 2020-09-17 16:02:06 -07:00
Daniel Edrisian
3a5e45404d
Updated androidMissingSdkInstructions error message (#65964) 2020-09-17 15:57:06 -07:00
younghwan
634e461c4d
Apply darkmode style (#65182) 2020-09-17 15:32:05 -07:00
Jonah Williams
bc11c2a8c4
[flutter_tools] update windows config feature (#65867) 2020-09-17 15:24:52 -07:00
stuartmorgan
50fd10fc6f
Consider the Windows app template stable (#66022)
Removes the template version from the Windows template; the API and
tooling boundary will now be considered stable, so there will no longer
be frequent breaking changes.

Also updates the link for adding desktop support to a project for all
three platforms to reflect the current location.

Fixes https://github.com/flutter/flutter/issues/52748
2020-09-17 15:24:28 -07:00
stuartmorgan
8162bbd8e8
Update Windows system font change handling (#66021)
The engine now has an explicit API for system font changes, rather than
expecting the WM_FONTCHANGE message to be forwarded to the Flutter view.
2020-09-17 15:23:56 -07:00
stuartmorgan
eaf3f8b4f7
Add VERSIONINFO to the Windows template (#66025)
Adds a VERSIONINFO to Runner.rc in the Windows app template, populated
from the project creation metadata.

Currently the version itself is hard-coded, but it is future-proofed to
allow plumbing the actual version through at build time via preprocessor
defines.
2020-09-17 15:23:38 -07:00
Jonah Williams
3e838da96a
[flutter_tools] use flutter tool handler for dwds resources and precache tool pub dependencies (#65814)
If the tool is downloaded from a precompiled snapshot, or if the backing source files in the pub cache are deleted, the dwds debugging functionality will break as the client.js file cannot be located. Instead use the PackageConfig to verify that package location, downloading if it is missing.

Override the dwds middleware to avoid Isolate.resolvePackageUri

Fixes #53644
Fixes #65475
2020-09-17 15:22:06 -07:00
Herbert Poul
af2143412f
Remove FlutterApplication from app templates. (#64742) 2020-09-17 15:17:11 -07:00
Michael Arndt
fbc34def01
Fixed typo (subetting -> subsetting) (#62502) 2020-09-17 15:17:08 -07:00
Jenn Magder
4fee00798a
Inform user how to fix permissions when the observatory URL isn't found on iOS 14 (#65977) 2020-09-17 15:16:55 -07:00
Ben Konyi
fb08acf10c
Roll packages to fix #66038 (#66052)
PR #65873 enabled DDS for non-web Flutter applications. This change
surfaced a bug where DDS would not send ServiceRegistered events to VM
service clients when they subscribed to the Service stream. This would
cause tools and tests that rely on these events (e.g., hot reload in
VSCode) to fail.

Fixes #66038.
2020-09-17 12:28:49 -07:00
gaaclarke
fa646339d6
Added the machine's architecture to macos doctor results. (#65978) 2020-09-16 17:47:04 -07:00
Jonah Williams
73652a723b
[flutter_tools] automatically update to latest sw on install (#65784)
If a new service worker is installed, automatically update this behind the scenes. Immediately after a page refresh, the new worker and cache will be available, though the main.dart.js and others will be available sooner due to the cache busting URLS
2020-09-16 17:16:58 -07:00
Ben Konyi
a17b330980
Reland "Re-enable the Dart Development Service (DDS) (#64671)" (#65873)
This reverts commit 66b01c1f29.

* Add DDS ipv6 support

* Use --dds-port for DDS instead of hijacking --host-vmservice-port
2020-09-16 16:27:42 -07:00
Michael R Fairhurst
7f3c9b6bda
Remove unused 'dart:async' imports. (#65568) 2020-09-16 14:14:06 -07:00
Jonah Williams
b02cb6e4c9
[flutter_tools] make local engine integration testing easier (#65802) 2020-09-15 13:32:02 -07:00
Devon Carew
04e4b117f6
fix an issue where raw json output is written to IDE clients (#65508)
fix an issues where raw json output was written to IDE clients
2020-09-15 12:44:05 -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
Yuqian Li
e3c6979d1b
Save startup timeline (#65118)
This would help us investigate issues like
https://github.com/flutter/flutter/issues/64781
2020-09-15 11:17:30 -07:00
Jenn Magder
7e27b140f0
Avoid thinning frameworks in iOS extensions (#65198) 2020-09-15 11:10:25 -07:00
Jonah Williams
4188085596
[flutter_tools] handle archive exception from invalid zip signature (#65869)
Like the ProcessException thrown from zip running on a bad file, the tool should catch the ArchiveException thrown from windows implementation using package:archive.
2020-09-15 10:55:41 -07:00
Jonah Williams
b88f308af7
[flutter_tools] port deprecated settings test to flutter integration shard (#65806)
Port the deprecated settings devicelab test to tool integration shard. Tests that apps can be built using the deprecated android/settings.gradle file.

Part of #65790
2020-09-15 10:55:07 -07:00
stuartmorgan
fa12f443df
Update Windows app template (#65696) 2020-09-14 18:07:04 -07:00
Aman Verma
9dd6738662
Update flutter_command.dart (#65765) 2020-09-14 18:02:09 -07:00
stuartmorgan
bcd0959ac3
Sort generated plugin file content by plugin name (#65509) 2020-09-14 17:57:11 -07:00
Jonah Williams
039f1cf853
[flutter_tools] handle terminals that do not support single char mode in Terminal.promptForCharInput (#65418)
Some terminals stdin do not support single char mode (like an emacs terminal buffer apparently). If this is the case, then the presented choice values would always have an appended newline \n which would prevent us from finding the value in the listed index (or using it as a signal for the default choice). To fix, treat '' as the default choice and always trim the choice value.

While this has seemingly always been broken, it wasn't noticeable until the multi-device selection prompt was added a few months ago.

Fixes #65267
2020-09-14 17:57:04 -07:00
Jonah Williams
6acea15f22
[flutter_tools] fix failure to create ansi spinner if download needs to be retried (#65797)
Because the Status spinner was only created on setup, the second stop would asset/crash.

Fixes #65449
2020-09-14 17:55:11 -07:00
Greg Spencer
94592acb71
Creates a way to test private APIs in the Flutter package. (#65505) 2020-09-13 15:52:03 -07:00
Danny Tuppeny
92eb7945a5
Remove invalid assert (#65623) 2020-09-11 15:35:04 -07:00
Ben Konyi
577de1c44e
Roll forward package:test to 1.16.0-nullsafety.4 to prepare for (#65571) 2020-09-10 15:55:03 -07:00
stuartmorgan
ee4fa1b34e
Update Windows app template (#65511) 2020-09-10 13:10:04 -07:00
Jonah Williams
0ea0e9d0b3
[flutter_tools] remove advice about running sdkmanager directly (#65426) 2020-09-10 13:05:03 -07:00
xster
65ae30c8cc
Update create templates to 1.0.0 (#65234) 2020-09-10 12:57:56 -07:00
Herbert Poul
8dfd42f6b7
[gen_l10n] Support string list as preferred-supported-locales (#63649)
* [gen_l10n] Support string list as preferred-supported-locales, as documented.

* [gen_l10n] Convert preferredSupportedLocale to a list of strings. 

* [gen_l10n] Accept a multi option instead of a json string in the command line.
2020-09-10 07:32:40 +08:00
stuartmorgan
6d1c244b79
Always use POSIX paths for generated CMake files (#65493)
The Windows plugin CMake generation had code to ensure that the paths
written to it used POSIX separators, but the Linux version didn't; that
meant that plugin updates run on Windows machines would corrupt the
generated (but checked in) Linux CMake file.

This change shares that code so that both will use POSIX paths
regardless of what OS they are generated on.

Fixes https://github.com/flutter/flutter/issues/64591
2020-09-09 16:08:19 -07:00
Jonah Williams
6d360562e3
[flutter_tools] alternate the name of the dill file used for hot restart (#65435)
* [flutter_tools] alternate the name of the dill file used for hot restart

* switch alternative name to .swap
2020-09-09 15:56:25 -07:00
Jonah Williams
b4551e31fc
[flutter_tools] remove globals from tracing and add unit tests (#65490)
Removes global variables and adds unit tests that can be copied for #65118
2020-09-09 15:55:52 -07:00
Jonah Williams
6b444c4dd7
[flutter_tools] standardize patterns for integration.shard (#64980)
Integration tests must only go through the real file system/process manager/platform. The global indirection makes this code harder to understand than if it directly referred to the concrete instances that are being used.

Update the integration shard to use a const instance of a LocalFIleSystem, LocalProcessManager, and LocalPlatform. Remove global usage and apply testWithoutContext.
2020-09-08 15:56:00 -07:00
Angjie Li
d2fa384c31
Allow Developers to enable Accessibility testing on WebFlutterDriver and get the underlying webDriver (#65051) 2020-09-08 13:15:06 -07:00
Ian Hickson
e10bdbbd9d
Fix RangeMaintainingScrollPhysics (#65135) 2020-09-07 11:40:03 -07:00
Jonah Williams
9248fda410
[flutter_tools] add EACCES to list of immediate exit tool conditions (#65125)
Similar to the permission denied error on Windows, this is not resolvable by the tool.
2020-09-03 16:08:01 -07:00
Jonah Williams
30a0b5a50c
Revert "[flutter_tools] split project parsing/validation into separate function (#64814)" (#65202)
This reverts commit 8eed690442.
2020-09-03 14:25:29 -07:00
Jonah Williams
8eed690442
[flutter_tools] split project parsing/validation into separate function (#64814)
In order to share logic across build/archive/ipa commands, move the project parsing/validation into a different function. #64683
2020-09-03 14:14:52 -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