From daf4467463c71b67fca0b6501d7aedd4d81cedb3 Mon Sep 17 00:00:00 2001 From: Mouad Debbar Date: Mon, 12 Jul 2021 12:11:41 -0700 Subject: [PATCH] [web] Librarify all remaining files (#27296) --- lib/web_ui/lib/src/engine.dart | 67 +++++++++---------- lib/web_ui/lib/src/engine/clipboard.dart | 16 +++-- lib/web_ui/lib/src/engine/color_filter.dart | 4 +- lib/web_ui/lib/src/engine/dom_renderer.dart | 31 +++++++-- .../lib/src/engine/font_change_util.dart | 7 +- .../lib/src/engine/platform_dispatcher.dart | 31 ++++++++- lib/web_ui/lib/src/engine/platform_views.dart | 2 - .../platform_views/content_manager.dart | 9 ++- .../platform_views/message_handler.dart | 6 +- .../lib/src/engine/platform_views/slots.dart | 2 +- lib/web_ui/lib/src/engine/util.dart | 5 ++ lib/web_ui/lib/src/engine/window.dart | 43 ++++++++---- 12 files changed, 151 insertions(+), 72 deletions(-) diff --git a/lib/web_ui/lib/src/engine.dart b/lib/web_ui/lib/src/engine.dart index d8405c9657..0914b7e84d 100644 --- a/lib/web_ui/lib/src/engine.dart +++ b/lib/web_ui/lib/src/engine.dart @@ -19,16 +19,20 @@ import 'dart:async'; // ignore: unused_import import 'dart:collection' show ListBase, IterableBase, DoubleLinkedQueue, DoubleLinkedQueueEntry; +// ignore: unused_import import 'dart:convert' hide Codec; import 'dart:developer' as developer; import 'dart:html' as html; +// ignore: unused_import import 'dart:js' as js; +// ignore: unused_import import 'dart:js_util' as js_util; // ignore: unused_import import 'dart:math' as math; import 'dart:typed_data'; import 'package:js/js.dart'; +// ignore: unused_import import 'package:meta/meta.dart'; import '../ui.dart' as ui; @@ -37,16 +41,23 @@ export 'engine/alarm_clock.dart'; export 'engine/assets.dart'; -import 'engine/browser_detection.dart'; export 'engine/browser_detection.dart'; export 'engine/canvas_pool.dart'; +export 'engine/clipboard.dart'; + +export 'engine/color_filter.dart'; + +import 'engine/dom_renderer.dart'; +export 'engine/dom_renderer.dart'; + export 'engine/engine_canvas.dart'; +export 'engine/font_change_util.dart'; + export 'engine/frame_reference.dart'; -import 'engine/host_node.dart'; export 'engine/host_node.dart'; export 'engine/html_image_codec.dart'; @@ -105,7 +116,6 @@ export 'engine/html/recording_canvas.dart'; export 'engine/html/render_vertices.dart'; -import 'engine/html/scene.dart'; export 'engine/html/scene.dart'; export 'engine/html/scene_builder.dart'; @@ -130,7 +140,6 @@ export 'engine/html/surface_stats.dart'; export 'engine/html/transform.dart'; -import 'engine/keyboard_binding.dart'; export 'engine/keyboard_binding.dart'; import 'engine/keyboard.dart'; @@ -141,7 +150,6 @@ export 'engine/key_map.dart'; import 'engine/mouse_cursor.dart'; export 'engine/mouse_cursor.dart'; -import 'engine/navigation/history.dart'; export 'engine/navigation/history.dart'; import 'engine/navigation/js_url_strategy.dart'; @@ -154,10 +162,20 @@ export 'engine/onscreen_logging.dart'; export 'engine/picture.dart'; -import 'engine/plugins.dart'; +import 'engine/platform_dispatcher.dart'; +export 'engine/platform_dispatcher.dart'; + +export 'engine/platform_views.dart'; + +import 'engine/platform_views/content_manager.dart'; +export 'engine/platform_views/content_manager.dart'; + +export 'engine/platform_views/message_handler.dart'; + +export 'engine/platform_views/slots.dart'; + export 'engine/plugins.dart'; -import 'engine/pointer_binding.dart'; export 'engine/pointer_binding.dart'; export 'engine/pointer_converter.dart'; @@ -167,7 +185,6 @@ export 'engine/profiler.dart'; export 'engine/rrect_renderer.dart'; -import 'engine/semantics/accessibility.dart'; export 'engine/semantics/accessibility.dart'; export 'engine/semantics/checkable.dart'; @@ -182,7 +199,6 @@ export 'engine/semantics/live_region.dart'; export 'engine/semantics/scrollable.dart'; -import 'engine/semantics/semantics.dart'; export 'engine/semantics/semantics.dart'; export 'engine/semantics/semantics_helper.dart'; @@ -193,17 +209,14 @@ export 'engine/semantics/text_field.dart'; export 'engine/services/buffers.dart'; -import 'engine/services/message_codec.dart'; export 'engine/services/message_codec.dart'; -import 'engine/services/message_codecs.dart'; export 'engine/services/message_codecs.dart'; export 'engine/services/serialization.dart'; export 'engine/shadow.dart'; -import 'engine/test_embedding.dart'; export 'engine/test_embedding.dart'; export 'engine/text/font_collection.dart'; @@ -214,7 +227,6 @@ export 'engine/text/line_break_properties.dart'; export 'engine/text/line_breaker.dart'; -import 'engine/text/measurement.dart'; export 'engine/text/measurement.dart'; export 'engine/text/paint_service.dart'; @@ -239,10 +251,8 @@ export 'engine/text_editing/input_type.dart'; export 'engine/text_editing/text_capitalization.dart'; -import 'engine/text_editing/text_editing.dart'; export 'engine/text_editing/text_editing.dart'; -import 'engine/util.dart'; export 'engine/util.dart'; export 'engine/validators.dart'; @@ -252,17 +262,17 @@ export 'engine/vector_math.dart'; import 'engine/web_experiments.dart'; export 'engine/web_experiments.dart'; +import 'engine/window.dart'; +export 'engine/window.dart'; + export 'engine/canvaskit/canvas.dart'; -import 'engine/canvaskit/canvaskit_api.dart'; export 'engine/canvaskit/canvaskit_api.dart'; export 'engine/canvaskit/canvaskit_canvas.dart'; -import 'engine/canvaskit/color_filter.dart'; export 'engine/canvaskit/color_filter.dart'; -import 'engine/canvaskit/embedded_views.dart'; export 'engine/canvaskit/embedded_views.dart'; export 'engine/canvaskit/fonts.dart'; @@ -273,14 +283,12 @@ export 'engine/canvaskit/image.dart'; export 'engine/canvaskit/image_filter.dart'; -import 'engine/canvaskit/initialization.dart'; export 'engine/canvaskit/initialization.dart'; export 'engine/canvaskit/interval_tree.dart'; export 'engine/canvaskit/layer.dart'; -import 'engine/canvaskit/layer_scene_builder.dart'; export 'engine/canvaskit/layer_scene_builder.dart'; export 'engine/canvaskit/layer_tree.dart'; @@ -299,7 +307,6 @@ export 'engine/canvaskit/picture.dart'; export 'engine/canvaskit/picture_recorder.dart'; -import 'engine/canvaskit/rasterizer.dart'; export 'engine/canvaskit/rasterizer.dart'; export 'engine/canvaskit/raster_cache.dart'; @@ -318,16 +325,6 @@ export 'engine/canvaskit/util.dart'; export 'engine/canvaskit/vertices.dart'; -part 'engine/clipboard.dart'; -part 'engine/color_filter.dart'; -part 'engine/dom_renderer.dart'; -part 'engine/font_change_util.dart'; -part 'engine/platform_dispatcher.dart'; -part 'engine/platform_views.dart'; -part 'engine/platform_views/content_manager.dart'; -part 'engine/platform_views/message_handler.dart'; -part 'engine/platform_views/slots.dart'; -part 'engine/window.dart'; // The mode the app is running in. // Keep these in sync with the same constants on the framework-side under foundation/constants.dart. @@ -428,12 +425,12 @@ void initializeEngine() { // part of the rasterization process, particularly in the HTML // renderer, takes place in the `SceneBuilder.build()`. frameTimingsOnBuildStart(); - if (EnginePlatformDispatcher.instance._onBeginFrame != null) { + if (EnginePlatformDispatcher.instance.onBeginFrame != null) { EnginePlatformDispatcher.instance.invokeOnBeginFrame( Duration(microseconds: highResTimeMicroseconds)); } - if (EnginePlatformDispatcher.instance._onDrawFrame != null) { + if (EnginePlatformDispatcher.instance.onDrawFrame != null) { // TODO(yjbanov): technically Flutter flushes microtasks between // onBeginFrame and onDrawFrame. We don't, which hasn't // been an issue yet, but eventually we'll have to @@ -449,12 +446,12 @@ void initializeEngine() { } void _addUrlStrategyListener() { - _jsSetUrlStrategy = allowInterop((JsUrlStrategy? jsStrategy) { + jsSetUrlStrategy = allowInterop((JsUrlStrategy? jsStrategy) { customUrlStrategy = jsStrategy == null ? null : CustomUrlStrategy.fromJs(jsStrategy); }); registerHotRestartListener(() { - _jsSetUrlStrategy = null; + jsSetUrlStrategy = null; }); } diff --git a/lib/web_ui/lib/src/engine/clipboard.dart b/lib/web_ui/lib/src/engine/clipboard.dart index 71e42bb947..972c93b919 100644 --- a/lib/web_ui/lib/src/engine/clipboard.dart +++ b/lib/web_ui/lib/src/engine/clipboard.dart @@ -2,7 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:html' as html; + +import 'package:ui/ui.dart' as ui; + +import 'browser_detection.dart'; +import 'services.dart'; +import 'util.dart'; /// Handles clipboard related platform messages. class ClipboardMessageHandler { @@ -78,17 +84,13 @@ class ClipboardMessageHandler { } } -bool _unsafeIsNull(dynamic object) { - return object == null; -} - /// Provides functionality for writing text to clipboard. /// /// A concrete implementation is picked at runtime based on the available /// APIs and the browser. abstract class CopyToClipboardStrategy { factory CopyToClipboardStrategy() { - return !_unsafeIsNull(html.window.navigator.clipboard) + return !unsafeIsNull(html.window.navigator.clipboard) ? ClipboardAPICopyStrategy() : ExecCommandCopyStrategy(); } @@ -108,7 +110,7 @@ abstract class CopyToClipboardStrategy { abstract class PasteFromClipboardStrategy { factory PasteFromClipboardStrategy() { return (browserEngine == BrowserEngine.firefox || - _unsafeIsNull(html.window.navigator.clipboard)) + unsafeIsNull(html.window.navigator.clipboard)) ? ExecCommandPasteStrategy() : ClipboardAPIPasteStrategy(); } diff --git a/lib/web_ui/lib/src/engine/color_filter.dart b/lib/web_ui/lib/src/engine/color_filter.dart index e7c30babc7..10b9202b00 100644 --- a/lib/web_ui/lib/src/engine/color_filter.dart +++ b/lib/web_ui/lib/src/engine/color_filter.dart @@ -2,7 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'package:ui/ui.dart' as ui; + +import 'canvaskit/color_filter.dart'; /// A description of a color filter to apply when drawing a shape or compositing /// a layer with a particular [Paint]. A color filter is a function that takes diff --git a/lib/web_ui/lib/src/engine/dom_renderer.dart b/lib/web_ui/lib/src/engine/dom_renderer.dart index 02a0c7ebfc..3409829a96 100644 --- a/lib/web_ui/lib/src/engine/dom_renderer.dart +++ b/lib/web_ui/lib/src/engine/dom_renderer.dart @@ -2,7 +2,26 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:async'; +import 'dart:html' as html; +import 'dart:js' as js; +import 'dart:js_util' as js_util; + +import 'package:ui/src/engine.dart' show buildMode, registerHotRestartListener; +import 'package:ui/ui.dart' as ui; + +import 'browser_detection.dart'; +import 'canvaskit/initialization.dart'; +import 'canvaskit/canvaskit_api.dart'; +import 'host_node.dart'; +import 'keyboard_binding.dart'; +import 'platform_dispatcher.dart'; +import 'pointer_binding.dart'; +import 'semantics.dart'; +import 'text/measurement.dart'; +import 'text_editing/text_editing.dart'; +import 'util.dart'; +import 'window.dart'; class DomRenderer { DomRenderer() { @@ -514,7 +533,7 @@ class DomRenderer { } _localeSubscription = languageChangeEvent.forTarget(html.window).listen(_languageDidChange); - EnginePlatformDispatcher.instance._updateLocales(); + EnginePlatformDispatcher.instance.updateLocales(); } // Creates a [HostNode] into a `root` [html.Element]. @@ -550,7 +569,7 @@ class DomRenderer { window.computeOnScreenKeyboardInsets(true); EnginePlatformDispatcher.instance.invokeOnMetricsChanged(); } else { - window._computePhysicalSize(); + window.computePhysicalSize(); // When physical size changes this value has to be recalculated. window.computeOnScreenKeyboardInsets(false); EnginePlatformDispatcher.instance.invokeOnMetricsChanged(); @@ -559,7 +578,7 @@ class DomRenderer { /// Called immediately after browser window language change. void _languageDidChange(html.Event event) { - EnginePlatformDispatcher.instance._updateLocales(); + EnginePlatformDispatcher.instance.updateLocales(); if (ui.window.onLocaleChanged != null) { ui.window.onLocaleChanged!(); } @@ -626,9 +645,9 @@ class DomRenderer { /// See w3c screen api: https://www.w3.org/TR/screen-orientation/ Future setPreferredOrientation(List orientations) { final html.Screen screen = html.window.screen!; - if (!_unsafeIsNull(screen)) { + if (!unsafeIsNull(screen)) { final html.ScreenOrientation? screenOrientation = screen.orientation; - if (!_unsafeIsNull(screenOrientation)) { + if (!unsafeIsNull(screenOrientation)) { if (orientations.isEmpty) { screenOrientation!.unlock(); return Future.value(true); diff --git a/lib/web_ui/lib/src/engine/font_change_util.dart b/lib/web_ui/lib/src/engine/font_change_util.dart index 3aebc7532f..b41cc141af 100644 --- a/lib/web_ui/lib/src/engine/font_change_util.dart +++ b/lib/web_ui/lib/src/engine/font_change_util.dart @@ -2,7 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:async'; +import 'dart:html' as html; +import 'dart:typed_data'; + +import 'platform_dispatcher.dart'; +import 'services.dart'; final ByteData? _fontChangeMessage = JSONMessageCodec().encodeMessage({'type': 'fontsChange'}); diff --git a/lib/web_ui/lib/src/engine/platform_dispatcher.dart b/lib/web_ui/lib/src/engine/platform_dispatcher.dart index b46c425bad..6043ac6fb0 100644 --- a/lib/web_ui/lib/src/engine/platform_dispatcher.dart +++ b/lib/web_ui/lib/src/engine/platform_dispatcher.dart @@ -2,7 +2,30 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:async'; +import 'dart:html' as html; +import 'dart:typed_data'; +import 'dart:convert'; + +import 'package:meta/meta.dart'; +import 'package:ui/src/engine.dart' show platformViewManager, registerHotRestartListener; +import 'package:ui/ui.dart' as ui; + +import 'canvaskit/initialization.dart'; +import 'canvaskit/layer_scene_builder.dart'; +import 'canvaskit/rasterizer.dart'; +import 'clipboard.dart'; +import 'dom_renderer.dart'; +import 'html/scene.dart'; +import 'profiler.dart'; +import 'mouse_cursor.dart'; +import 'platform_views/message_handler.dart'; +import 'plugins.dart'; +import 'semantics.dart'; +import 'services.dart'; +import 'text_editing/text_editing.dart'; +import 'util.dart'; +import 'window.dart'; /// Requests that the browser schedule a frame. /// @@ -54,12 +77,14 @@ class EnginePlatformDispatcher extends ui.PlatformDispatcher { /// The current list of windows, Iterable get views => _windows.values; + Map get windows => _windows; Map _windows = {}; /// A map of opaque platform window identifiers to window configurations. /// /// This should be considered a protected member, only to be used by /// [PlatformDispatcher] subclasses. + Map get windowConfigurations => _windowConfigurations; Map _windowConfigurations = {}; @@ -326,7 +351,7 @@ class EnginePlatformDispatcher extends ui.PlatformDispatcher { return; } - if (_debugPrintPlatformMessages) { + if (debugPrintPlatformMessages) { print('Sent platform message on channel: "$name"'); } @@ -684,7 +709,7 @@ class EnginePlatformDispatcher extends ui.PlatformDispatcher { } // Called by DomRenderer when browser languages change. - void _updateLocales() { + void updateLocales() { _configuration = _configuration.copyWith(locales: parseBrowserLanguages()); } diff --git a/lib/web_ui/lib/src/engine/platform_views.dart b/lib/web_ui/lib/src/engine/platform_views.dart index 31280b7cd9..956e19d8e0 100644 --- a/lib/web_ui/lib/src/engine/platform_views.dart +++ b/lib/web_ui/lib/src/engine/platform_views.dart @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; - // TODO(yjbanov): The code in this file was temporarily moved to lib/web_ui/lib/ui.dart // during the NNBD migration so that `dart:ui` does not have to export // `dart:_engine`. NNBD does not allow exported non-migrated libraries diff --git a/lib/web_ui/lib/src/engine/platform_views/content_manager.dart b/lib/web_ui/lib/src/engine/platform_views/content_manager.dart index 3b1c394e15..5ce0c9863a 100644 --- a/lib/web_ui/lib/src/engine/platform_views/content_manager.dart +++ b/lib/web_ui/lib/src/engine/platform_views/content_manager.dart @@ -2,7 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:html' as html; + +import '../browser_detection.dart'; +import '../dom_renderer.dart'; +import '../util.dart'; +import 'slots.dart'; /// A function which takes a unique `id` and some `params` and creates an HTML element. /// @@ -149,7 +154,7 @@ class PlatformViewManager { final html.Element slot = html.document.createElement('slot') ..style.display = 'none' ..setAttribute('name', tombstoneName); - domRenderer._glassPaneShadow!.append(slot); + domRenderer.glassPaneShadow!.append(slot); // Link the element to the new slot element.setAttribute('slot', tombstoneName); // Delete both the element, and the new slot diff --git a/lib/web_ui/lib/src/engine/platform_views/message_handler.dart b/lib/web_ui/lib/src/engine/platform_views/message_handler.dart index 9d97ff8c2a..24e95f50d5 100644 --- a/lib/web_ui/lib/src/engine/platform_views/message_handler.dart +++ b/lib/web_ui/lib/src/engine/platform_views/message_handler.dart @@ -2,7 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:html' as html; +import 'dart:typed_data'; + +import '../services.dart'; +import 'content_manager.dart'; /// The signature for a callback for a Platform Message. From the `ui` package. /// Copied here so there's no circular dependencies. diff --git a/lib/web_ui/lib/src/engine/platform_views/slots.dart b/lib/web_ui/lib/src/engine/platform_views/slots.dart index b57f8b5386..3b1a08b47b 100644 --- a/lib/web_ui/lib/src/engine/platform_views/slots.dart +++ b/lib/web_ui/lib/src/engine/platform_views/slots.dart @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:html' as html; /// Returns the name of a slot from its `viewId`. /// diff --git a/lib/web_ui/lib/src/engine/util.dart b/lib/web_ui/lib/src/engine/util.dart index ee388a87ae..ad272c0bdf 100644 --- a/lib/web_ui/lib/src/engine/util.dart +++ b/lib/web_ui/lib/src/engine/util.dart @@ -555,3 +555,8 @@ bool listEquals(List? a, List? b) { String blurSigmasToCssString(double sigmaX, double sigmaY) { return 'blur(${(sigmaX + sigmaY) * 0.5}px)'; } + +/// Checks if the dynamic [object] is equal to null. +bool unsafeIsNull(dynamic object) { + return object == null; +} diff --git a/lib/web_ui/lib/src/engine/window.dart b/lib/web_ui/lib/src/engine/window.dart index 14b55540c6..62ac875115 100644 --- a/lib/web_ui/lib/src/engine/window.dart +++ b/lib/web_ui/lib/src/engine/window.dart @@ -2,12 +2,30 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +@JS() +library window; + +import 'dart:async'; +import 'dart:html' as html; +import 'dart:typed_data'; + +import 'package:js/js.dart'; +import 'package:meta/meta.dart'; +import 'package:ui/src/engine.dart' show registerHotRestartListener; +import 'package:ui/ui.dart' as ui; + +import 'browser_detection.dart'; +import 'navigation/history.dart'; +import 'navigation/js_url_strategy.dart'; +import 'navigation/url_strategy.dart'; +import 'platform_dispatcher.dart'; +import 'services.dart'; +import 'test_embedding.dart'; typedef _HandleMessageCallBack = Future Function(); /// When set to true, all platform messages will be printed to the console. -const bool /*!*/ _debugPrintPlatformMessages = false; +const bool debugPrintPlatformMessages = false; /// Whether [_customUrlStrategy] has been set or not. /// @@ -28,8 +46,8 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow { EngineFlutterWindow(this._windowId, this.platformDispatcher) { final EnginePlatformDispatcher engineDispatcher = platformDispatcher as EnginePlatformDispatcher; - engineDispatcher._windows[_windowId] = this; - engineDispatcher._windowConfigurations[_windowId] = ui.ViewConfiguration(); + engineDispatcher.windows[_windowId] = this; + engineDispatcher.windowConfigurations[_windowId] = ui.ViewConfiguration(); if (_isUrlStrategySet) { _browserHistory = MultiEntriesBrowserHistory(urlStrategy: _customUrlStrategy); @@ -44,7 +62,6 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow { /// Handles the browser history integration to allow users to use the back /// button, etc. - @visibleForTesting BrowserHistory get browserHistory { return _browserHistory ??= MultiEntriesBrowserHistory(urlStrategy: _urlStrategyForInitialization); @@ -164,15 +181,15 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow { ui.ViewConfiguration get viewConfiguration { final EnginePlatformDispatcher engineDispatcher = platformDispatcher as EnginePlatformDispatcher; - assert(engineDispatcher._windowConfigurations.containsKey(_windowId)); - return engineDispatcher._windowConfigurations[_windowId] ?? + assert(engineDispatcher.windowConfigurations.containsKey(_windowId)); + return engineDispatcher.windowConfigurations[_windowId] ?? ui.ViewConfiguration(); } @override ui.Size get physicalSize { if (_physicalSize == null) { - _computePhysicalSize(); + computePhysicalSize(); } assert(_physicalSize != null); return _physicalSize!; @@ -182,7 +199,7 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow { /// /// This function is expensive. It triggers browser layout if there are /// pending DOM writes. - void _computePhysicalSize() { + void computePhysicalSize() { bool override = false; assert(() { @@ -231,7 +248,7 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow { /// Forces the window to recompute its physical size. Useful for tests. void debugForceResize() { - _computePhysicalSize(); + computePhysicalSize(); } void computeOnScreenKeyboardInsets(bool isEditingOnMobile) { @@ -315,7 +332,7 @@ typedef _JsSetUrlStrategy = void Function(JsUrlStrategy?); // // TODO: Add integration test https://github.com/flutter/flutter/issues/66852 @JS('_flutter_web_set_location_strategy') -external set _jsSetUrlStrategy(_JsSetUrlStrategy? newJsSetUrlStrategy); +external set jsSetUrlStrategy(_JsSetUrlStrategy? newJsSetUrlStrategy); UrlStrategy? _createDefaultUrlStrategy() { return ui.debugEmulateFlutterTesterEnvironment @@ -356,8 +373,8 @@ class EngineFlutterWindowView extends ui.FlutterWindow { ui.ViewConfiguration get viewConfiguration { final EnginePlatformDispatcher engineDispatcher = platformDispatcher as EnginePlatformDispatcher; - assert(engineDispatcher._windowConfigurations.containsKey(_viewId)); - return engineDispatcher._windowConfigurations[_viewId] ?? + assert(engineDispatcher.windowConfigurations.containsKey(_viewId)); + return engineDispatcher.windowConfigurations[_viewId] ?? ui.ViewConfiguration(); } } -- GitLab