Skip to content

Commit ad5235b

Browse files
authored
[CP] Migrate web-only initialization APIs (#133891)
This CP lands PR flutter/flutter#129856 into `stable`. The PR above was part of a engine+framework change that got split in half during the stable cut, so now users are seeing some warnings that they can't act on. (Those warnings were only intended for people who were using our methods manually, rather than using normal flutter tooling). ## Issues Fixes flutter/flutter#133069
1 parent 441432b commit ad5235b

8 files changed

Lines changed: 21 additions & 23 deletions

File tree

packages/flutter/lib/src/foundation/_platform_web.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import 'dart:ui' as ui;
5+
import 'dart:ui_web' as ui_web;
66

77
import '../services/dom.dart';
88

@@ -23,9 +23,7 @@ platform.TargetPlatform get defaultTargetPlatform {
2323
final platform.TargetPlatform? _testPlatform = () {
2424
platform.TargetPlatform? result;
2525
assert(() {
26-
// This member is only available in the web's dart:ui implementation.
27-
// ignore: undefined_prefixed_name
28-
if (ui.debugEmulateFlutterTesterEnvironment as bool) {
26+
if (ui_web.debugEmulateFlutterTesterEnvironment) {
2927
result = platform.TargetPlatform.android;
3028
}
3129
return true;

packages/flutter_tools/lib/src/web/bootstrap.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ String generateTestEntrypoint({
219219
// @dart = ${languageVersion.major}.${languageVersion.minor}
220220
import 'org-dartlang-app:///$relativeTestPath' as test;
221221
import 'dart:ui' as ui;
222+
import 'dart:ui_web' as ui_web;
222223
import 'dart:html';
223224
import 'dart:js';
224225
${testConfigPath != null ? "import '${Uri.file(testConfigPath)}' as test_config;" : ""}
@@ -227,7 +228,7 @@ String generateTestEntrypoint({
227228
import 'package:test_api/backend.dart';
228229
229230
Future<void> main() async {
230-
ui.debugEmulateFlutterTesterEnvironment = true;
231+
ui_web.debugEmulateFlutterTesterEnvironment = true;
231232
await ui.webOnlyInitializePlatform();
232233
webGoldenComparator = DefaultWebGoldenComparator(Uri.parse('${Uri.file(absolutePath)}'));
233234
(ui.window as dynamic).debugOverrideDevicePixelRatio(3.0);

packages/flutter_tools/lib/src/web/file_generators/main_dart.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ String generateMainDartFile(String appEntrypoint, {
1919
'',
2020
'// ignore_for_file: type=lint',
2121
'',
22-
"import 'dart:ui' as ui;",
22+
"import 'dart:ui_web' as ui_web;",
2323
"import 'dart:async';",
2424
'',
2525
"import '$appEntrypoint' as entrypoint;",
@@ -29,7 +29,7 @@ String generateMainDartFile(String appEntrypoint, {
2929
'typedef _NullaryFunction = dynamic Function();',
3030
'',
3131
'Future<void> main() async {',
32-
' await ui.webOnlyWarmupEngine(',
32+
' await ui_web.bootstrapEngine(',
3333
' runApp: () {',
3434
' if (entrypoint.main is _UnaryFunction) {',
3535
' return (entrypoint.main as _UnaryFunction)(<String>[]);',

packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ void main() {
118118
expect(generated, contains("import 'package:foo/main.dart' as entrypoint;"));
119119

120120
// Main
121-
expect(generated, contains('ui.webOnlyWarmupEngine('));
121+
expect(generated, contains('ui_web.bootstrapEngine('));
122122
expect(generated, contains('entrypoint.main as _'));
123123
}, overrides: <Type, Generator>{
124124
TemplateRenderer: () => const MustacheTemplateRenderer(),
@@ -270,7 +270,7 @@ void main() {
270270
expect(generated, contains("import 'package:foo/main.dart' as entrypoint;"));
271271

272272
// Main
273-
expect(generated, contains('ui.webOnlyWarmupEngine('));
273+
expect(generated, contains('ui_web.bootstrapEngine('));
274274
expect(generated, contains('entrypoint.main as _'));
275275
}, overrides: <Type, Generator>{
276276
Platform: () => windows,
@@ -295,7 +295,7 @@ void main() {
295295
expect(generated, contains("import 'package:foo/main.dart' as entrypoint;"));
296296

297297
// Main
298-
expect(generated, contains('ui.webOnlyWarmupEngine('));
298+
expect(generated, contains('ui_web.bootstrapEngine('));
299299
expect(generated, contains('entrypoint.main as _'));
300300
}, overrides: <Type, Generator>{
301301
TemplateRenderer: () => const MustacheTemplateRenderer(),
@@ -351,7 +351,7 @@ void main() {
351351
expect(generated, contains("import 'package:foo/main.dart' as entrypoint;"));
352352

353353
// Main
354-
expect(generated, contains('ui.webOnlyWarmupEngine('));
354+
expect(generated, contains('ui_web.bootstrapEngine('));
355355
expect(generated, contains('entrypoint.main as _'));
356356
}, overrides: <Type, Generator>{
357357
TemplateRenderer: () => const MustacheTemplateRenderer(),

packages/flutter_tools/test/general.shard/resident_web_runner_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -730,8 +730,8 @@ void main() {
730730
final String entrypointContents =
731731
fileSystem.file(webDevFS.mainUri).readAsStringSync();
732732
expect(entrypointContents, contains('// Flutter web bootstrap script'));
733-
expect(entrypointContents, contains("import 'dart:ui' as ui;"));
734-
expect(entrypointContents, contains('await ui.webOnlyWarmupEngine('));
733+
expect(entrypointContents, contains("import 'dart:ui_web' as ui_web;"));
734+
expect(entrypointContents, contains('await ui_web.bootstrapEngine('));
735735

736736
expect(logger.statusText, contains('Restarted application in'));
737737
expect(result.code, 0);

packages/flutter_web_plugins/lib/src/plugin_registry.dart

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

55
import 'dart:async';
66
import 'dart:ui' as ui;
7+
import 'dart:ui_web' as ui_web;
78

89
import 'package:flutter/foundation.dart';
910
import 'package:flutter/services.dart';
@@ -57,13 +58,11 @@ class Registrar extends BinaryMessenger {
5758
/// previously-registered handler and replaces it with the handler
5859
/// from this object.
5960
///
60-
/// This method uses a function called `webOnlySetPluginHandler` in
61-
/// the [dart:ui] library. That function is only available when
61+
/// This method uses a function called `setPluginHandler` in
62+
/// the [dart:ui_web] library. That function is only available when
6263
/// compiling for the web.
6364
void registerMessageHandler() {
64-
// The `ui.webOnlySetPluginHandler` function below is only defined in the Web dart:ui.
65-
// ignore: undefined_function, avoid_dynamic_calls
66-
ui.webOnlySetPluginHandler(handleFrameworkMessage);
65+
ui_web.setPluginHandler(handleFrameworkMessage);
6766
}
6867

6968
/// Receives a platform message from the framework.
@@ -101,7 +100,7 @@ class Registrar extends BinaryMessenger {
101100
/// the following:
102101
///
103102
/// ```dart
104-
/// ui.webOnlySetPluginHandler(webPluginRegistrar.handleFrameworkMessage);
103+
/// ui_web.setPluginHandler(handleFrameworkMessage);
105104
/// ```
106105
Future<void> handleFrameworkMessage(
107106
String channel,

packages/flutter_web_plugins/test/plugin_event_channel_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
library;
77

88
import 'dart:async';
9-
import 'dart:ui' as ui;
9+
import 'dart:ui_web' as ui_web;
1010

1111
import 'package:flutter/services.dart';
1212
import 'package:flutter_test/flutter_test.dart';
1313
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
1414

1515
void main() {
1616
// Disabling tester emulation because this test relies on real message channel communication.
17-
ui.debugEmulateFlutterTesterEnvironment = false; // ignore: undefined_prefixed_name
17+
ui_web.debugEmulateFlutterTesterEnvironment = false;
1818

1919
group('Plugin Event Channel', () {
2020
setUp(() {

packages/flutter_web_plugins/test/plugin_registry_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
@TestOn('chrome') // Uses web-only Flutter SDK
66
library;
77

8-
import 'dart:ui' as ui;
8+
import 'dart:ui_web' as ui_web;
99

1010
import 'package:flutter/services.dart';
1111
import 'package:flutter_test/flutter_test.dart';
@@ -31,7 +31,7 @@ class TestPlugin {
3131

3232
void main() {
3333
// Disabling tester emulation because this test relies on real message channel communication.
34-
ui.debugEmulateFlutterTesterEnvironment = false; // ignore: undefined_prefixed_name
34+
ui_web.debugEmulateFlutterTesterEnvironment = false;
3535

3636
group('Plugin Registry', () {
3737
setUp(() {

0 commit comments

Comments
 (0)