Skip to content

Commit 161f759

Browse files
author
Harry Terkelsen
authored
[web] Access engine version to get correct gstatic URL (flutter#40194)
1 parent 33bdab9 commit 161f759

File tree

13 files changed

+113
-6
lines changed

13 files changed

+113
-6
lines changed

ci/licenses_golden/excluded_files

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,7 @@
408408
../../../flutter/third_party/web_locale_keymap/README.md
409409
../../../flutter/third_party/web_locale_keymap/pubspec.yaml
410410
../../../flutter/third_party/web_locale_keymap/test
411+
../../../flutter/third_party/web_sdk_version/pubspec.yaml
411412
../../../flutter/third_party/web_test_fonts/pubspec.yaml
412413
../../../flutter/third_party/web_unicode/README.md
413414
../../../flutter/third_party/web_unicode/pubspec.yaml

ci/licenses_golden/licenses_flutter

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,7 @@ LIBRARY: engine
680680
LIBRARY: spring_animation
681681
LIBRARY: tonic
682682
LIBRARY: txt
683+
LIBRARY: web_sdk_version
683684
LIBRARY: web_test_fonts
684685
LIBRARY: web_unicode
685686
ORIGIN: ../../../flutter/LICENSE
@@ -3168,6 +3169,8 @@ ORIGIN: ../../../flutter/third_party/txt/src/txt/platform_fuchsia.cc + ../../../
31683169
ORIGIN: ../../../flutter/third_party/txt/src/txt/platform_linux.cc + ../../../flutter/LICENSE
31693170
ORIGIN: ../../../flutter/third_party/txt/src/txt/platform_mac.mm + ../../../flutter/LICENSE
31703171
ORIGIN: ../../../flutter/third_party/txt/src/txt/platform_windows.cc + ../../../flutter/LICENSE
3172+
ORIGIN: ../../../flutter/third_party/web_sdk_version/lib/web_sdk_version.dart + ../../../flutter/LICENSE
3173+
ORIGIN: ../../../flutter/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart + ../../../flutter/LICENSE
31713174
ORIGIN: ../../../flutter/third_party/web_test_fonts/lib/web_test_fonts.dart + ../../../flutter/LICENSE
31723175
ORIGIN: ../../../flutter/third_party/web_test_fonts/lib/web_test_fonts/web_test_fonts.dart + ../../../flutter/LICENSE
31733176
ORIGIN: ../../../flutter/third_party/web_unicode/lib/web_unicode.dart + ../../../flutter/LICENSE
@@ -5717,6 +5720,8 @@ FILE: ../../../flutter/third_party/txt/src/txt/platform_fuchsia.cc
57175720
FILE: ../../../flutter/third_party/txt/src/txt/platform_linux.cc
57185721
FILE: ../../../flutter/third_party/txt/src/txt/platform_mac.mm
57195722
FILE: ../../../flutter/third_party/txt/src/txt/platform_windows.cc
5723+
FILE: ../../../flutter/third_party/web_sdk_version/lib/web_sdk_version.dart
5724+
FILE: ../../../flutter/third_party/web_sdk_version/lib/web_sdk_version/web_sdk_version.dart
57205725
FILE: ../../../flutter/third_party/web_test_fonts/lib/web_test_fonts.dart
57215726
FILE: ../../../flutter/third_party/web_test_fonts/lib/web_test_fonts/web_test_fonts.dart
57225727
FILE: ../../../flutter/third_party/web_unicode/lib/web_unicode.dart

lib/web_ui/lib/src/engine/configuration.dart

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,11 @@ library configuration;
4646

4747
import 'package:js/js.dart';
4848
import 'package:meta/meta.dart';
49+
import 'package:web_sdk_version/web_sdk_version.dart';
50+
4951
import 'canvaskit/renderer.dart';
5052
import 'dom.dart';
5153

52-
/// The version of CanvasKit used by the web engine by default.
53-
// DO NOT EDIT THE NEXT LINE OF CODE MANUALLY
54-
// See `lib/web_ui/README.md` for how to roll CanvasKit to a new version.
55-
const String _canvaskitVersion = '0.38.0';
56-
5754
/// The Web Engine configuration for the current application.
5855
FlutterConfiguration get configuration =>
5956
_configuration ??= FlutterConfiguration.legacy(_jsConfiguration);
@@ -182,7 +179,7 @@ class FlutterConfiguration {
182179
String get canvasKitBaseUrl => _configuration?.canvasKitBaseUrl ?? _defaultCanvasKitBaseUrl;
183180
static const String _defaultCanvasKitBaseUrl = String.fromEnvironment(
184181
'FLUTTER_WEB_CANVASKIT_URL',
185-
defaultValue: 'https://unpkg.com/canvaskit-wasm@$_canvaskitVersion/bin/',
182+
defaultValue: 'https://gstatic.com/flutter-canvaskit/$flutterWebSdkVersion/'
186183
);
187184

188185
/// The variant of CanvasKit to download.

lib/web_ui/pubspec.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ dependencies:
1717
web_test_fonts:
1818
path: ../../third_party/web_test_fonts
1919

20+
web_sdk_version:
21+
path: ../../third_party/web_sdk_version
22+
2023
dev_dependencies:
2124
analyzer: 5.2.0
2225
archive: 3.1.2

third_party/web_sdk_version/BUILD.gn

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import("//flutter/shell/version.gni")
2+
import("//third_party/dart/build/dart/dart_action.gni")
3+
4+
dart_sdk_package_config = "//third_party/dart/.dart_tool/package_config.json"
5+
6+
prebuilt_dart_action("web_sdk_version") {
7+
packages = dart_sdk_package_config
8+
pool = "//flutter/build/dart:dart_pool"
9+
10+
script = "version_writer.dart"
11+
inputs = [ "version_writer.dart" ]
12+
13+
stamp_location = "$target_gen_dir/$target_name.stamp"
14+
outputs = [
15+
stamp_location,
16+
invoker.output_dir,
17+
]
18+
19+
input_dir = rebase_path(invoker.input_dir)
20+
output_dir = rebase_path(invoker.output_dir)
21+
22+
args = [
23+
"--output-dir=$output_dir",
24+
"--input-dir=$input_dir",
25+
"--stamp",
26+
rebase_path(stamp_location, root_build_dir),
27+
]
28+
if (ui) {
29+
args += [ "--ui" ]
30+
} else {
31+
library_name = invoker.library_name
32+
api_file = rebase_path(invoker.api_file)
33+
args += [
34+
"--library-name=$library_name",
35+
"--api-file=$api_file",
36+
]
37+
}
38+
39+
foreach(source_file, source_dart_files) {
40+
path = rebase_path(source_file)
41+
args += [ "--source-file=$path" ]
42+
}
43+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// Copyright 2013 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
library web_sdk_version;
6+
7+
export 'web_sdk_version/web_sdk_version.dart';
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Copyright 2013 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
// NOTE: This file is just a stub. The actual file is generated at build time
6+
// with the actual current Git commit SHA. This stub is just here for local
7+
// development.
8+
9+
/// The Git SHA of the Flutter Engine.
10+
const String flutterWebSdkVersion = 'IF YOU SEE THIS, FILE A BUG: https://github.com/flutter/flutter/issues/new?assignees=&labels=&template=2_bug.md&title=';
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
name: web_sdk_version
2+
3+
publish_to: none
4+
5+
environment:
6+
sdk: ">=2.12.0-0 <3.0.0"

web_sdk/BUILD.gn

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import("//flutter/build/zip_bundle.gni")
66
import("//flutter/common/config.gni")
7+
import("//flutter/shell/version/version.gni")
78
import("//third_party/dart/build/dart/dart_action.gni")
89

910
dart_sdk_package_config = "//third_party/dart/.dart_tool/package_config.json"
@@ -24,6 +25,7 @@ web_engine_libraries = [
2425
":web_unicode_library",
2526
":web_test_fonts_library",
2627
":web_locale_keymap_library",
28+
":web_sdk_version_library",
2729
]
2830

2931
group("web_sdk") {
@@ -151,6 +153,14 @@ sdk_rewriter("web_locale_keymap_library") {
151153
output_dir = "$root_out_dir/flutter_web_sdk/lib/_web_locale_keymap/"
152154
}
153155

156+
generated_file("web_sdk_version_library") {
157+
outputs = [
158+
"$root_out_dir/flutter_web_sdk/lib/_web_sdk_version/web_sdk_version.dart",
159+
]
160+
161+
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"
162+
}
163+
154164
copy("web_ui_library") {
155165
sources = [ "//flutter/web_sdk/libraries.json" ]
156166

@@ -314,6 +324,8 @@ template("_compile_platform") {
314324
"dart:_web_unicode",
315325
"--source",
316326
"dart:_web_locale_keymap",
327+
"--source",
328+
"dart:_web_sdk_version",
317329
]
318330
if (flutter_prebuilt_dart_sdk) {
319331
args += [

web_sdk/libraries.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
},
2727
"_web_test_fonts": {
2828
"uri": "lib/_web_test_fonts/web_test_fonts.dart"
29+
},
30+
"_web_sdk_version": {
31+
"uri": "lib/_web_sdk_version/web_sdk_version.dart"
2932
}
3033
}
3134
},
@@ -54,6 +57,9 @@
5457
},
5558
"_web_test_fonts": {
5659
"uri": "lib/_web_test_fonts/web_test_fonts.dart"
60+
},
61+
"_web_sdk_version": {
62+
"uri": "lib/_web_sdk_version/web_sdk_version.dart"
5763
}
5864
}
5965
},
@@ -82,6 +88,9 @@
8288
},
8389
"_web_test_fonts": {
8490
"uri": "lib/_web_test_fonts/web_test_fonts.dart"
91+
},
92+
"_web_sdk_version": {
93+
"uri": "lib/_web_sdk_version/web_sdk_version.dart"
8594
}
8695
}
8796
}

0 commit comments

Comments
 (0)