Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

[web] Access engine version to get correct gstatic URL #40194

Merged
merged 9 commits into from
Mar 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ci/licenses_golden/excluded_files
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,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
Expand Down
5 changes: 5 additions & 0 deletions ci/licenses_golden/licenses_flutter
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -3168,6 +3169,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
Expand Down Expand Up @@ -5717,6 +5720,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
Expand Down
9 changes: 3 additions & 6 deletions lib/web_ui/lib/src/engine/configuration.dart
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,11 @@ library configuration;

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);
Expand Down Expand Up @@ -182,7 +179,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.
Expand Down
3 changes: 3 additions & 0 deletions lib/web_ui/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
43 changes: 43 additions & 0 deletions third_party/web_sdk_version/BUILD.gn
Original file line number Diff line number Diff line change
@@ -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" ]
}
}
7 changes: 7 additions & 0 deletions third_party/web_sdk_version/lib/web_sdk_version.dart
Original file line number Diff line number Diff line change
@@ -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';
Original file line number Diff line number Diff line change
@@ -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=';
6 changes: 6 additions & 0 deletions third_party/web_sdk_version/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: web_sdk_version

publish_to: none

environment:
sdk: ">=2.12.0-0 <3.0.0"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
sdk: ">=2.12.0-0 <3.0.0"
sdk: ">=3.0.0-0 <3.0.0"

might as well...

12 changes: 12 additions & 0 deletions web_sdk/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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") {
Expand Down Expand Up @@ -151,6 +153,14 @@ 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" ]

Expand Down Expand Up @@ -314,6 +324,8 @@ template("_compile_platform") {
"dart:_web_unicode",
"--source",
"dart:_web_locale_keymap",
"--source",
"dart:_web_sdk_version",
]
if (flutter_prebuilt_dart_sdk) {
args += [
Expand Down
9 changes: 9 additions & 0 deletions web_sdk/libraries.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
},
Expand Down Expand Up @@ -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"
}
}
},
Expand Down Expand Up @@ -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"
}
}
}
Expand Down
9 changes: 9 additions & 0 deletions web_sdk/libraries.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand All @@ -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}
Expand All @@ -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"
1 change: 1 addition & 0 deletions web_sdk/sdk_rewriter.dart
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ final Map<Pattern, String> extraImportsMap = <Pattern, String>{
'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.
Expand Down
4 changes: 4 additions & 0 deletions web_sdk/test/sdk_rewriter_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -132,24 +132,28 @@ 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'), <String>[
"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'), <String>[
"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';",
]);

// Other libraries (should not have extra imports).
expect(getExtraImportsForLibrary('web_unicode'), isEmpty);
expect(getExtraImportsForLibrary('web_test_fonts'), isEmpty);
expect(getExtraImportsForLibrary('web_locale_keymap'), isEmpty);
expect(getExtraImportsForLibrary('web_sdk_version'), isEmpty);
});
}