| // 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. |
| |
| // TODO(yjbanov): rename this file to web_only_api.dart. |
| // https://github.com/flutter/flutter/issues/100394 |
| // Rather than extending this file with new APIs, we |
| // should instead use js interop. |
| |
| // This file contains extra web-only API that non-web engines do not have. |
| // |
| // Why have web-only API? |
| // |
| // Because all Dart code is compiled (and tree shaken) as a single compilation |
| // unit it only has one entry-point - the `main()` function of the Flutter |
| // app. The top-level `main()` is generated by Flutter tool and it needs to |
| // ask the engine to initialize itself before calling the handwritten `main()` |
| // function of the app itself. To do that, it needs something to call. The |
| // mobile engine doesn't provide a function like that because the application |
| // starts from the Java (Android) or Objective-C (iOS). Any initial |
| // configuration can be done in Java and the engine's C++ code prior to |
| // calling Dart's `main()`. |
| |
| part of ui; |
| |
| /// Performs one-time initialization of the web environment that supports the |
| /// Flutter framework. |
| /// |
| /// This is only available on the Web, as native Flutter configures the |
| /// environment in the native embedder. |
| // TODO(mdebbar): Deprecate this and remove it. |
| // https://github.com/flutter/flutter/issues/127395 |
| Future<void> webOnlyInitializePlatform() async { |
| assert(() { |
| engine.printWarning( |
| 'The webOnlyInitializePlatform API is deprecated and will be removed in a ' |
| 'future release. Please use `bootstrapEngine` from `dart:ui_web` instead.', |
| ); |
| return true; |
| }()); |
| await engine.initializeEngine(); |
| } |
| |
| // TODO(mdebbar): Deprecate this and remove it. |
| // https://github.com/flutter/flutter/issues/127395 |
| Future<void> webOnlyWarmupEngine({ |
| VoidCallback? registerPlugins, |
| VoidCallback? runApp, |
| }) { |
| assert(() { |
| engine.printWarning( |
| 'The webOnlyWarmupEngine API is deprecated and will be removed in a ' |
| 'future release. Please use `bootstrapEngine` from `dart:ui_web` instead.', |
| ); |
| return true; |
| }()); |
| return ui_web.bootstrapEngine( |
| registerPlugins: registerPlugins, |
| runApp: runApp, |
| ); |
| } |
| |
| // TODO(mdebbar): Deprecate this and remove it. |
| // https://github.com/flutter/flutter/issues/127395 |
| bool get debugEmulateFlutterTesterEnvironment { |
| assert(() { |
| engine.printWarning( |
| 'The debugEmulateFlutterTesterEnvironment getter is deprecated and will ' |
| 'be removed in a future release. Please use ' |
| '`debugEmulateFlutterTesterEnvironment` from `dart:ui_web` instead.', |
| ); |
| return true; |
| }()); |
| return ui_web.debugEmulateFlutterTesterEnvironment; |
| } |
| |
| // TODO(mdebbar): Deprecate this and remove it. |
| // https://github.com/flutter/flutter/issues/127395 |
| set debugEmulateFlutterTesterEnvironment(bool value) { |
| assert(() { |
| engine.printWarning( |
| 'The debugEmulateFlutterTesterEnvironment setter is deprecated and will ' |
| 'be removed in a future release. Please use ' |
| '`debugEmulateFlutterTesterEnvironment` from `dart:ui_web` instead.', |
| ); |
| return true; |
| }()); |
| ui_web.debugEmulateFlutterTesterEnvironment = value; |
| } |
| |
| // TODO(mdebbar): Deprecate this and remove it. |
| // https://github.com/flutter/flutter/issues/127395 |
| ui_web.AssetManager get webOnlyAssetManager { |
| assert(() { |
| engine.printWarning( |
| 'The webOnlyAssetManager getter is deprecated and will be removed in a ' |
| 'future release. Please use `assetManager` from `dart:ui_web` instead.', |
| ); |
| return true; |
| }()); |
| return ui_web.assetManager; |
| } |
| |
| // TODO(mdebbar): Deprecate this and remove it. |
| // https://github.com/flutter/flutter/issues/127395 |
| void webOnlySetPluginHandler(PlatformMessageCallback handler) { |
| assert(() { |
| engine.printWarning( |
| 'The webOnlySetPluginHandler API is deprecated and will be removed in a ' |
| 'future release. Please use `setPluginHandler` from `dart:ui_web` instead.', |
| ); |
| return true; |
| }()); |
| ui_web.setPluginHandler(handler); |
| } |
| |
| // TODO(mdebbar): Deprecate this and remove it. |
| // https://github.com/flutter/flutter/issues/127395 |
| ui_web.PlatformViewRegistry get platformViewRegistry { |
| assert(() { |
| engine.printWarning( |
| 'The platformViewRegistry getter is deprecated and will be removed in a ' |
| 'future release. Please import it from `dart:ui_web` instead.', |
| ); |
| return true; |
| }()); |
| return ui_web.platformViewRegistry; |
| } |