[web] Use new APIs from `dart:ui_web` (#4168)
The following APIs are now exposed through `dart:ui_web` which eliminates the need for shims:
- `platformViewRegistry`
- `webOnlyAssetManager`
- `urlStrategy`
## Issues
* Fixes https://github.com/flutter/flutter/issues/55000
## Minimal `stable` version
THIS PR CANNOT LAND UNTIL THE NEW `dart:ui_web` APIS MAKE IT INTO A STABLE FLUTTER RELEASE.
* Needs https://github.com/flutter/flutter/commit/5a7ab5a147f6b50ba7dc8c82d3ea0040fc0f081f
diff --git a/packages/camera/camera_web/CHANGELOG.md b/packages/camera/camera_web/CHANGELOG.md
index e3a048b..4cd5c48 100644
--- a/packages/camera/camera_web/CHANGELOG.md
+++ b/packages/camera/camera_web/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.3.2+3
+
+* Migrates to `dart:ui_web` APIs.
+* Updates minimum supported SDK version to Flutter 3.13.0/Dart 3.1.0.
+
## 0.3.2+2
* Adds pub topics to package metadata.
diff --git a/packages/camera/camera_web/lib/src/camera.dart b/packages/camera/camera_web/lib/src/camera.dart
index 79bacad..b256ca2 100644
--- a/packages/camera/camera_web/lib/src/camera.dart
+++ b/packages/camera/camera_web/lib/src/camera.dart
@@ -5,12 +5,12 @@
import 'dart:async';
import 'dart:html' as html;
import 'dart:ui';
+import 'dart:ui_web' as ui_web;
import 'package:camera_platform_interface/camera_platform_interface.dart';
import 'package:flutter/foundation.dart';
import 'camera_service.dart';
-import 'shims/dart_ui.dart' as ui;
import 'types/types.dart';
String _getViewType(int cameraId) => 'plugins.flutter.io/camera_$cameraId';
@@ -168,7 +168,7 @@
..style.setProperty('object-fit', 'cover')
..append(videoElement);
- ui.platformViewRegistry.registerViewFactory(
+ ui_web.platformViewRegistry.registerViewFactory(
_getViewType(textureId),
(_) => divElement,
);
diff --git a/packages/camera/camera_web/lib/src/shims/dart_ui.dart b/packages/camera/camera_web/lib/src/shims/dart_ui.dart
deleted file mode 100644
index 3a32721..0000000
--- a/packages/camera/camera_web/lib/src/shims/dart_ui.dart
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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.
-
-/// This file shims dart:ui in web-only scenarios, getting rid of the need to
-/// suppress analyzer warnings.
-
-// TODO(ditman): Remove this file once web-only dart:ui APIs are exposed from
-// a dedicated place. https://github.com/flutter/flutter/issues/55000
-export 'dart_ui_fake.dart' if (dart.library.html) 'dart_ui_real.dart';
diff --git a/packages/camera/camera_web/lib/src/shims/dart_ui_fake.dart b/packages/camera/camera_web/lib/src/shims/dart_ui_fake.dart
deleted file mode 100644
index 40d8f19..0000000
--- a/packages/camera/camera_web/lib/src/shims/dart_ui_fake.dart
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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.
-
-import 'dart:html' as html;
-
-// Fake interface for the logic that this package needs from (web-only) dart:ui.
-// This is conditionally exported so the analyzer sees these methods as available.
-
-// ignore_for_file: avoid_classes_with_only_static_members
-// ignore_for_file: camel_case_types
-
-/// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L62
-class platformViewRegistry {
- /// Shim for registerViewFactory
- /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L72
- static bool registerViewFactory(
- String viewTypeId, html.Element Function(int viewId) viewFactory) {
- return false;
- }
-}
-
-/// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L12
-class webOnlyAssetManager {
- /// Shim for getAssetUrl.
- /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L45
- static String getAssetUrl(String asset) => '';
-}
-
-/// Signature of callbacks that have no arguments and return no data.
-typedef VoidCallback = void Function();
diff --git a/packages/camera/camera_web/lib/src/shims/dart_ui_real.dart b/packages/camera/camera_web/lib/src/shims/dart_ui_real.dart
deleted file mode 100644
index 276b768..0000000
--- a/packages/camera/camera_web/lib/src/shims/dart_ui_real.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// 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.
-
-export 'dart:ui';
diff --git a/packages/camera/camera_web/pubspec.yaml b/packages/camera/camera_web/pubspec.yaml
index 4303f6d..f2f8f7c 100644
--- a/packages/camera/camera_web/pubspec.yaml
+++ b/packages/camera/camera_web/pubspec.yaml
@@ -2,11 +2,11 @@
description: A Flutter plugin for getting information about and controlling the camera on Web.
repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_web
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22
-version: 0.3.2+2
+version: 0.3.2+3
environment:
- sdk: ">=2.19.0 <4.0.0"
- flutter: ">=3.7.0"
+ sdk: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
flutter:
plugin:
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/CHANGELOG.md b/packages/google_maps_flutter/google_maps_flutter_web/CHANGELOG.md
index ef4dada..a38da4f 100644
--- a/packages/google_maps_flutter/google_maps_flutter_web/CHANGELOG.md
+++ b/packages/google_maps_flutter/google_maps_flutter_web/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.5.4+2
+
+* Migrates to `dart:ui_web` APIs.
+* Updates minimum supported SDK version to Flutter 3.13.0/Dart 3.1.0.
+
## 0.5.4+1
* Adds pub topics to package metadata.
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/google_maps_flutter_web.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/google_maps_flutter_web.dart
index 65448ab..d1ef18d 100644
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/google_maps_flutter_web.dart
+++ b/packages/google_maps_flutter/google_maps_flutter_web/lib/google_maps_flutter_web.dart
@@ -6,8 +6,9 @@
import 'dart:async';
import 'dart:convert';
-import 'dart:html';
+import 'dart:html' hide VoidCallback;
import 'dart:js_util';
+import 'dart:ui_web' as ui_web;
import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart';
@@ -21,7 +22,6 @@
import 'package:stream_transform/stream_transform.dart';
import 'src/google_maps_inspector_web.dart';
-import 'src/shims/dart_ui.dart' as ui; // Conditionally imports dart:ui in web
import 'src/third_party/to_screen_location/to_screen_location.dart';
import 'src/types.dart';
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/circle.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/circle.dart
index 9cd3ba1..0e6df16 100644
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/circle.dart
+++ b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/circle.dart
@@ -10,7 +10,7 @@
CircleController({
required gmaps.Circle circle,
bool consumeTapEvents = false,
- ui.VoidCallback? onTap,
+ VoidCallback? onTap,
}) : _circle = circle,
_consumeTapEvents = consumeTapEvents {
if (onTap != null) {
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/convert.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/convert.dart
index 01c5f5e..9402760 100644
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/convert.dart
+++ b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/convert.dart
@@ -262,7 +262,7 @@
// iconConfig[2] contains the DPIs of the screen, but that information is
// already encoded in the iconConfig[1]
icon = gmaps.Icon()
- ..url = ui.webOnlyAssetManager.getAssetUrl(iconConfig[1]! as String);
+ ..url = ui_web.assetManager.getAssetUrl(iconConfig[1]! as String);
final gmaps.Size? size = _gmSizeFromIconConfig(iconConfig, 3);
if (size != null) {
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/google_maps_controller.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/google_maps_controller.dart
index fbb1942..03bc739 100644
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/google_maps_controller.dart
+++ b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/google_maps_controller.dart
@@ -41,7 +41,7 @@
..style.width = '100%'
..style.height = '100%';
- ui.platformViewRegistry.registerViewFactory(
+ ui_web.platformViewRegistry.registerViewFactory(
_getViewType(mapId),
(int viewId) => _div,
);
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/marker.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/marker.dart
index 50b4bd3..a861e7f 100644
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/marker.dart
+++ b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/marker.dart
@@ -14,7 +14,7 @@
LatLngCallback? onDragStart,
LatLngCallback? onDrag,
LatLngCallback? onDragEnd,
- ui.VoidCallback? onTap,
+ VoidCallback? onTap,
}) : _marker = marker,
_infoWindow = infoWindow,
_consumeTapEvents = consumeTapEvents {
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/polygon.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/polygon.dart
index 719eeee..9f72151 100644
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/polygon.dart
+++ b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/polygon.dart
@@ -10,7 +10,7 @@
PolygonController({
required gmaps.Polygon polygon,
bool consumeTapEvents = false,
- ui.VoidCallback? onTap,
+ VoidCallback? onTap,
}) : _polygon = polygon,
_consumeTapEvents = consumeTapEvents {
if (onTap != null) {
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/polyline.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/polyline.dart
index 428bb7f..21332e4 100644
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/polyline.dart
+++ b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/polyline.dart
@@ -10,7 +10,7 @@
PolylineController({
required gmaps.Polyline polyline,
bool consumeTapEvents = false,
- ui.VoidCallback? onTap,
+ VoidCallback? onTap,
}) : _polyline = polyline,
_consumeTapEvents = consumeTapEvents {
if (onTap != null) {
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui.dart
deleted file mode 100644
index 2b254a9..0000000
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui.dart
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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.
-
-/// This file shims dart:ui in web-only scenarios, getting rid of the need to
-/// suppress analyzer warnings.
-
-// TODO(ditman): Remove this file once web-only dart:ui APIs, https://github.com/flutter/flutter/issues/55000
-// are exposed from a dedicated place.
-export 'dart_ui_fake.dart' if (dart.library.html) 'dart_ui_real.dart';
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui_fake.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui_fake.dart
deleted file mode 100644
index 40d8f19..0000000
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui_fake.dart
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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.
-
-import 'dart:html' as html;
-
-// Fake interface for the logic that this package needs from (web-only) dart:ui.
-// This is conditionally exported so the analyzer sees these methods as available.
-
-// ignore_for_file: avoid_classes_with_only_static_members
-// ignore_for_file: camel_case_types
-
-/// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L62
-class platformViewRegistry {
- /// Shim for registerViewFactory
- /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L72
- static bool registerViewFactory(
- String viewTypeId, html.Element Function(int viewId) viewFactory) {
- return false;
- }
-}
-
-/// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L12
-class webOnlyAssetManager {
- /// Shim for getAssetUrl.
- /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L45
- static String getAssetUrl(String asset) => '';
-}
-
-/// Signature of callbacks that have no arguments and return no data.
-typedef VoidCallback = void Function();
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui_real.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui_real.dart
deleted file mode 100644
index 276b768..0000000
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui_real.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// 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.
-
-export 'dart:ui';
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml
index 357449b..4d10106 100644
--- a/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml
+++ b/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml
@@ -2,11 +2,11 @@
description: Web platform implementation of google_maps_flutter
repository: https://github.com/flutter/packages/tree/main/packages/google_maps_flutter/google_maps_flutter_web
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22
-version: 0.5.4+1
+version: 0.5.4+2
environment:
- sdk: ">=2.19.0 <4.0.0"
- flutter: ">=3.7.0"
+ sdk: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
flutter:
plugin:
diff --git a/packages/google_sign_in/google_sign_in_web/CHANGELOG.md b/packages/google_sign_in/google_sign_in_web/CHANGELOG.md
index 34e5ad5..0a6f725 100644
--- a/packages/google_sign_in/google_sign_in_web/CHANGELOG.md
+++ b/packages/google_sign_in/google_sign_in_web/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.12.0+5
+
+* Migrates to `dart:ui_web` APIs.
+* Updates minimum supported SDK version to Flutter 3.13.0/Dart 3.1.0.
+
## 0.12.0+4
* Adds pub topics to package metadata.
diff --git a/packages/google_sign_in/google_sign_in_web/example/integration_test/flexible_size_html_element_view_test.dart b/packages/google_sign_in/google_sign_in_web/example/integration_test/flexible_size_html_element_view_test.dart
index b3bf1d5..555b171 100644
--- a/packages/google_sign_in/google_sign_in_web/example/integration_test/flexible_size_html_element_view_test.dart
+++ b/packages/google_sign_in/google_sign_in_web/example/integration_test/flexible_size_html_element_view_test.dart
@@ -3,7 +3,7 @@
// found in the LICENSE file.
import 'dart:async';
-import 'dart:ui' as ui;
+import 'dart:ui_web' as ui_web;
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
@@ -157,8 +157,7 @@
this.initialSize,
super.key,
}) {
- // ignore: avoid_dynamic_calls, undefined_prefixed_name
- ui.platformViewRegistry.registerViewFactory(
+ ui_web.platformViewRegistry.registerViewFactory(
'resizable_from_js_$instanceId',
(int viewId) {
final DomHtmlElement element = document.createElement('div');
diff --git a/packages/google_sign_in/google_sign_in_web/example/pubspec.yaml b/packages/google_sign_in/google_sign_in_web/example/pubspec.yaml
index 6a1076b..61a2f47 100644
--- a/packages/google_sign_in/google_sign_in_web/example/pubspec.yaml
+++ b/packages/google_sign_in/google_sign_in_web/example/pubspec.yaml
@@ -2,8 +2,8 @@
publish_to: none
environment:
- sdk: ">=2.19.0 <4.0.0"
- flutter: ">=3.7.0"
+ sdk: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
dependencies:
cupertino_icons: ^1.0.2
diff --git a/packages/google_sign_in/google_sign_in_web/lib/google_sign_in_web.dart b/packages/google_sign_in/google_sign_in_web/lib/google_sign_in_web.dart
index a8c1d5c..cee94d3 100644
--- a/packages/google_sign_in/google_sign_in_web/lib/google_sign_in_web.dart
+++ b/packages/google_sign_in/google_sign_in_web/lib/google_sign_in_web.dart
@@ -4,7 +4,7 @@
import 'dart:async';
import 'dart:html' as html;
-import 'dart:ui' as ui;
+import 'dart:ui_web' as ui_web;
import 'package:flutter/foundation.dart' show visibleForTesting, kDebugMode;
import 'package:flutter/material.dart';
@@ -172,8 +172,7 @@
// Register a factory for the Button HtmlElementView.
void _registerButtonFactory() {
- // ignore: avoid_dynamic_calls, undefined_prefixed_name
- ui.platformViewRegistry.registerViewFactory(
+ ui_web.platformViewRegistry.registerViewFactory(
'gsi_login_button',
(int viewId) {
final DomElement element = createDomElement('div');
diff --git a/packages/google_sign_in/google_sign_in_web/pubspec.yaml b/packages/google_sign_in/google_sign_in_web/pubspec.yaml
index c259f01..c4a3295 100644
--- a/packages/google_sign_in/google_sign_in_web/pubspec.yaml
+++ b/packages/google_sign_in/google_sign_in_web/pubspec.yaml
@@ -3,11 +3,11 @@
for signing in with a Google account on Android, iOS and Web.
repository: https://github.com/flutter/packages/tree/main/packages/google_sign_in/google_sign_in_web
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22
-version: 0.12.0+4
+version: 0.12.0+5
environment:
- sdk: ">=2.19.0 <4.0.0"
- flutter: ">=3.7.0"
+ sdk: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
flutter:
plugin:
diff --git a/packages/pointer_interceptor/CHANGELOG.md b/packages/pointer_interceptor/CHANGELOG.md
index 8a8762a..3a66b06 100644
--- a/packages/pointer_interceptor/CHANGELOG.md
+++ b/packages/pointer_interceptor/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.9.3+6
+
+* Migrates to `dart:ui_web` APIs.
+* Updates minimum supported SDK version to Flutter 3.13.0/Dart 3.1.0.
+
## 0.9.3+5
* Adds pub topics to package metadata.
diff --git a/packages/pointer_interceptor/example/lib/main.dart b/packages/pointer_interceptor/example/lib/main.dart
index 3fd8453..74f632a 100644
--- a/packages/pointer_interceptor/example/lib/main.dart
+++ b/packages/pointer_interceptor/example/lib/main.dart
@@ -4,12 +4,11 @@
// ignore: avoid_web_libraries_in_flutter
import 'dart:html' as html;
+import 'dart:ui_web' as ui_web;
import 'package:flutter/material.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart';
-import 'src/shim/dart_ui.dart' as ui;
-
const String _htmlElementViewType = '_htmlElementViewType';
const double _videoWidth = 640;
const double _videoHeight = 480;
@@ -42,7 +41,7 @@
// ..style.border = 'none';
void main() {
- ui.platformViewRegistry.registerViewFactory(
+ ui_web.platformViewRegistry.registerViewFactory(
_htmlElementViewType,
(int viewId) => htmlElement,
);
diff --git a/packages/pointer_interceptor/example/lib/src/shim/dart_ui.dart b/packages/pointer_interceptor/example/lib/src/shim/dart_ui.dart
deleted file mode 100644
index 4ac3e6d..0000000
--- a/packages/pointer_interceptor/example/lib/src/shim/dart_ui.dart
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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.
-
-/// This file shims dart:ui in web-only scenarios, getting rid of the need to
-/// suppress analyzer warnings.
-
-// TODO(dit): flutter/flutter#55000 Remove this file once web-only dart:ui APIs
-// are exposed from a dedicated place.
-export 'dart_ui_fake.dart' if (dart.library.html) 'dart_ui_real.dart';
diff --git a/packages/pointer_interceptor/example/lib/src/shim/dart_ui_fake.dart b/packages/pointer_interceptor/example/lib/src/shim/dart_ui_fake.dart
deleted file mode 100644
index 65cd719..0000000
--- a/packages/pointer_interceptor/example/lib/src/shim/dart_ui_fake.dart
+++ /dev/null
@@ -1,32 +0,0 @@
-// 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.
-
-// Fake interface for the logic that this package needs from (web-only) dart:ui.
-// This is conditionally exported so the analyzer sees these methods as available.
-
-// ignore: avoid_classes_with_only_static_members
-/// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L62
-// ignore: camel_case_types
-class platformViewRegistry {
- /// Shim for registerViewFactory
- /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L72
- static void registerViewFactory(
- String viewTypeId, dynamic Function(int viewId) viewFactory) {}
-}
-
-// ignore: avoid_classes_with_only_static_members
-/// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L12
-// ignore: camel_case_types
-class webOnlyAssetManager {
- /// Shim for getAssetUrl.
- /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
- static String getAssetUrl(String asset) {
- return '';
- }
-}
-
-/// Signature of callbacks that have no arguments and return no data.
-typedef VoidCallback = void Function();
diff --git a/packages/pointer_interceptor/example/lib/src/shim/dart_ui_real.dart b/packages/pointer_interceptor/example/lib/src/shim/dart_ui_real.dart
deleted file mode 100644
index 276b768..0000000
--- a/packages/pointer_interceptor/example/lib/src/shim/dart_ui_real.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// 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.
-
-export 'dart:ui';
diff --git a/packages/pointer_interceptor/example/pubspec.yaml b/packages/pointer_interceptor/example/pubspec.yaml
index 02b212c..9f8b29e 100644
--- a/packages/pointer_interceptor/example/pubspec.yaml
+++ b/packages/pointer_interceptor/example/pubspec.yaml
@@ -4,8 +4,8 @@
version: 1.0.0
environment:
- sdk: ">=2.19.0 <4.0.0"
- flutter: ">=3.7.0"
+ sdk: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
dependencies:
flutter:
diff --git a/packages/pointer_interceptor/lib/src/shim/dart_ui.dart b/packages/pointer_interceptor/lib/src/shim/dart_ui.dart
deleted file mode 100644
index 4ac3e6d..0000000
--- a/packages/pointer_interceptor/lib/src/shim/dart_ui.dart
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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.
-
-/// This file shims dart:ui in web-only scenarios, getting rid of the need to
-/// suppress analyzer warnings.
-
-// TODO(dit): flutter/flutter#55000 Remove this file once web-only dart:ui APIs
-// are exposed from a dedicated place.
-export 'dart_ui_fake.dart' if (dart.library.html) 'dart_ui_real.dart';
diff --git a/packages/pointer_interceptor/lib/src/shim/dart_ui_fake.dart b/packages/pointer_interceptor/lib/src/shim/dart_ui_fake.dart
deleted file mode 100644
index f310a46..0000000
--- a/packages/pointer_interceptor/lib/src/shim/dart_ui_fake.dart
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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.
-
-// Fake interface for the logic that this package needs from (web-only) dart:ui.
-// This is conditionally exported so the analyzer sees these methods as available.
-
-// ignore: avoid_classes_with_only_static_members
-/// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L62
-// ignore: camel_case_types
-class platformViewRegistry {
- /// Shim for registerViewFactory
- /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L72
- static void registerViewFactory(
- String viewTypeId, dynamic Function(int viewId) viewFactory,
- {bool isVisible = true}) {}
-}
-
-// ignore: avoid_classes_with_only_static_members
-/// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L12
-// ignore: camel_case_types
-class webOnlyAssetManager {
- /// Shim for getAssetUrl.
- /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
- static String getAssetUrl(String asset) {
- return '';
- }
-}
-
-/// Signature of callbacks that have no arguments and return no data.
-typedef VoidCallback = void Function();
diff --git a/packages/pointer_interceptor/lib/src/shim/dart_ui_real.dart b/packages/pointer_interceptor/lib/src/shim/dart_ui_real.dart
deleted file mode 100644
index 276b768..0000000
--- a/packages/pointer_interceptor/lib/src/shim/dart_ui_real.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// 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.
-
-export 'dart:ui';
diff --git a/packages/pointer_interceptor/lib/src/web.dart b/packages/pointer_interceptor/lib/src/web.dart
index 50edc41..e0dbcf9 100644
--- a/packages/pointer_interceptor/lib/src/web.dart
+++ b/packages/pointer_interceptor/lib/src/web.dart
@@ -4,11 +4,10 @@
// ignore: avoid_web_libraries_in_flutter
import 'dart:html' as html;
+import 'dart:ui_web' as ui_web;
import 'package:flutter/widgets.dart';
-import 'shim/dart_ui.dart' as ui;
-
const String _viewType = '__webPointerInterceptorViewType__';
const String _debug = 'debug__';
@@ -20,7 +19,7 @@
// Registers a viewFactory for this widget.
void _registerFactory({bool debug = false}) {
final String viewType = _getViewType(debug: debug);
- ui.platformViewRegistry.registerViewFactory(viewType, (int viewId) {
+ ui_web.platformViewRegistry.registerViewFactory(viewType, (int viewId) {
final html.Element htmlElement = html.DivElement()
..style.width = '100%'
..style.height = '100%';
diff --git a/packages/pointer_interceptor/pubspec.yaml b/packages/pointer_interceptor/pubspec.yaml
index d4048b8..3dba03b 100644
--- a/packages/pointer_interceptor/pubspec.yaml
+++ b/packages/pointer_interceptor/pubspec.yaml
@@ -2,11 +2,11 @@
description: A widget to prevent clicks from being swallowed by underlying HtmlElementViews on the web.
repository: https://github.com/flutter/packages/tree/main/packages/pointer_interceptor
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+pointer_interceptor%22
-version: 0.9.3+5
+version: 0.9.3+6
environment:
- sdk: ">=2.19.0 <4.0.0"
- flutter: ">=3.7.0"
+ sdk: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
dependencies:
flutter:
diff --git a/packages/url_launcher/url_launcher_web/CHANGELOG.md b/packages/url_launcher/url_launcher_web/CHANGELOG.md
index 336137f..4fd4abb 100644
--- a/packages/url_launcher/url_launcher_web/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher_web/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 2.0.20
+
+* Migrates to `dart:ui_web` APIs.
+* Updates minimum supported SDK version to Flutter 3.13.0/Dart 3.1.0.
+
## 2.0.19
* Adds pub topics to package metadata.
diff --git a/packages/url_launcher/url_launcher_web/example/integration_test/link_widget_test.dart b/packages/url_launcher/url_launcher_web/example/integration_test/link_widget_test.dart
index 6ad19a4..3c27d1c 100644
--- a/packages/url_launcher/url_launcher_web/example/integration_test/link_widget_test.dart
+++ b/packages/url_launcher/url_launcher_web/example/integration_test/link_widget_test.dart
@@ -4,10 +4,10 @@
import 'dart:html' as html;
import 'dart:js_util';
+import 'dart:ui_web' as ui_web;
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
-import 'package:flutter_web_plugins/flutter_web_plugins.dart';
import 'package:integration_test/integration_test.dart';
import 'package:url_launcher_platform_interface/link.dart';
import 'package:url_launcher_web/src/link.dart';
@@ -69,7 +69,7 @@
// Check that internal route properly prepares using the default
// [UrlStrategy]
expect(anchor.getAttribute('href'),
- urlStrategy?.prepareExternalUrl(uri3.toString()));
+ ui_web.urlStrategy?.prepareExternalUrl(uri3.toString()));
expect(anchor.getAttribute('target'), '_self');
// Needed when testing on on Chrome98 headless in CI.
diff --git a/packages/url_launcher/url_launcher_web/example/pubspec.yaml b/packages/url_launcher/url_launcher_web/example/pubspec.yaml
index ea3f199..9915164 100644
--- a/packages/url_launcher/url_launcher_web/example/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_web/example/pubspec.yaml
@@ -2,8 +2,8 @@
publish_to: none
environment:
- sdk: ">=2.19.0 <4.0.0"
- flutter: ">=3.7.0"
+ sdk: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
dependencies:
flutter:
@@ -13,8 +13,6 @@
build_runner: ^2.1.1
flutter_test:
sdk: flutter
- flutter_web_plugins:
- sdk: flutter
integration_test:
sdk: flutter
mockito: 5.4.1
diff --git a/packages/url_launcher/url_launcher_web/lib/src/link.dart b/packages/url_launcher/url_launcher_web/lib/src/link.dart
index ecb595c..b1589ba 100644
--- a/packages/url_launcher/url_launcher_web/lib/src/link.dart
+++ b/packages/url_launcher/url_launcher_web/lib/src/link.dart
@@ -5,13 +5,13 @@
import 'dart:async';
import 'dart:html' as html;
import 'dart:js_util';
+import 'dart:ui_web' as ui_web;
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart';
-import 'package:flutter_web_plugins/flutter_web_plugins.dart' show urlStrategy;
import 'package:url_launcher_platform_interface/link.dart';
/// The unique identifier for the view type to be used for link platform views.
@@ -225,7 +225,7 @@
// in case an internal uri is given, the url mus be properly encoded
// using the currently used [UrlStrategy]
if (!uri.hasScheme) {
- href = urlStrategy?.prepareExternalUrl(href) ?? href;
+ href = ui_web.urlStrategy?.prepareExternalUrl(href) ?? href;
}
_element.setAttribute('href', href);
}
diff --git a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui.dart b/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui.dart
deleted file mode 100644
index 0f6cd89..0000000
--- a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui.dart
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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.
-
-/// This file shims dart:ui in web-only scenarios, getting rid of the need to
-/// suppress analyzer warnings.
-
-// TODO(ditman): Remove this file once web-only dart:ui APIs
-// are exposed from a dedicated place, flutter/flutter#55000.
-export 'dart_ui_fake.dart' if (dart.library.html) 'dart_ui_real.dart';
diff --git a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart b/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart
deleted file mode 100644
index ec46f27..0000000
--- a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart
+++ /dev/null
@@ -1,34 +0,0 @@
-// 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.
-
-import 'dart:html' as html;
-
-// Fake interface for the logic that this package needs from (web-only) dart:ui.
-// This is conditionally exported so the analyzer sees these methods as available.
-
-// ignore_for_file: avoid_classes_with_only_static_members
-// ignore_for_file: camel_case_types
-
-/// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L62
-class platformViewRegistry {
- /// Shim for registerViewFactory
- /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L72
- static bool registerViewFactory(
- String viewTypeId, html.Element Function(int viewId) viewFactory,
- {bool isVisible = true}) {
- return false;
- }
-}
-
-/// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L12
-class webOnlyAssetManager {
- /// Shim for getAssetUrl.
- /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L45
- static String getAssetUrl(String asset) => '';
-}
-
-/// Signature of callbacks that have no arguments and return no data.
-typedef VoidCallback = void Function();
diff --git a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_real.dart b/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_real.dart
deleted file mode 100644
index 276b768..0000000
--- a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_real.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// 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.
-
-export 'dart:ui';
diff --git a/packages/url_launcher/url_launcher_web/lib/url_launcher_web.dart b/packages/url_launcher/url_launcher_web/lib/url_launcher_web.dart
index d296651..be40539 100644
--- a/packages/url_launcher/url_launcher_web/lib/url_launcher_web.dart
+++ b/packages/url_launcher/url_launcher_web/lib/url_launcher_web.dart
@@ -4,14 +4,14 @@
import 'dart:async';
import 'dart:html' as html;
+import 'dart:ui_web' as ui_web;
import 'package:flutter/foundation.dart' show visibleForTesting;
-import 'package:flutter_web_plugins/flutter_web_plugins.dart';
+import 'package:flutter_web_plugins/flutter_web_plugins.dart' show Registrar;
import 'package:url_launcher_platform_interface/link.dart';
import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart';
import 'src/link.dart';
-import 'src/shims/dart_ui.dart' as ui;
const Set<String> _safariTargetTopSchemes = <String>{
'mailto',
@@ -49,7 +49,7 @@
/// Registers this class as the default instance of [UrlLauncherPlatform].
static void registerWith(Registrar registrar) {
UrlLauncherPlatform.instance = UrlLauncherPlugin();
- ui.platformViewRegistry
+ ui_web.platformViewRegistry
.registerViewFactory(linkViewType, linkViewFactory, isVisible: false);
}
diff --git a/packages/url_launcher/url_launcher_web/pubspec.yaml b/packages/url_launcher/url_launcher_web/pubspec.yaml
index 2f22f2c..fce7da4 100644
--- a/packages/url_launcher/url_launcher_web/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_web/pubspec.yaml
@@ -2,11 +2,11 @@
description: Web platform implementation of url_launcher
repository: https://github.com/flutter/packages/tree/main/packages/url_launcher/url_launcher_web
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+url_launcher%22
-version: 2.0.19
+version: 2.0.20
environment:
- sdk: ">=2.19.0 <4.0.0"
- flutter: ">=3.7.0"
+ sdk: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
flutter:
plugin:
diff --git a/packages/video_player/video_player_web/CHANGELOG.md b/packages/video_player/video_player_web/CHANGELOG.md
index e67ee61..58e6f64 100644
--- a/packages/video_player/video_player_web/CHANGELOG.md
+++ b/packages/video_player/video_player_web/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 2.0.18
+
+* Migrates to `dart:ui_web` APIs.
+* Updates minimum supported SDK version to Flutter 3.13.0/Dart 3.1.0.
+
## 2.0.17
* Adds pub topics to package metadata.
diff --git a/packages/video_player/video_player_web/lib/src/shims/dart_ui.dart b/packages/video_player/video_player_web/lib/src/shims/dart_ui.dart
deleted file mode 100644
index bd28793..0000000
--- a/packages/video_player/video_player_web/lib/src/shims/dart_ui.dart
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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.
-
-/// This file shims dart:ui in web-only scenarios, getting rid of the need to
-/// suppress analyzer warnings.
-
-// TODO(ditman): Remove this file once web-only dart:ui APIs are exposed from
-// a dedicated place, https://github.com/flutter/flutter/issues/55000
-export 'dart_ui_fake.dart' if (dart.library.html) 'dart_ui_real.dart';
diff --git a/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart b/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart
deleted file mode 100644
index 40d8f19..0000000
--- a/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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.
-
-import 'dart:html' as html;
-
-// Fake interface for the logic that this package needs from (web-only) dart:ui.
-// This is conditionally exported so the analyzer sees these methods as available.
-
-// ignore_for_file: avoid_classes_with_only_static_members
-// ignore_for_file: camel_case_types
-
-/// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L62
-class platformViewRegistry {
- /// Shim for registerViewFactory
- /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L72
- static bool registerViewFactory(
- String viewTypeId, html.Element Function(int viewId) viewFactory) {
- return false;
- }
-}
-
-/// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L12
-class webOnlyAssetManager {
- /// Shim for getAssetUrl.
- /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L45
- static String getAssetUrl(String asset) => '';
-}
-
-/// Signature of callbacks that have no arguments and return no data.
-typedef VoidCallback = void Function();
diff --git a/packages/video_player/video_player_web/lib/src/shims/dart_ui_real.dart b/packages/video_player/video_player_web/lib/src/shims/dart_ui_real.dart
deleted file mode 100644
index 276b768..0000000
--- a/packages/video_player/video_player_web/lib/src/shims/dart_ui_real.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// 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.
-
-export 'dart:ui';
diff --git a/packages/video_player/video_player_web/lib/video_player_web.dart b/packages/video_player/video_player_web/lib/video_player_web.dart
index e52fd83..caa585b 100644
--- a/packages/video_player/video_player_web/lib/video_player_web.dart
+++ b/packages/video_player/video_player_web/lib/video_player_web.dart
@@ -4,12 +4,12 @@
import 'dart:async';
import 'dart:html';
+import 'dart:ui_web' as ui_web;
import 'package:flutter/material.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
import 'package:video_player_platform_interface/video_player_platform_interface.dart';
-import 'src/shims/dart_ui.dart' as ui;
import 'src/video_player.dart';
/// The web implementation of [VideoPlayerPlatform].
@@ -62,7 +62,7 @@
if (dataSource.package != null && dataSource.package!.isNotEmpty) {
assetUrl = 'packages/${dataSource.package}/$assetUrl';
}
- assetUrl = ui.webOnlyAssetManager.getAssetUrl(assetUrl);
+ assetUrl = ui_web.assetManager.getAssetUrl(assetUrl);
uri = assetUrl;
break;
case DataSourceType.file:
@@ -81,7 +81,7 @@
..style.width = '100%';
// TODO(hterkelsen): Use initialization parameters once they are available
- ui.platformViewRegistry.registerViewFactory(
+ ui_web.platformViewRegistry.registerViewFactory(
'videoPlayer-$textureId', (int viewId) => videoElement);
final VideoPlayer player = VideoPlayer(videoElement: videoElement)
diff --git a/packages/video_player/video_player_web/pubspec.yaml b/packages/video_player/video_player_web/pubspec.yaml
index 3924364..c0afc05 100644
--- a/packages/video_player/video_player_web/pubspec.yaml
+++ b/packages/video_player/video_player_web/pubspec.yaml
@@ -2,11 +2,11 @@
description: Web platform implementation of video_player.
repository: https://github.com/flutter/packages/tree/main/packages/video_player/video_player_web
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
-version: 2.0.17
+version: 2.0.18
environment:
- sdk: ">=2.19.0 <4.0.0"
- flutter: ">=3.7.0"
+ sdk: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
flutter:
plugin:
diff --git a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md
index a7c6924..cf5d2d6 100644
--- a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.2.2+3
+
+* Migrates to `dart:ui_web` APIs.
+* Updates minimum supported SDK version to Flutter 3.13.0/Dart 3.1.0.
+
## 0.2.2+2
* Adds pub topics to package metadata.
diff --git a/packages/webview_flutter/webview_flutter_web/lib/src/shims/dart_ui.dart b/packages/webview_flutter/webview_flutter_web/lib/src/shims/dart_ui.dart
deleted file mode 100644
index 1724dd6..0000000
--- a/packages/webview_flutter/webview_flutter_web/lib/src/shims/dart_ui.dart
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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.
-
-/// This file shims dart:ui in web-only scenarios, getting rid of the need to
-/// suppress analyzer warnings.
-
-// TODO(BeMacized): Remove this file once web-only dart:ui APIs,
-// are exposed from a dedicated place. flutter/flutter#55000
-export 'dart_ui_fake.dart' if (dart.library.html) 'dart_ui_real.dart';
diff --git a/packages/webview_flutter/webview_flutter_web/lib/src/shims/dart_ui_fake.dart b/packages/webview_flutter/webview_flutter_web/lib/src/shims/dart_ui_fake.dart
deleted file mode 100644
index 40d8f19..0000000
--- a/packages/webview_flutter/webview_flutter_web/lib/src/shims/dart_ui_fake.dart
+++ /dev/null
@@ -1,33 +0,0 @@
-// 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.
-
-import 'dart:html' as html;
-
-// Fake interface for the logic that this package needs from (web-only) dart:ui.
-// This is conditionally exported so the analyzer sees these methods as available.
-
-// ignore_for_file: avoid_classes_with_only_static_members
-// ignore_for_file: camel_case_types
-
-/// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L62
-class platformViewRegistry {
- /// Shim for registerViewFactory
- /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L72
- static bool registerViewFactory(
- String viewTypeId, html.Element Function(int viewId) viewFactory) {
- return false;
- }
-}
-
-/// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L12
-class webOnlyAssetManager {
- /// Shim for getAssetUrl.
- /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L45
- static String getAssetUrl(String asset) => '';
-}
-
-/// Signature of callbacks that have no arguments and return no data.
-typedef VoidCallback = void Function();
diff --git a/packages/webview_flutter/webview_flutter_web/lib/src/shims/dart_ui_real.dart b/packages/webview_flutter/webview_flutter_web/lib/src/shims/dart_ui_real.dart
deleted file mode 100644
index 276b768..0000000
--- a/packages/webview_flutter/webview_flutter_web/lib/src/shims/dart_ui_real.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// 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.
-
-export 'dart:ui';
diff --git a/packages/webview_flutter/webview_flutter_web/lib/src/web_webview_controller.dart b/packages/webview_flutter/webview_flutter_web/lib/src/web_webview_controller.dart
index daf1861..79f28b8 100644
--- a/packages/webview_flutter/webview_flutter_web/lib/src/web_webview_controller.dart
+++ b/packages/webview_flutter/webview_flutter_web/lib/src/web_webview_controller.dart
@@ -4,13 +4,13 @@
import 'dart:convert';
import 'dart:html' as html;
+import 'dart:ui_web' as ui_web;
import 'package:flutter/cupertino.dart';
import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart';
import 'content_type.dart';
import 'http_request_factory.dart';
-import 'shims/dart_ui.dart' as ui;
/// An implementation of [PlatformWebViewControllerCreationParams] using Flutter
/// for Web API.
@@ -115,7 +115,7 @@
: super.implementation(params) {
final WebWebViewController controller =
params.controller as WebWebViewController;
- ui.platformViewRegistry.registerViewFactory(
+ ui_web.platformViewRegistry.registerViewFactory(
controller._webWebViewParams.iFrame.id,
(int viewId) => controller._webWebViewParams.iFrame,
);
diff --git a/packages/webview_flutter/webview_flutter_web/lib/src/webview_flutter_web_legacy.dart b/packages/webview_flutter/webview_flutter_web/lib/src/webview_flutter_web_legacy.dart
index ebf3c79..1f83bf4 100644
--- a/packages/webview_flutter/webview_flutter_web/lib/src/webview_flutter_web_legacy.dart
+++ b/packages/webview_flutter/webview_flutter_web/lib/src/webview_flutter_web_legacy.dart
@@ -5,6 +5,8 @@
import 'dart:async';
import 'dart:convert';
import 'dart:html';
+import 'dart:ui_web' as ui_web;
+
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/widgets.dart';
@@ -12,7 +14,6 @@
// ignore: implementation_imports
import 'package:webview_flutter_platform_interface/src/webview_flutter_platform_interface_legacy.dart';
import 'http_request_factory.dart';
-import 'shims/dart_ui.dart' as ui;
/// Builds an iframe based WebView.
///
@@ -20,7 +21,7 @@
class WebWebViewPlatform implements WebViewPlatform {
/// Constructs a new instance of [WebWebViewPlatform].
WebWebViewPlatform() {
- ui.platformViewRegistry.registerViewFactory(
+ ui_web.platformViewRegistry.registerViewFactory(
'webview-iframe',
(int viewId) => IFrameElement()
..id = 'webview-$viewId'
diff --git a/packages/webview_flutter/webview_flutter_web/pubspec.yaml b/packages/webview_flutter/webview_flutter_web/pubspec.yaml
index 2ec1e0b..ed646b4 100644
--- a/packages/webview_flutter/webview_flutter_web/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter_web/pubspec.yaml
@@ -2,11 +2,11 @@
description: A Flutter plugin that provides a WebView widget on web.
repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter_web
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22
-version: 0.2.2+2
+version: 0.2.2+3
environment:
- sdk: ">=2.19.0 <4.0.0"
- flutter: ">=3.7.0"
+ sdk: ">=3.1.0 <4.0.0"
+ flutter: ">=3.13.0"
flutter:
plugin: