From 541e215a88fb9d5698b6f8a978deccc3a0ccd885 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Thu, 9 Mar 2023 13:04:22 -0800 Subject: [PATCH 1/7] Add dart:_web_sdk_version --- lib/web_ui/lib/src/engine/configuration.dart | 4 +- lib/web_ui/pubspec.yaml | 3 ++ third_party/web_sdk_version/BUILD.gn | 43 +++++++++++++++++++ .../web_sdk_version/lib/web_sdk_version.dart | 7 +++ .../lib/web_sdk_version/web_sdk_version.dart | 10 +++++ third_party/web_sdk_version/pubspec.yaml | 6 +++ web_sdk/BUILD.gn | 10 +++++ web_sdk/libraries.json | 9 ++++ web_sdk/libraries.yaml | 9 ++++ web_sdk/sdk_rewriter.dart | 1 + 10 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 third_party/web_sdk_version/BUILD.gn create mode 100644 third_party/web_sdk_version/lib/web_sdk_version.dart create mode 100644 third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart create mode 100644 third_party/web_sdk_version/pubspec.yaml diff --git a/lib/web_ui/lib/src/engine/configuration.dart b/lib/web_ui/lib/src/engine/configuration.dart index e153286f711f8..3a923add01387 100644 --- a/lib/web_ui/lib/src/engine/configuration.dart +++ b/lib/web_ui/lib/src/engine/configuration.dart @@ -44,6 +44,8 @@ @JS() library configuration; +import 'package:web_sdk_version/web_sdk_version.dart'; + import 'package:js/js.dart'; import 'package:meta/meta.dart'; import 'canvaskit/renderer.dart'; @@ -182,7 +184,7 @@ class FlutterConfiguration { String get canvasKitBaseUrl => _configuration?.canvasKitBaseUrl ?? _defaultCanvasKitBaseUrl; static const String _defaultCanvasKitBaseUrl = String.fromEnvironment( 'FLUTTER_WEB_CANVASKIT_URL', - defaultValue: 'https://unpkg.com/canvaskit-wasm@$_canvaskitVersion/bin/', + defaultValue: 'https://gstatic.com/flutter-canvaskit/$flutterWebSdkVersion/' ); /// The variant of CanvasKit to download. diff --git a/lib/web_ui/pubspec.yaml b/lib/web_ui/pubspec.yaml index f35dafac5ca0f..f3f239f86e55c 100644 --- a/lib/web_ui/pubspec.yaml +++ b/lib/web_ui/pubspec.yaml @@ -17,6 +17,9 @@ dependencies: web_test_fonts: path: ../../third_party/web_test_fonts + web_sdk_version: + path: ../../third_party/web_sdk_version + dev_dependencies: analyzer: 5.2.0 archive: 3.1.2 diff --git a/third_party/web_sdk_version/BUILD.gn b/third_party/web_sdk_version/BUILD.gn new file mode 100644 index 0000000000000..5cb367593894b --- /dev/null +++ b/third_party/web_sdk_version/BUILD.gn @@ -0,0 +1,43 @@ +import("//flutter/shell/version.gni") +import("//third_party/dart/build/dart/dart_action.gni") + +dart_sdk_package_config = "//third_party/dart/.dart_tool/package_config.json" + +prebuilt_dart_action("web_sdk_version") { + packages = dart_sdk_package_config + pool = "//flutter/build/dart:dart_pool" + + script = "version_writer.dart" + inputs = [ "version_writer.dart" ] + + stamp_location = "$target_gen_dir/$target_name.stamp" + outputs = [ + stamp_location, + invoker.output_dir, + ] + + input_dir = rebase_path(invoker.input_dir) + output_dir = rebase_path(invoker.output_dir) + + args = [ + "--output-dir=$output_dir", + "--input-dir=$input_dir", + "--stamp", + rebase_path(stamp_location, root_build_dir), + ] + if (ui) { + args += [ "--ui" ] + } else { + library_name = invoker.library_name + api_file = rebase_path(invoker.api_file) + args += [ + "--library-name=$library_name", + "--api-file=$api_file", + ] + } + + foreach(source_file, source_dart_files) { + path = rebase_path(source_file) + args += [ "--source-file=$path" ] + } +} diff --git a/third_party/web_sdk_version/lib/web_sdk_version.dart b/third_party/web_sdk_version/lib/web_sdk_version.dart new file mode 100644 index 0000000000000..fe6c9c5ebe5e0 --- /dev/null +++ b/third_party/web_sdk_version/lib/web_sdk_version.dart @@ -0,0 +1,7 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +library web_sdk_version; + +export 'web_sdk_version/web_sdk_version.dart'; diff --git a/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart b/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart new file mode 100644 index 0000000000000..6211a718a85a5 --- /dev/null +++ b/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart @@ -0,0 +1,10 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// NOTE: This file is just a stub. The actual file is generated at build time +// with the actual current Git commit SHA. This stub is just here for local +// development. + +/// The Git SHA of the Flutter Engine. +const String flutterWebSdkVersion = 'IF YOU SEE THIS FILE A BUG: https://github.com/flutter/flutter/issues/new?assignees=&labels=&template=2_bug.md&title='; diff --git a/third_party/web_sdk_version/pubspec.yaml b/third_party/web_sdk_version/pubspec.yaml new file mode 100644 index 0000000000000..102ae4aef7f27 --- /dev/null +++ b/third_party/web_sdk_version/pubspec.yaml @@ -0,0 +1,6 @@ +name: web_sdk_version + +publish_to: none + +environment: + sdk: ">=2.12.0-0 <3.0.0" diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index 957510f08ef93..950b59f5436ea 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -4,6 +4,7 @@ import("//flutter/build/zip_bundle.gni") import("//flutter/common/config.gni") +import("//flutter/shell/version/version.gni") import("//third_party/dart/build/dart/dart_action.gni") dart_sdk_package_config = "//third_party/dart/.dart_tool/package_config.json" @@ -24,6 +25,7 @@ web_engine_libraries = [ ":web_unicode_library", ":web_test_fonts_library", ":web_locale_keymap_library", + ":web_sdk_version_library", ] group("web_sdk") { @@ -151,6 +153,12 @@ sdk_rewriter("web_locale_keymap_library") { output_dir = "$root_out_dir/flutter_web_sdk/lib/_web_locale_keymap/" } +generated_file("web_sdk_version_library") { + outputs = [ "$root_out_dir/flutter_web_sdk/lib/_web_sdk_version/web_sdk_version.dart" ] + + contents = "// Copyright 2013 The Flutter Authors. All rights reserved.$0x0A// Use of this source code is governed by a BSD-style license that can be$0x0A// found in the LICENSE file.$0x0A$0x0A@JS()$0x0Alibrary dart._web_sdk_version;$0x0A$0x0Aimport 'dart:_js_annotations';$0x0A$0x0Aconst String flutterWebSdkVersion = '$engine_version';$0x0A" +} + copy("web_ui_library") { sources = [ "//flutter/web_sdk/libraries.json" ] @@ -314,6 +322,8 @@ template("_compile_platform") { "dart:_web_unicode", "--source", "dart:_web_locale_keymap", + "--source", + "dart:_web_sdk_version", ] if (flutter_prebuilt_dart_sdk) { args += [ diff --git a/web_sdk/libraries.json b/web_sdk/libraries.json index b55cd2bac65eb..66e04eb053801 100644 --- a/web_sdk/libraries.json +++ b/web_sdk/libraries.json @@ -26,6 +26,9 @@ }, "_web_test_fonts": { "uri": "lib/_web_test_fonts/web_test_fonts.dart" + }, + "_web_sdk_version": { + "uri": "lib/_web_sdk_version/web_sdk_version.dart" } } }, @@ -54,6 +57,9 @@ }, "_web_test_fonts": { "uri": "lib/_web_test_fonts/web_test_fonts.dart" + }, + "_web_sdk_version": { + "uri": "lib/_web_sdk_version/web_sdk_version.dart" } } }, @@ -82,6 +88,9 @@ }, "_web_test_fonts": { "uri": "lib/_web_test_fonts/web_test_fonts.dart" + }, + "_web_sdk_version": { + "uri": "lib/_web_sdk_version/web_sdk_version.dart" } } } diff --git a/web_sdk/libraries.yaml b/web_sdk/libraries.yaml index d447436aea738..765068efde506 100644 --- a/web_sdk/libraries.yaml +++ b/web_sdk/libraries.yaml @@ -36,6 +36,9 @@ dartdevc: _web_test_fonts: uri: "lib/_web_test_fonts/web_test_fonts.dart" + _web_sdk_version: + uri: "lib/_web_sdk_version/web_sdk_version.dart" + dart2js: include: - {path: "../dart-sdk/lib/libraries.json", target: dart2js} @@ -59,6 +62,9 @@ dart2js: _web_test_fonts: uri: "lib/_web_test_fonts/web_test_fonts.dart" + _web_sdk_version: + uri: "lib/_web_sdk_version/web_sdk_version.dart" + wasm: include: - {path: "../dart-sdk/lib/libraries.json", target: wasm} @@ -81,3 +87,6 @@ wasm: _web_test_fonts: uri: "lib/_web_test_fonts/web_test_fonts.dart" + + _web_sdk_version: + uri: "lib/_web_sdk_version/web_sdk_version.dart" diff --git a/web_sdk/sdk_rewriter.dart b/web_sdk/sdk_rewriter.dart index 77339f913667f..421fd037b81c8 100644 --- a/web_sdk/sdk_rewriter.dart +++ b/web_sdk/sdk_rewriter.dart @@ -96,6 +96,7 @@ final Map extraImportsMap = { 'web_unicode': "import 'dart:_web_unicode';", 'web_test_fonts': "import 'dart:_web_test_fonts';", 'web_locale_keymap': "import 'dart:_web_locale_keymap' as locale_keymap;", + 'web_sdk_version': "import 'dart:_web_sdk_version';", }; // Rewrites the "package"-style web ui library into a dart:ui implementation. From 567bc8b2cf452a3ab9f69c58337f791368b710dc Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Thu, 9 Mar 2023 13:05:59 -0800 Subject: [PATCH 2/7] formatting --- web_sdk/BUILD.gn | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/web_sdk/BUILD.gn b/web_sdk/BUILD.gn index 950b59f5436ea..86931fd239b29 100644 --- a/web_sdk/BUILD.gn +++ b/web_sdk/BUILD.gn @@ -154,7 +154,9 @@ sdk_rewriter("web_locale_keymap_library") { } generated_file("web_sdk_version_library") { - outputs = [ "$root_out_dir/flutter_web_sdk/lib/_web_sdk_version/web_sdk_version.dart" ] + outputs = [ + "$root_out_dir/flutter_web_sdk/lib/_web_sdk_version/web_sdk_version.dart", + ] contents = "// Copyright 2013 The Flutter Authors. All rights reserved.$0x0A// Use of this source code is governed by a BSD-style license that can be$0x0A// found in the LICENSE file.$0x0A$0x0A@JS()$0x0Alibrary dart._web_sdk_version;$0x0A$0x0Aimport 'dart:_js_annotations';$0x0A$0x0Aconst String flutterWebSdkVersion = '$engine_version';$0x0A" } From 0e770220916fca5d82551ce469362ba19c3238a2 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Thu, 9 Mar 2023 13:39:26 -0800 Subject: [PATCH 3/7] Licenses and analysis warnings --- ci/licenses_golden/excluded_files | 5 +++++ ci/licenses_golden/licenses_flutter | 5 +++++ lib/web_ui/lib/src/engine/configuration.dart | 9 ++------- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/ci/licenses_golden/excluded_files b/ci/licenses_golden/excluded_files index 11d1a1aa2f693..1944f89653249 100644 --- a/ci/licenses_golden/excluded_files +++ b/ci/licenses_golden/excluded_files @@ -177,15 +177,18 @@ ../../../flutter/lib/ui/window/platform_message_response_dart_unittests.cc ../../../flutter/lib/ui/window/pointer_data_packet_converter_unittests.cc ../../../flutter/lib/ui/window/pointer_data_packet_unittests.cc +../../../flutter/lib/web_ui/.dart_tool ../../../flutter/lib/web_ui/.gitignore ../../../flutter/lib/web_ui/CODE_CONVENTIONS.md ../../../flutter/lib/web_ui/README.md ../../../flutter/lib/web_ui/analysis_options.yaml +../../../flutter/lib/web_ui/build ../../../flutter/lib/web_ui/dart_test_chrome.yaml ../../../flutter/lib/web_ui/dart_test_edge.yaml ../../../flutter/lib/web_ui/dart_test_firefox.yaml ../../../flutter/lib/web_ui/dart_test_safari.yaml ../../../flutter/lib/web_ui/dev +../../../flutter/lib/web_ui/pubspec.lock ../../../flutter/lib/web_ui/pubspec.yaml ../../../flutter/lib/web_ui/test ../../../flutter/prebuilts @@ -409,6 +412,7 @@ ../../../flutter/third_party/web_locale_keymap/README.md ../../../flutter/third_party/web_locale_keymap/pubspec.yaml ../../../flutter/third_party/web_locale_keymap/test +../../../flutter/third_party/web_sdk_version/pubspec.yaml ../../../flutter/third_party/web_test_fonts/pubspec.yaml ../../../flutter/third_party/web_unicode/README.md ../../../flutter/third_party/web_unicode/pubspec.yaml @@ -1735,6 +1739,7 @@ ../../../third_party/dart/third_party/firefox_jsshell ../../../third_party/dart/third_party/mdn/browser-compat-data/README.google ../../../third_party/dart/third_party/pkg +../../../third_party/dart/third_party/pkg_tested ../../../third_party/dart/third_party/requirejs ../../../third_party/dart/third_party/tcmalloc/.gitignore ../../../third_party/dart/third_party/tcmalloc/OWNERS diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index 5ab7c54fdc49e..74f62aff09338 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -680,6 +680,7 @@ LIBRARY: engine LIBRARY: spring_animation LIBRARY: tonic LIBRARY: txt +LIBRARY: web_sdk_version LIBRARY: web_test_fonts LIBRARY: web_unicode ORIGIN: ../../../flutter/LICENSE @@ -3170,6 +3171,8 @@ ORIGIN: ../../../flutter/third_party/txt/src/txt/platform_fuchsia.cc + ../../../ ORIGIN: ../../../flutter/third_party/txt/src/txt/platform_linux.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/third_party/txt/src/txt/platform_mac.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/third_party/txt/src/txt/platform_windows.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/third_party/web_sdk_version/lib/web_sdk_version.dart + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/third_party/web_test_fonts/lib/web_test_fonts.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/third_party/web_test_fonts/lib/web_test_fonts/web_test_fonts.dart + ../../../flutter/LICENSE ORIGIN: ../../../flutter/third_party/web_unicode/lib/web_unicode.dart + ../../../flutter/LICENSE @@ -5729,6 +5732,8 @@ FILE: ../../../flutter/third_party/txt/src/txt/platform_fuchsia.cc FILE: ../../../flutter/third_party/txt/src/txt/platform_linux.cc FILE: ../../../flutter/third_party/txt/src/txt/platform_mac.mm FILE: ../../../flutter/third_party/txt/src/txt/platform_windows.cc +FILE: ../../../flutter/third_party/web_sdk_version/lib/web_sdk_version.dart +FILE: ../../../flutter/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart FILE: ../../../flutter/third_party/web_test_fonts/lib/web_test_fonts.dart FILE: ../../../flutter/third_party/web_test_fonts/lib/web_test_fonts/web_test_fonts.dart FILE: ../../../flutter/third_party/web_unicode/lib/web_unicode.dart diff --git a/lib/web_ui/lib/src/engine/configuration.dart b/lib/web_ui/lib/src/engine/configuration.dart index 3a923add01387..1307073277d44 100644 --- a/lib/web_ui/lib/src/engine/configuration.dart +++ b/lib/web_ui/lib/src/engine/configuration.dart @@ -44,18 +44,13 @@ @JS() library configuration; -import 'package:web_sdk_version/web_sdk_version.dart'; - import 'package:js/js.dart'; import 'package:meta/meta.dart'; +import 'package:web_sdk_version/web_sdk_version.dart'; + import 'canvaskit/renderer.dart'; import 'dom.dart'; -/// The version of CanvasKit used by the web engine by default. -// DO NOT EDIT THE NEXT LINE OF CODE MANUALLY -// See `lib/web_ui/README.md` for how to roll CanvasKit to a new version. -const String _canvaskitVersion = '0.38.0'; - /// The Web Engine configuration for the current application. FlutterConfiguration get configuration => _configuration ??= FlutterConfiguration.legacy(_jsConfiguration); From 1a5a82b6d4cfb48c3effc27e723ed6c1e59cf664 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Thu, 9 Mar 2023 13:59:08 -0800 Subject: [PATCH 4/7] undo excluded_files change --- ci/licenses_golden/excluded_files | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ci/licenses_golden/excluded_files b/ci/licenses_golden/excluded_files index 1944f89653249..11d1a1aa2f693 100644 --- a/ci/licenses_golden/excluded_files +++ b/ci/licenses_golden/excluded_files @@ -177,18 +177,15 @@ ../../../flutter/lib/ui/window/platform_message_response_dart_unittests.cc ../../../flutter/lib/ui/window/pointer_data_packet_converter_unittests.cc ../../../flutter/lib/ui/window/pointer_data_packet_unittests.cc -../../../flutter/lib/web_ui/.dart_tool ../../../flutter/lib/web_ui/.gitignore ../../../flutter/lib/web_ui/CODE_CONVENTIONS.md ../../../flutter/lib/web_ui/README.md ../../../flutter/lib/web_ui/analysis_options.yaml -../../../flutter/lib/web_ui/build ../../../flutter/lib/web_ui/dart_test_chrome.yaml ../../../flutter/lib/web_ui/dart_test_edge.yaml ../../../flutter/lib/web_ui/dart_test_firefox.yaml ../../../flutter/lib/web_ui/dart_test_safari.yaml ../../../flutter/lib/web_ui/dev -../../../flutter/lib/web_ui/pubspec.lock ../../../flutter/lib/web_ui/pubspec.yaml ../../../flutter/lib/web_ui/test ../../../flutter/prebuilts @@ -412,7 +409,6 @@ ../../../flutter/third_party/web_locale_keymap/README.md ../../../flutter/third_party/web_locale_keymap/pubspec.yaml ../../../flutter/third_party/web_locale_keymap/test -../../../flutter/third_party/web_sdk_version/pubspec.yaml ../../../flutter/third_party/web_test_fonts/pubspec.yaml ../../../flutter/third_party/web_unicode/README.md ../../../flutter/third_party/web_unicode/pubspec.yaml @@ -1739,7 +1735,6 @@ ../../../third_party/dart/third_party/firefox_jsshell ../../../third_party/dart/third_party/mdn/browser-compat-data/README.google ../../../third_party/dart/third_party/pkg -../../../third_party/dart/third_party/pkg_tested ../../../third_party/dart/third_party/requirejs ../../../third_party/dart/third_party/tcmalloc/.gitignore ../../../third_party/dart/third_party/tcmalloc/OWNERS From 858711243078cae679ec3877437d42d1d80e2d11 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Thu, 9 Mar 2023 14:50:02 -0800 Subject: [PATCH 5/7] Fix licenses --- ci/licenses_golden/excluded_files | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/licenses_golden/excluded_files b/ci/licenses_golden/excluded_files index 11d1a1aa2f693..87432c9197022 100644 --- a/ci/licenses_golden/excluded_files +++ b/ci/licenses_golden/excluded_files @@ -409,6 +409,7 @@ ../../../flutter/third_party/web_locale_keymap/README.md ../../../flutter/third_party/web_locale_keymap/pubspec.yaml ../../../flutter/third_party/web_locale_keymap/test +../../../flutter/third_party/web_sdk_version/pubspec.yaml ../../../flutter/third_party/web_test_fonts/pubspec.yaml ../../../flutter/third_party/web_unicode/README.md ../../../flutter/third_party/web_unicode/pubspec.yaml From b131c418edd4c07cb6a32aedf975d8d6ce1031e6 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Thu, 9 Mar 2023 14:57:53 -0800 Subject: [PATCH 6/7] Fix test --- web_sdk/test/sdk_rewriter_test.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/web_sdk/test/sdk_rewriter_test.dart b/web_sdk/test/sdk_rewriter_test.dart index 5602bb5679f41..fc65627ff0532 100644 --- a/web_sdk/test/sdk_rewriter_test.dart +++ b/web_sdk/test/sdk_rewriter_test.dart @@ -132,18 +132,21 @@ void printSomething() { "import 'dart:_web_unicode';", "import 'dart:_web_test_fonts';", "import 'dart:_web_locale_keymap' as locale_keymap;", + "import 'dart:_web_sdk_version';", ]); expect(getExtraImportsForLibrary('skwasm_stub'), [ "import 'dart:_engine';", "import 'dart:_web_unicode';", "import 'dart:_web_test_fonts';", "import 'dart:_web_locale_keymap' as locale_keymap;", + "import 'dart:_web_sdk_version';", ]); expect(getExtraImportsForLibrary('skwasm_impl'), [ "import 'dart:_engine';", "import 'dart:_web_unicode';", "import 'dart:_web_test_fonts';", "import 'dart:_web_locale_keymap' as locale_keymap;", + "import 'dart:_web_sdk_version';", "import 'dart:ffi';", ]); @@ -151,5 +154,6 @@ void printSomething() { expect(getExtraImportsForLibrary('web_unicode'), isEmpty); expect(getExtraImportsForLibrary('web_test_fonts'), isEmpty); expect(getExtraImportsForLibrary('web_locale_keymap'), isEmpty); + expect(getExtraImportsForLibrary('web_sdk_version'), isEmpty); }); } From 7262e075b81c749e56e1c4b78c2ac154d42ba92a Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Thu, 9 Mar 2023 15:59:01 -0800 Subject: [PATCH 7/7] comma --- .../web_sdk_version/lib/web_sdk_version/web_sdk_version.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart b/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart index 6211a718a85a5..b4b52c57d5ab9 100644 --- a/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart +++ b/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart @@ -7,4 +7,4 @@ // development. /// The Git SHA of the Flutter Engine. -const String flutterWebSdkVersion = 'IF YOU SEE THIS FILE A BUG: https://github.com/flutter/flutter/issues/new?assignees=&labels=&template=2_bug.md&title='; +const String flutterWebSdkVersion = 'IF YOU SEE THIS, FILE A BUG: https://github.com/flutter/flutter/issues/new?assignees=&labels=&template=2_bug.md&title=';