From 98ea50199562c0ad5d8989da134d28900f902f44 Mon Sep 17 00:00:00 2001 From: Chris Bracken Date: Fri, 31 May 2019 21:53:30 -0700 Subject: [PATCH] Revert "Add real-er restart for web using webkit inspection protocol (#33629)" (#33703) Revert "fix devicelab manfiest (#33698)" This reverts commit 5a6a00dc54cb9c5f6865fd31f930ca5665a0e4af. This reverts commit 0d79f0fc79f1ab46f80a3d8d734fdadccea1fb4a. --- dev/automated_tests/pubspec.yaml | 4 +- dev/benchmarks/complex_layout/pubspec.yaml | 4 +- dev/benchmarks/macrobenchmarks/pubspec.yaml | 4 +- dev/benchmarks/microbenchmarks/pubspec.yaml | 4 +- dev/bots/pubspec.yaml | 6 +- .../bin/tasks/linux_chrome_dev_mode.dart | 10 - .../bin/tasks/macos_chrome_dev_mode.dart | 10 - .../bin/tasks/windows_chrome_dev_mode.dart | 10 - .../lib/tasks/web_dev_mode_tests.dart | 139 -------------- dev/devicelab/manifest.yaml | 21 --- dev/devicelab/pubspec.yaml | 4 +- .../android_semantics_testing/pubspec.yaml | 4 +- .../android_views/pubspec.yaml | 4 +- dev/integration_tests/channels/pubspec.yaml | 4 +- dev/integration_tests/codegen/pubspec.yaml | 4 +- .../external_ui/pubspec.yaml | 4 +- dev/integration_tests/flavors/pubspec.yaml | 4 +- .../image_loading/pubspec.yaml | 6 +- .../platform_interaction/pubspec.yaml | 4 +- .../simple_codegen/pubspec.yaml | 4 +- dev/integration_tests/ui/pubspec.yaml | 4 +- dev/manual_tests/pubspec.yaml | 4 +- dev/snippets/pubspec.yaml | 4 +- dev/tools/gen_keycodes/pubspec.yaml | 4 +- dev/tools/pubspec.yaml | 6 +- dev/tools/vitool/pubspec.yaml | 4 +- examples/catalog/pubspec.yaml | 4 +- examples/flutter_gallery/pubspec.yaml | 4 +- examples/platform_channel/pubspec.yaml | 4 +- examples/stocks/pubspec.yaml | 4 +- packages/flutter/pubspec.yaml | 4 +- packages/flutter_driver/pubspec.yaml | 4 +- packages/flutter_goldens/pubspec.yaml | 4 +- packages/flutter_localizations/pubspec.yaml | 4 +- .../flutter_tools/lib/src/context_runner.dart | 2 +- .../lib/src/resident_web_runner.dart | 74 +++----- .../lib/src/web/asset_server.dart | 1 + .../flutter_tools/lib/src/web/chrome.dart | 173 ------------------ .../flutter_tools/lib/src/web/web_device.dart | 47 ++++- packages/flutter_tools/pubspec.yaml | 22 +-- .../flutter_tools/test/web/devices_test.dart | 1 - .../pubspec.yaml | 4 +- 42 files changed, 143 insertions(+), 493 deletions(-) delete mode 100644 dev/devicelab/bin/tasks/linux_chrome_dev_mode.dart delete mode 100644 dev/devicelab/bin/tasks/macos_chrome_dev_mode.dart delete mode 100644 dev/devicelab/bin/tasks/windows_chrome_dev_mode.dart delete mode 100644 dev/devicelab/lib/tasks/web_dev_mode_tests.dart delete mode 100644 packages/flutter_tools/lib/src/web/chrome.dart diff --git a/dev/automated_tests/pubspec.yaml b/dev/automated_tests/pubspec.yaml index 2fffc2419b..c9c2dc5991 100644 --- a/dev/automated_tests/pubspec.yaml +++ b/dev/automated_tests/pubspec.yaml @@ -12,7 +12,7 @@ dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -65,4 +65,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: f3c5 +# PUBSPEC CHECKSUM: 5cc4 diff --git a/dev/benchmarks/complex_layout/pubspec.yaml b/dev/benchmarks/complex_layout/pubspec.yaml index 3b0c7e4ecd..becfef6306 100644 --- a/dev/benchmarks/complex_layout/pubspec.yaml +++ b/dev/benchmarks/complex_layout/pubspec.yaml @@ -43,7 +43,7 @@ dev_dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" csslib: 0.16.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" front_end: 0.1.18 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -82,4 +82,4 @@ flutter: - packages/flutter_gallery_assets/people/square/ali.png - packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png -# PUBSPEC CHECKSUM: f69a +# PUBSPEC CHECKSUM: f699 diff --git a/dev/benchmarks/macrobenchmarks/pubspec.yaml b/dev/benchmarks/macrobenchmarks/pubspec.yaml index f7f56ec595..f12d528aa5 100644 --- a/dev/benchmarks/macrobenchmarks/pubspec.yaml +++ b/dev/benchmarks/macrobenchmarks/pubspec.yaml @@ -43,7 +43,7 @@ dev_dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" csslib: 0.16.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" front_end: 0.1.18 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -79,4 +79,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: f69a +# PUBSPEC CHECKSUM: f699 diff --git a/dev/benchmarks/microbenchmarks/pubspec.yaml b/dev/benchmarks/microbenchmarks/pubspec.yaml index a18484d9aa..64dfdf336b 100644 --- a/dev/benchmarks/microbenchmarks/pubspec.yaml +++ b/dev/benchmarks/microbenchmarks/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -73,4 +73,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 1128 +# PUBSPEC CHECKSUM: ce27 diff --git a/dev/bots/pubspec.yaml b/dev/bots/pubspec.yaml index 3b047a63fb..0fa88143f6 100644 --- a/dev/bots/pubspec.yaml +++ b/dev/bots/pubspec.yaml @@ -7,7 +7,7 @@ environment: dependencies: path: 1.6.2 - args: 1.5.2 + args: 1.5.1 meta: 1.1.6 process: 3.0.9 platform: 2.2.0 @@ -64,7 +64,7 @@ dependencies: yaml: 2.1.15 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: - mockito: 4.1.0 + mockito: 4.0.0 test_api: 0.2.5 -# PUBSPEC CHECKSUM: ee9f +# PUBSPEC CHECKSUM: 7f9d diff --git a/dev/devicelab/bin/tasks/linux_chrome_dev_mode.dart b/dev/devicelab/bin/tasks/linux_chrome_dev_mode.dart deleted file mode 100644 index a11b0ab96e..0000000000 --- a/dev/devicelab/bin/tasks/linux_chrome_dev_mode.dart +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter_devicelab/framework/framework.dart'; -import 'package:flutter_devicelab/tasks/web_dev_mode_tests.dart'; - -Future main() async { - await task(createWebDevModeTest()); -} diff --git a/dev/devicelab/bin/tasks/macos_chrome_dev_mode.dart b/dev/devicelab/bin/tasks/macos_chrome_dev_mode.dart deleted file mode 100644 index a11b0ab96e..0000000000 --- a/dev/devicelab/bin/tasks/macos_chrome_dev_mode.dart +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter_devicelab/framework/framework.dart'; -import 'package:flutter_devicelab/tasks/web_dev_mode_tests.dart'; - -Future main() async { - await task(createWebDevModeTest()); -} diff --git a/dev/devicelab/bin/tasks/windows_chrome_dev_mode.dart b/dev/devicelab/bin/tasks/windows_chrome_dev_mode.dart deleted file mode 100644 index a11b0ab96e..0000000000 --- a/dev/devicelab/bin/tasks/windows_chrome_dev_mode.dart +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter_devicelab/framework/framework.dart'; -import 'package:flutter_devicelab/tasks/web_dev_mode_tests.dart'; - -Future main() async { - await task(createWebDevModeTest()); -} diff --git a/dev/devicelab/lib/tasks/web_dev_mode_tests.dart b/dev/devicelab/lib/tasks/web_dev_mode_tests.dart deleted file mode 100644 index 5a5628f0d1..0000000000 --- a/dev/devicelab/lib/tasks/web_dev_mode_tests.dart +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; -import 'dart:convert'; -import 'dart:io'; - -import 'package:path/path.dart' as path; - -import '../framework/framework.dart'; -import '../framework/utils.dart'; - -final Directory _editedFlutterGalleryDir = dir(path.join(Directory.systemTemp.path, 'edited_flutter_gallery')); -final Directory flutterGalleryDir = dir(path.join(flutterDirectory.path, 'examples/flutter_gallery')); - -TaskFunction createWebDevModeTest() { - return () async { - final List options = [ - '--hot', '-d', 'web', '--verbose', '--resident', '--target=lib/main_web.dart', - ]; - setLocalEngineOptionIfNecessary(options); - int hotRestartCount = 0; - await inDirectory(flutterDirectory, () async { - rmTree(_editedFlutterGalleryDir); - mkdirs(_editedFlutterGalleryDir); - recursiveCopy(flutterGalleryDir, _editedFlutterGalleryDir); - await inDirectory(_editedFlutterGalleryDir, () async { - { - final Process packagesGet = await startProcess( - path.join(flutterDirectory.path, 'bin', 'flutter'), - ['packages', 'get'], - environment: { - 'FLUTTER_WEB': 'true', - }, - ); - await packagesGet.exitCode; - final Process process = await startProcess( - path.join(flutterDirectory.path, 'bin', 'flutter'), - ['run']..addAll(options), - environment: { - 'FLUTTER_WEB': 'true', - }, - ); - - final Completer stdoutDone = Completer(); - final Completer stderrDone = Completer(); - process.stdout - .transform(utf8.decoder) - .transform(const LineSplitter()) - .listen((String line) { - if (line.contains('To hot restart')) { - process.stdin.write('R'); - } - if (line.contains('Restarted')) { - if (hotRestartCount == 0) { - // Update the file and reload again. - final File appDartSource = file(path.join( - _editedFlutterGalleryDir.path, 'lib/gallery/app.dart', - )); - appDartSource.writeAsStringSync( - appDartSource.readAsStringSync().replaceFirst( - "'Flutter Gallery'", "'Updated Flutter Gallery'", - ) - ); - process.stdin.writeln('R'); - ++hotRestartCount; - } else { - // Quit after second hot restart. - process.stdin.writeln('q'); - } - } - print('stdout: $line'); - }, onDone: () { - stdoutDone.complete(); - }); - process.stderr - .transform(utf8.decoder) - .transform(const LineSplitter()) - .listen((String line) { - print('stderr: $line'); - }, onDone: () { - stderrDone.complete(); - }); - - await Future.wait(>[ - stdoutDone.future, - stderrDone.future, - ]); - await process.exitCode; - - } - - // Start `flutter run` again to make sure it loads from the previous - // state. dev compilers loads up from previously compiled JavaScript. - { - final Process process = await startProcess( - path.join(flutterDirectory.path, 'bin', 'flutter'), - ['run']..addAll(options), - environment: { - 'FLUTTER_WEB': 'true', - }, - ); - final Completer stdoutDone = Completer(); - final Completer stderrDone = Completer(); - process.stdout - .transform(utf8.decoder) - .transform(const LineSplitter()) - .listen((String line) { - if (line.contains('To hot restart')) { - process.stdin.write('R'); - } - if (line.contains('Restarted')) { - process.stdin.writeln('q'); - } - print('stdout: $line'); - }, onDone: () { - stdoutDone.complete(); - }); - process.stderr - .transform(utf8.decoder) - .transform(const LineSplitter()) - .listen((String line) { - print('stderr: $line'); - }, onDone: () { - stderrDone.complete(); - }); - - await Future.wait(>[ - stdoutDone.future, - stderrDone.future, - ]); - await process.exitCode; - } - }); - }); - return TaskResult.success(null); - }; -} diff --git a/dev/devicelab/manifest.yaml b/dev/devicelab/manifest.yaml index 581bbebb67..0c976c9b95 100644 --- a/dev/devicelab/manifest.yaml +++ b/dev/devicelab/manifest.yaml @@ -125,13 +125,6 @@ tasks: stage: devicelab_win required_agent_capabilities: ["windows/android"] - windows_chrome_dev_mode: - description: > - Run flutter web on the devicelab and hot restart. - stage: devicelab_win - required_agent_capabilities: ["windows/android"] - flaky: true - # Android on-device tests complex_layout_scroll_perf__timeline_summary: @@ -331,13 +324,6 @@ tasks: stage: devicelab required_agent_capabilities: ["linux/android"] - linux_chrome_dev_mode: - description: > - Run flutter web on the devicelab and hot restart. - stage: devicelab - required_agent_capabilities: ["linux/android"] - flaky: true - # iOS on-device tests flavors_test_ios: @@ -435,13 +421,6 @@ tasks: stage: devicelab_ios required_agent_capabilities: ["mac/ios"] - macos_chrome_dev_mode: - description: > - Run flutter web on the devicelab and hot restart. - stage: devicelab_ios - required_agent_capabilities: ["mac/ios"] - flaky: true - # Tests running on Windows host flavors_test_win: diff --git a/dev/devicelab/pubspec.yaml b/dev/devicelab/pubspec.yaml index 7720b330a7..db2cd556fd 100644 --- a/dev/devicelab/pubspec.yaml +++ b/dev/devicelab/pubspec.yaml @@ -8,7 +8,7 @@ environment: sdk: ">=2.0.0-dev.68.0 <3.0.0" dependencies: - args: 1.5.2 + args: 1.5.1 file: 5.0.8 image: 2.1.3 meta: 1.1.6 @@ -73,4 +73,4 @@ dev_dependencies: watcher: 0.9.7+10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 2.1.15 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: e419 +# PUBSPEC CHECKSUM: b018 diff --git a/dev/integration_tests/android_semantics_testing/pubspec.yaml b/dev/integration_tests/android_semantics_testing/pubspec.yaml index dd9f6acac6..571f789961 100644 --- a/dev/integration_tests/android_semantics_testing/pubspec.yaml +++ b/dev/integration_tests/android_semantics_testing/pubspec.yaml @@ -9,7 +9,7 @@ dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -63,4 +63,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 820f +# PUBSPEC CHECKSUM: d60e diff --git a/dev/integration_tests/android_views/pubspec.yaml b/dev/integration_tests/android_views/pubspec.yaml index 74356bdac2..bf9e305910 100644 --- a/dev/integration_tests/android_views/pubspec.yaml +++ b/dev/integration_tests/android_views/pubspec.yaml @@ -40,7 +40,7 @@ dev_dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" csslib: 0.16.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" front_end: 0.1.18 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -76,4 +76,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: fdbf +# PUBSPEC CHECKSUM: 10be diff --git a/dev/integration_tests/channels/pubspec.yaml b/dev/integration_tests/channels/pubspec.yaml index a0a74cdceb..150a7685df 100644 --- a/dev/integration_tests/channels/pubspec.yaml +++ b/dev/integration_tests/channels/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -67,4 +67,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 820f +# PUBSPEC CHECKSUM: d60e diff --git a/dev/integration_tests/codegen/pubspec.yaml b/dev/integration_tests/codegen/pubspec.yaml index baca4ae8db..229c3e4f0f 100644 --- a/dev/integration_tests/codegen/pubspec.yaml +++ b/dev/integration_tests/codegen/pubspec.yaml @@ -35,7 +35,7 @@ dev_dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" csslib: 0.16.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" front_end: 0.1.18 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -74,4 +74,4 @@ builders: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 820f +# PUBSPEC CHECKSUM: d60e diff --git a/dev/integration_tests/external_ui/pubspec.yaml b/dev/integration_tests/external_ui/pubspec.yaml index 8827df8515..17e47393b1 100644 --- a/dev/integration_tests/external_ui/pubspec.yaml +++ b/dev/integration_tests/external_ui/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -67,4 +67,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 820f +# PUBSPEC CHECKSUM: d60e diff --git a/dev/integration_tests/flavors/pubspec.yaml b/dev/integration_tests/flavors/pubspec.yaml index d6a9adaca7..8ef036a1f0 100644 --- a/dev/integration_tests/flavors/pubspec.yaml +++ b/dev/integration_tests/flavors/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -67,4 +67,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 820f +# PUBSPEC CHECKSUM: d60e diff --git a/dev/integration_tests/image_loading/pubspec.yaml b/dev/integration_tests/image_loading/pubspec.yaml index 9d2f5c60e3..09b3790fed 100644 --- a/dev/integration_tests/image_loading/pubspec.yaml +++ b/dev/integration_tests/image_loading/pubspec.yaml @@ -5,10 +5,10 @@ dependencies: flutter: sdk: flutter test: 1.6.3 - mockito: 4.1.0 + mockito: 4.0.0 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -60,4 +60,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 8420 +# PUBSPEC CHECKSUM: bf1e diff --git a/dev/integration_tests/platform_interaction/pubspec.yaml b/dev/integration_tests/platform_interaction/pubspec.yaml index 9e483e4601..8171255894 100644 --- a/dev/integration_tests/platform_interaction/pubspec.yaml +++ b/dev/integration_tests/platform_interaction/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -67,4 +67,4 @@ dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 820f +# PUBSPEC CHECKSUM: d60e diff --git a/dev/integration_tests/simple_codegen/pubspec.yaml b/dev/integration_tests/simple_codegen/pubspec.yaml index 024082e007..3f13bf2fbf 100644 --- a/dev/integration_tests/simple_codegen/pubspec.yaml +++ b/dev/integration_tests/simple_codegen/pubspec.yaml @@ -5,7 +5,7 @@ dependencies: build: 1.1.4 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" collection: 1.14.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -32,4 +32,4 @@ environment: # The pub client defaults to an <2.0.0 sdk constraint which we need to explicitly overwrite. sdk: ">=2.0.0-dev.68.0 <3.0.0" -# PUBSPEC CHECKSUM: 069b +# PUBSPEC CHECKSUM: 669a diff --git a/dev/integration_tests/ui/pubspec.yaml b/dev/integration_tests/ui/pubspec.yaml index cba14c5914..3454f9d59e 100644 --- a/dev/integration_tests/ui/pubspec.yaml +++ b/dev/integration_tests/ui/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" archive: 2.0.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -77,4 +77,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 3129 +# PUBSPEC CHECKSUM: 1b28 diff --git a/dev/manual_tests/pubspec.yaml b/dev/manual_tests/pubspec.yaml index 4ceeef249b..703c255a9c 100644 --- a/dev/manual_tests/pubspec.yaml +++ b/dev/manual_tests/pubspec.yaml @@ -17,7 +17,7 @@ dev_dependencies: flutter_test: sdk: flutter - mockito: 4.1.0 + mockito: 4.0.0 async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -36,4 +36,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 0ba0 +# PUBSPEC CHECKSUM: 949f diff --git a/dev/snippets/pubspec.yaml b/dev/snippets/pubspec.yaml index 9422e4aac9..f0502917b2 100644 --- a/dev/snippets/pubspec.yaml +++ b/dev/snippets/pubspec.yaml @@ -13,7 +13,7 @@ dartdoc: nodoc: true dependencies: - args: 1.5.2 + args: 1.5.1 dart_style: 1.2.7 meta: 1.1.6 platform: 2.2.0 @@ -98,4 +98,4 @@ executables: vm_service_client: 0.2.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 1.0.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 052d +# PUBSPEC CHECKSUM: 6b2c diff --git a/dev/tools/gen_keycodes/pubspec.yaml b/dev/tools/gen_keycodes/pubspec.yaml index cabc93895c..0b1f93500b 100644 --- a/dev/tools/gen_keycodes/pubspec.yaml +++ b/dev/tools/gen_keycodes/pubspec.yaml @@ -6,7 +6,7 @@ environment: sdk: ">=2.0.0-dev.68.0 <3.0.0" dependencies: - args: 1.5.2 + args: 1.5.1 http: 0.12.0+2 path: 1.6.2 platform: 2.2.0 @@ -22,4 +22,4 @@ dependencies: term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 24d4 +# PUBSPEC CHECKSUM: 8bd3 diff --git a/dev/tools/pubspec.yaml b/dev/tools/pubspec.yaml index be0a7f7cca..bf6f713887 100644 --- a/dev/tools/pubspec.yaml +++ b/dev/tools/pubspec.yaml @@ -7,7 +7,7 @@ environment: dependencies: archive: 2.0.9 - args: 1.5.2 + args: 1.5.1 http: 0.12.0+2 intl: 0.15.8 meta: 1.1.6 @@ -30,11 +30,11 @@ dependencies: dev_dependencies: test_api: 0.2.5 - mockito: 4.1.0 + mockito: 4.0.0 boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" matcher: 0.12.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" stack_trace: 1.9.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" stream_channel: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: a711 +# PUBSPEC CHECKSUM: 470f diff --git a/dev/tools/vitool/pubspec.yaml b/dev/tools/vitool/pubspec.yaml index e7fc5a7f0b..c9c6437fe7 100644 --- a/dev/tools/vitool/pubspec.yaml +++ b/dev/tools/vitool/pubspec.yaml @@ -9,7 +9,7 @@ environment: sdk: ">=2.0.0-dev.68.0 <3.0.0" dependencies: - args: 1.5.2 + args: 1.5.1 vector_math: 2.0.8 xml: 3.5.0 @@ -37,4 +37,4 @@ dev_dependencies: term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.2.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 3d4e +# PUBSPEC CHECKSUM: b74d diff --git a/examples/catalog/pubspec.yaml b/examples/catalog/pubspec.yaml index 70e2c7e992..f5f77ec051 100644 --- a/examples/catalog/pubspec.yaml +++ b/examples/catalog/pubspec.yaml @@ -23,7 +23,7 @@ dev_dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -73,4 +73,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 25f9 +# PUBSPEC CHECKSUM: 5ff8 diff --git a/examples/flutter_gallery/pubspec.yaml b/examples/flutter_gallery/pubspec.yaml index 0463f8d1dc..780e46c6ff 100644 --- a/examples/flutter_gallery/pubspec.yaml +++ b/examples/flutter_gallery/pubspec.yaml @@ -39,7 +39,7 @@ dev_dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" convert: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -253,4 +253,4 @@ flutter: - asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Regular.ttf - asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Light.ttf -# PUBSPEC CHECKSUM: e061 +# PUBSPEC CHECKSUM: 8760 diff --git a/examples/platform_channel/pubspec.yaml b/examples/platform_channel/pubspec.yaml index 50bc7d5e75..9433dfa85d 100644 --- a/examples/platform_channel/pubspec.yaml +++ b/examples/platform_channel/pubspec.yaml @@ -21,7 +21,7 @@ dev_dependencies: test: 1.6.3 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -72,4 +72,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 25f9 +# PUBSPEC CHECKSUM: 5ff8 diff --git a/examples/stocks/pubspec.yaml b/examples/stocks/pubspec.yaml index f10e89a261..e9aea00083 100644 --- a/examples/stocks/pubspec.yaml +++ b/examples/stocks/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: isolate: 2.0.2 analyzer: 0.36.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - args: 1.5.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + args: 1.5.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" collection: 1.14.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -62,4 +62,4 @@ dev_dependencies: flutter: uses-material-design: true -# PUBSPEC CHECKSUM: 69b8 +# PUBSPEC CHECKSUM: 63b7 diff --git a/packages/flutter/pubspec.yaml b/packages/flutter/pubspec.yaml index e4afaebfe5..a035993d1b 100644 --- a/packages/flutter/pubspec.yaml +++ b/packages/flutter/pubspec.yaml @@ -22,7 +22,7 @@ dev_dependencies: sdk: flutter flutter_goldens: sdk: flutter - mockito: 4.1.0 + mockito: 4.0.0 async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -42,4 +42,4 @@ dev_dependencies: term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.2.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: 45dd +# PUBSPEC CHECKSUM: 94dc diff --git a/packages/flutter_driver/pubspec.yaml b/packages/flutter_driver/pubspec.yaml index 70c267920f..eb36b72078 100644 --- a/packages/flutter_driver/pubspec.yaml +++ b/packages/flutter_driver/pubspec.yaml @@ -43,7 +43,7 @@ dependencies: vector_math: 2.0.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: - mockito: 4.1.0 + mockito: 4.0.0 quiver: 2.0.3 -# PUBSPEC CHECKSUM: ef8e +# PUBSPEC CHECKSUM: b48d diff --git a/packages/flutter_goldens/pubspec.yaml b/packages/flutter_goldens/pubspec.yaml index cf846a1cb3..2a53afc8a4 100644 --- a/packages/flutter_goldens/pubspec.yaml +++ b/packages/flutter_goldens/pubspec.yaml @@ -33,6 +33,6 @@ dependencies: vector_math: 2.0.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: - mockito: 4.1.0 + mockito: 4.0.0 -# PUBSPEC CHECKSUM: 926b +# PUBSPEC CHECKSUM: 046a diff --git a/packages/flutter_localizations/pubspec.yaml b/packages/flutter_localizations/pubspec.yaml index 7c50e3dd40..d73ddefd18 100644 --- a/packages/flutter_localizations/pubspec.yaml +++ b/packages/flutter_localizations/pubspec.yaml @@ -20,7 +20,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - mockito: 4.1.0 + mockito: 4.0.0 async: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" boolean_selector: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -35,4 +35,4 @@ dev_dependencies: term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.2.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" -# PUBSPEC CHECKSUM: c3de +# PUBSPEC CHECKSUM: 4ddd diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart index e15a3ae4bc..182130a5dc 100644 --- a/packages/flutter_tools/lib/src/context_runner.dart +++ b/packages/flutter_tools/lib/src/context_runner.dart @@ -43,8 +43,8 @@ import 'macos/xcode_validator.dart'; import 'run_hot.dart'; import 'usage.dart'; import 'version.dart'; -import 'web/chrome.dart'; import 'web/compile.dart'; +import 'web/web_device.dart'; import 'windows/windows_workflow.dart'; Future runInContext( diff --git a/packages/flutter_tools/lib/src/resident_web_runner.dart b/packages/flutter_tools/lib/src/resident_web_runner.dart index b9523b85b9..ba774a6444 100644 --- a/packages/flutter_tools/lib/src/resident_web_runner.dart +++ b/packages/flutter_tools/lib/src/resident_web_runner.dart @@ -5,14 +5,11 @@ import 'dart:async'; import 'package:meta/meta.dart'; -import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart'; import 'asset.dart'; import 'base/common.dart'; import 'base/file_system.dart'; -import 'base/logger.dart'; import 'base/terminal.dart'; -import 'base/utils.dart'; import 'build_info.dart'; import 'bundle.dart'; import 'dart/package_map.dart'; @@ -22,8 +19,8 @@ import 'project.dart'; import 'resident_runner.dart'; import 'run_hot.dart'; import 'web/asset_server.dart'; -import 'web/chrome.dart'; import 'web/compile.dart'; +import 'web/web_device.dart'; /// A hot-runner which handles browser specific delegation. class ResidentWebRunner extends ResidentRunner { @@ -47,7 +44,6 @@ class ResidentWebRunner extends ResidentRunner { WebAssetServer _server; ProjectFileInvalidator projectFileInvalidator; DateTime _lastCompiled; - WipConnection _connection; final FlutterProject flutterProject; @override @@ -62,16 +58,12 @@ class ResidentWebRunner extends ResidentRunner { } @override - Future cleanupAfterSignal() async { - await _connection.sendCommand('Browser.close'); - _connection = null; + Future cleanupAfterSignal() { return _server?.dispose(); } @override - Future cleanupAtFinish() async { - await _connection?.sendCommand('Browser.close'); - _connection = null; + Future cleanupAtFinish() { return _server?.dispose(); } @@ -136,15 +128,7 @@ class ResidentWebRunner extends ResidentRunner { await _server.initialize(); // Step 3: Spawn an instance of Chrome and direct it to the created server. - final String url = 'http://localhost:${_server.port}'; - final Chrome chrome = await chromeLauncher.launch(url); - final ChromeTab chromeTab = await chrome.chromeConnection.getTab((ChromeTab chromeTab) { - return chromeTab.url.contains(url); // we don't care about trailing slashes or # - }); - _connection = await chromeTab.connect(); - _connection.onClose.listen((WipConnection connection) { - appFinished(); - }); + await chromeLauncher.launch('http:localhost:${_server.port}'); // We don't support the debugging proxy yet. appStartedCompleter?.complete(); @@ -155,39 +139,23 @@ class ResidentWebRunner extends ResidentRunner { } @override - Future restart({ - bool fullRestart = false, - bool pauseAfterRestart = false, - String reason, - bool benchmarkMode = false, - }) async { - final Stopwatch timer = Stopwatch()..start(); - final Status status = logger.startProgress( - 'Performing hot restart...', - timeout: timeoutConfiguration.fastOperation, - progressId: 'hot.restart', + Future restart( + {bool fullRestart = false, + bool pauseAfterRestart = false, + String reason, + bool benchmarkMode = false}) async { + final List invalidatedSources = ProjectFileInvalidator.findInvalidated( + lastCompiled: _lastCompiled, + urisToMonitor: [ + for (FileSystemEntity entity in flutterProject.directory + .childDirectory('lib') + .listSync(recursive: true)) + if (entity is File && entity.path.endsWith('.dart')) entity.uri + ], // Add new class to track this for web. + packagesPath: PackageMap.globalPackagesPath, ); - OperationResult result = OperationResult.ok; - try { - final List invalidatedSources = ProjectFileInvalidator.findInvalidated( - lastCompiled: _lastCompiled, - urisToMonitor: [ - for (FileSystemEntity entity in flutterProject.directory - .childDirectory('lib') - .listSync(recursive: true)) - if (entity is File && entity.path.endsWith('.dart')) entity.uri - ], // Add new class to track this for web. - packagesPath: PackageMap.globalPackagesPath, - ); - await webCompilationProxy.invalidate(inputs: invalidatedSources); - await _connection.sendCommand('Page.reload'); - await Future.delayed(const Duration(milliseconds: 150)); - } catch (err) { - result = OperationResult(1, err.toString()); - } finally { - printStatus('Restarted application in ${getElapsedAsMilliseconds(timer.elapsed)}.'); - status.cancel(); - } - return result; + await webCompilationProxy.invalidate(inputs: invalidatedSources); + printStatus('Sources updated, refresh browser'); + return OperationResult.ok; } } diff --git a/packages/flutter_tools/lib/src/web/asset_server.dart b/packages/flutter_tools/lib/src/web/asset_server.dart index 730692c000..d4ad143b3c 100644 --- a/packages/flutter_tools/lib/src/web/asset_server.dart +++ b/packages/flutter_tools/lib/src/web/asset_server.dart @@ -170,6 +170,7 @@ class WebAssetServer { Future _completeRequest(HttpRequest request, File file, [String contentType = 'text']) async { + printTrace('looking for ${request.uri} at ${file.path}'); if (!file.existsSync()) { request.response.statusCode = HttpStatus.notFound; await request.response.close(); diff --git a/packages/flutter_tools/lib/src/web/chrome.dart b/packages/flutter_tools/lib/src/web/chrome.dart deleted file mode 100644 index 1f7e5f19ef..0000000000 --- a/packages/flutter_tools/lib/src/web/chrome.dart +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart'; - -import '../base/common.dart'; -import '../base/context.dart'; -import '../base/file_system.dart'; -import '../base/io.dart'; -import '../base/os.dart'; -import '../base/platform.dart'; -import '../base/process_manager.dart'; -import '../convert.dart'; - -/// The [ChromeLauncher] instance. -ChromeLauncher get chromeLauncher => context.get(); - -const String _kChromeEnvironment = 'CHROME_EXECUTABLE'; -const String _kLinuxExecutable = 'google-chrome'; -const String _kMacOSExecutable = - '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'; -const String _kWindowsExecutable = r'Google\Chrome\Application\chrome.exe'; -final List _kWindowsPrefixes = [ - platform.environment['LOCALAPPDATA'], - platform.environment['PROGRAMFILES'], - platform.environment['PROGRAMFILES(X86)'] -]; - -// Responsible for launching chrome with devtools configured. -class ChromeLauncher { - const ChromeLauncher(); - - static final Completer _currentCompleter = Completer(); - - /// Launch the chrome browser to a particular `host` page. - Future launch(String url) async { - final String chromeExecutable = _findExecutable(); - final Directory dataDir = fs.systemTempDirectory.createTempSync(); - final int port = await os.findFreePort(); - final List args = [ - chromeExecutable, - // Using a tmp directory ensures that a new instance of chrome launches - // allowing for the remote debug port to be enabled. - '--user-data-dir=${dataDir.path}', - '--remote-debugging-port=$port', - // When the DevTools has focus we don't want to slow down the application. - '--disable-background-timer-throttling', - // Since we are using a temp profile, disable features that slow the - // Chrome launch. - '--disable-extensions', - '--disable-popup-blocking', - '--bwsi', - '--no-first-run', - '--no-default-browser-check', - '--disable-default-apps', - '--disable-translate', - url, - ]; - final Process process = await processManager.start(args); - - // Wait until the DevTools are listening before trying to connect. - await process.stderr - .transform(utf8.decoder) - .transform(const LineSplitter()) - .firstWhere((String line) => line.startsWith('DevTools listening')) - .timeout(const Duration(seconds: 60), onTimeout: () { - throwToolExit('Unable to connect to Chrome DevTools.'); - return null; - }); - - return _connect(Chrome._( - port, - ChromeConnection('localhost', port), - process: process, - dataDir: dataDir, - )); - } - - static Future _connect(Chrome chrome) async { - if (_currentCompleter.isCompleted) { - throwToolExit('Only one instance of chrome can be started.'); - } - // The connection is lazy. Try a simple call to make sure the provided - // connection is valid. - try { - await chrome.chromeConnection.getTabs(); - } catch (e) { - await chrome.close(); - throwToolExit( - 'Unable to connect to Chrome debug port: ${chrome.debugPort}\n $e'); - } - _currentCompleter.complete(chrome); - return chrome; - } - - /// Connects to an instance of Chrome with an open debug port. - static Future fromExisting(int port) async => - _connect(Chrome._(port, ChromeConnection('localhost', port))); - - static Future get connectedInstance => _currentCompleter.future; - - static String _findExecutable() { - if (platform.environment.containsKey(_kChromeEnvironment)) { - return platform.environment[_kChromeEnvironment]; - } - if (platform.isLinux) { - // Don't check if this exists, it isn't a file. - return _kLinuxExecutable; - } - if (platform.isMacOS) { - if (!fs.file(_kMacOSExecutable).existsSync()) { - throwToolExit('Chrome executable not found at $_kMacOSExecutable'); - } - return _kMacOSExecutable; - } - if (platform.isWindows) { - final String windowsPrefix = _kWindowsPrefixes.firstWhere((String prefix) { - if (prefix == null) { - return false; - } - final String path = fs.path.join(prefix, _kWindowsExecutable); - return fs.file(path).existsSync(); - }, orElse: () => '.'); - final String path = fs.path.join(windowsPrefix, _kWindowsExecutable); - if (!fs.file(path).existsSync()) { - throwToolExit('Chrome executable not found at $path'); - } - return path; - } - throwToolExit('Platform ${platform.operatingSystem} is not supported.'); - return null; - } -} - -/// A class for managing an instance of Chrome. -class Chrome { - const Chrome._( - this.debugPort, - this.chromeConnection, { - Process process, - Directory dataDir, - }) : _process = process, - _dataDir = dataDir; - - final int debugPort; - final Process _process; - final Directory _dataDir; - final ChromeConnection chromeConnection; - - static Completer _currentCompleter = Completer(); - - Future close() async { - if (_currentCompleter.isCompleted) { - _currentCompleter = Completer(); - } - chromeConnection.close(); - _process?.kill(ProcessSignal.SIGKILL); - await _process?.exitCode; - try { - // Chrome starts another process as soon as it dies that modifies the - // profile information. Give it some time before attempting to delete - // the directory. - await Future.delayed(const Duration(milliseconds: 500)); - await _dataDir?.delete(recursive: true); - } catch (_) { - // Silently fail if we can't clean up the profile information. - // It is a system tmp directory so it should get cleaned up eventually. - } - } -} diff --git a/packages/flutter_tools/lib/src/web/web_device.dart b/packages/flutter_tools/lib/src/web/web_device.dart index 098591d2a2..d8ce9ce3e5 100644 --- a/packages/flutter_tools/lib/src/web/web_device.dart +++ b/packages/flutter_tools/lib/src/web/web_device.dart @@ -5,10 +5,12 @@ import '../application_package.dart'; import '../asset.dart'; import '../base/common.dart'; +import '../base/context.dart'; import '../base/file_system.dart'; import '../base/io.dart'; import '../base/logger.dart'; import '../base/platform.dart'; +import '../base/process_manager.dart'; import '../build_info.dart'; import '../bundle.dart'; import '../device.dart'; @@ -16,7 +18,8 @@ import '../globals.dart'; import '../project.dart'; import '../version.dart'; import '../web/compile.dart'; -import 'chrome.dart'; + +ChromeLauncher get chromeLauncher => context.get(); /// Only launch or display web devices if `FLUTTER_WEB` /// environment variable is set to true. @@ -199,3 +202,45 @@ class WebDevices extends PollingDeviceDiscovery { @override bool get supportsPlatform => flutterWebEnabled; } + +const String _klinuxExecutable = 'google-chrome'; +const String _kMacOSExecutable = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'; +const String _kWindowsExecutable = r'Google\Chrome\Application\chrome.exe'; +final List _kWindowsPrefixes = [ + platform.environment['LOCALAPPDATA'], + platform.environment['PROGRAMFILES'], + platform.environment['PROGRAMFILES(X86)'], +]; + +// Responsible for launching chrome with devtools configured. +class ChromeLauncher { + const ChromeLauncher(); + + /// Launch the chrome browser to a particular `host` page. + Future launch(String host) async { + String executable; + if (platform.isMacOS) { + executable = _kMacOSExecutable; + } else if (platform.isLinux) { + executable = _klinuxExecutable; + } else if (platform.isWindows) { + final String filePath = _kWindowsPrefixes.firstWhere((String prefix) { + if (prefix == null) { + return false; + } + final String path = fs.path.join(prefix, _kWindowsExecutable); + return fs.file(path).existsSync(); + }, orElse: () => '.'); + executable = filePath; + } else { + throwToolExit('Platform ${platform.operatingSystem} is not supported.'); + } + if (!fs.file(executable).existsSync()) { + throwToolExit('Chrome executable not found at $executable'); + } + return processManager.start([ + executable, + host, + ], mode: ProcessStartMode.detached); + } +} diff --git a/packages/flutter_tools/pubspec.yaml b/packages/flutter_tools/pubspec.yaml index 546b4784a3..2c8b87bf61 100644 --- a/packages/flutter_tools/pubspec.yaml +++ b/packages/flutter_tools/pubspec.yaml @@ -10,7 +10,7 @@ environment: dependencies: # To update these, use "flutter update-packages --force-upgrade". archive: 2.0.9 - args: 1.5.2 + args: 1.5.1 bsdiff: 0.1.0 completion: 0.2.1+1 coverage: 0.12.4 @@ -33,7 +33,6 @@ dependencies: usage: 3.4.1 vm_service_client: 0.2.6+2 web_socket_channel: 1.0.13 - webkit_inspection_protocol: 0.4.0 xml: 3.5.0 yaml: 2.1.15 flutter_goldens_client: @@ -62,7 +61,7 @@ dependencies: build_config: 0.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" build_resolvers: 1.0.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" built_collection: 4.2.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - built_value: 6.6.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + built_value: 6.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" convert: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" csslib: 0.16.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -79,9 +78,6 @@ dependencies: kernel: 0.3.18 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" logging: 0.11.3+2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" matcher: 0.12.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - mime: 0.9.6+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - multi_server_socket: 1.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - node_preamble: 1.4.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" package_resolver: 1.0.10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" path: 1.6.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pedantic: 1.7.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -92,8 +88,6 @@ dependencies: pubspec_parse: 0.1.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" scratch_space: 0.0.3+2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" shelf: 0.7.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - shelf_packages_handler: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" - shelf_static: 0.2.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" shelf_web_socket: 0.2.3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" source_map_stack_trace: 1.1.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" source_maps: 0.10.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" @@ -107,15 +101,21 @@ dependencies: dev_dependencies: collection: 1.14.11 - mockito: 4.1.0 + mockito: 4.0.0 file_testing: 2.1.0 - vm_service_lib: 3.17.0+1 + vm_service_lib: 3.17.0 build_runner: 1.4.0 build_vm_compilers: 1.0.0 build_test: 0.10.7+3 + mime: 0.9.6+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + multi_server_socket: 1.0.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + node_preamble: 1.4.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + shelf_packages_handler: 1.0.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + shelf_static: 0.2.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" + dartdoc: # Exclude this package from the hosted API docs. nodoc: true -# PUBSPEC CHECKSUM: 25f1 +# PUBSPEC CHECKSUM: b34a diff --git a/packages/flutter_tools/test/web/devices_test.dart b/packages/flutter_tools/test/web/devices_test.dart index 7ab085629d..77dac14e70 100644 --- a/packages/flutter_tools/test/web/devices_test.dart +++ b/packages/flutter_tools/test/web/devices_test.dart @@ -5,7 +5,6 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/project.dart'; -import 'package:flutter_tools/src/web/chrome.dart'; import 'package:flutter_tools/src/web/compile.dart'; import 'package:flutter_tools/src/web/web_device.dart'; import 'package:mockito/mockito.dart'; diff --git a/packages/fuchsia_remote_debug_protocol/pubspec.yaml b/packages/fuchsia_remote_debug_protocol/pubspec.yaml index c5cbdba3be..67b6225b96 100644 --- a/packages/fuchsia_remote_debug_protocol/pubspec.yaml +++ b/packages/fuchsia_remote_debug_protocol/pubspec.yaml @@ -42,6 +42,6 @@ dependencies: vm_service_client: 0.2.6+2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" dev_dependencies: - mockito: 4.1.0 + mockito: 4.0.0 -# PUBSPEC CHECKSUM: ef8e +# PUBSPEC CHECKSUM: b48d