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
When performing a hot restart, collect isolates without an attached flutter view and send a kill signal. These must have been spawned by running main, so restarting without removing them leads to isolate duplication.
When performing a hot reload, ensure that we send a reloadSources command to every isolate and not just uiIsolates.
Previously the AdbLogReader did async setup in the StreamController.onListen callback, specifically it would query the api version and start the adb process. If the log subscription was cancelled before this setup completed, then the log output could (haven't confirmed) get added to a closed controller, causing the above state error.
* Reword flutter run help screen.
* As per Hixie request, added Efthymios Sarmpanis to the AUTHORS file
* fix test
Co-authored-by: Efthymis Sarmpanis <e.sarbanis@gmail.com>
* Update project.pbxproj files to say Flutter rather than Chromium
Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.
* Update the copyright notice checker to require a standard notice on all files
* Update copyrights on Dart files. (This was a mechanical commit.)
* Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.
Some were already marked "The Flutter Authors", not clear why. Their
dates have been normalized. Some were missing the blank line after the
license. Some were randomly different in trivial ways for no apparent
reason (e.g. missing the trailing period).
* Clean up the copyrights in non-Dart files. (Manual edits.)
Also, make sure templates don't have copyrights.
* Fix some more ORGANIZATIONNAMEs
Empirical measurements indicate on the network file system we use
internally, using `FileStat.stat` on thousands of files is much
faster than using `FileStat.statSync`. (It can be slower for files
on a local SSD, however.)
Add a flag to `ProjectFileInvalidator.findInvalidated` to let it
use `FileStat.stat` instead of `FileStat.statSync` when scanning for
modified files. This can be enabled by overriding `HotRunnerConfig`.
I considered creating a separate, asynchronous version of
`findInvalidated`, but that led to more code duplication than I
liked, and it would be harder to avoid drift between the versions.
...because otherwise, processes that think they're manipulating your
filesystem will be doing crazy things the test is ignoring, leading to
(at best) failures and (at worst) flakes or disk corruption.
Restructure ProjectFileInvalidator.findInvalidated a bit
I plan to modify `ProjectFileInvalidator.findInvalidated` to allow
it to use `FileStat.stat` instead of `FileStat.statSync`.
Restructure `findInvalidated` a bit so that `FileStat.statSync` is
called in only one place.
Note that this change now always counts the `.packages` file as one
of the files scanned, even if it does not exist. I think that this
is okay since it more accurately reflects the number of times that we
hit the filesystem with `stat()`, and it is consistent with how other
files are counted.
In preparation for some refactoring that I will be doing to
`ProjectFileInvalidator.findInvalidated`, make its code a bit
clearer:
* Indicate which arguments may be null.
* Don't bother calling `FileStat.statSync` on the `.packages` file
for the initial load. This makes the checks for the `.packages`
file consistent with those for other files.
* Use `DateTime.isAfter()` instead of comparing microseconds
ourselves.
While I was touching this file, I also removed some unnecessary
comparisons to `false`. (`_ManifestAssetBundle.wasBuiltOnce()` is the
only implementation I can find of `AssetBundle.wasBuiltOnce()`, and
it never returns `null`.)
* Use source list from the compiler to track invalidated files.
* Revert accidental change
* Fix first-time-seen-the-file logic
* Fix/simplify invalidate logic now that we can rely on compiler to let us know what is the cut-off point for invalidation.
* Update devfs mock to accommodate for new fields
* Fix deleted files case
* Analyzer found missing final
* some space formattings
* always use blocks in if-else if a block is used
* format spaces in for and while
* allow multiline if conditions
* fix missing space
* add trailing commas on list/map/parameters
* add trailing commas on Invocation with nb of arg>1
* add commas for widget containing widgets
* add trailing commas if instantiation contains trailing comma
* revert bad change
* Don't send accept/reject if compilation never started.
Ensure that we wait for reject's response since that is async operation.
Fixes https://github.com/flutter/flutter/issues/27120.
* Fix analysis errors
* Rename flag. Ensure we raise it on first compilation too.