[web] Cleanup everything HTML from the engine (outside html/ folder) (#162840)
Things being cleaned up: - Remove `flutter.js` support for HTML/AUTO renderers. - Delete the renderer auto-detection logic and flag. - Remove references to the `HtmlRenderer` from renderer-agnostic code. - Remove the `auto-selected`/`requested explicitly` info from the DOM. As a follow up to this, I'll create another PR that deletes the entire `html/` folder.
This commit is contained in:
parent
db0bdfd117
commit
4be1b57d50
@ -92,13 +92,7 @@ export class FlutterLoader {
|
||||
* @param {import("./types").WebRenderer} renderer
|
||||
**/
|
||||
const buildContainsRenderer = (build, renderer) => {
|
||||
switch (build.renderer) {
|
||||
// The "auto" build contains both canvaskit and html renderers.
|
||||
case "auto":
|
||||
return renderer == "canvaskit" || renderer == "html";
|
||||
default:
|
||||
return build.renderer == renderer;
|
||||
}
|
||||
return build.renderer == renderer;
|
||||
}
|
||||
|
||||
const buildIsCompatible = (build) => {
|
||||
|
@ -8,8 +8,6 @@ type WasmCompileTarget = "dart2wasm";
|
||||
export type CompileTarget = JSCompileTarget | WasmCompileTarget;
|
||||
|
||||
export type WebRenderer =
|
||||
"auto" |
|
||||
"html" |
|
||||
"canvaskit" |
|
||||
"skwasm";
|
||||
|
||||
|
@ -172,12 +172,6 @@ class FlutterConfiguration {
|
||||
// runtime. They must be static constants for the compiler to remove dead code
|
||||
// effectively.
|
||||
|
||||
/// Auto detect which rendering backend to use.
|
||||
///
|
||||
/// Using flutter tools option "--web-renderer=auto" would set the value to
|
||||
/// true. Otherwise, it would be false.
|
||||
static const bool flutterWebAutoDetect = bool.fromEnvironment('FLUTTER_WEB_AUTO_DETECT');
|
||||
|
||||
static const bool flutterWebUseSkwasm = bool.fromEnvironment('FLUTTER_WEB_USE_SKWASM');
|
||||
|
||||
/// Enable the Skia-based rendering backend.
|
||||
|
@ -39,9 +39,7 @@ abstract class HtmlImageElementCodec implements ui.Codec {
|
||||
// builders to create UI.
|
||||
chunkCallback?.call(0, 100);
|
||||
imgElement = createDomHTMLImageElement();
|
||||
if (renderer is! HtmlRenderer) {
|
||||
imgElement!.crossOrigin = 'anonymous';
|
||||
}
|
||||
imgElement!.crossOrigin = 'anonymous';
|
||||
imgElement!
|
||||
..decoding = 'async'
|
||||
..src = src;
|
||||
|
@ -190,12 +190,7 @@ Future<void> initializeEngineUi() async {
|
||||
ensureMetaTag('generator', 'Flutter');
|
||||
|
||||
if (!configuration.multiViewEnabled) {
|
||||
final EngineFlutterWindow implicitView = ensureImplicitViewInitialized(
|
||||
hostElement: configuration.hostElement,
|
||||
);
|
||||
if (renderer is HtmlRenderer) {
|
||||
ensureResourceManagerInitialized(implicitView);
|
||||
}
|
||||
ensureImplicitViewInitialized(hostElement: configuration.hostElement);
|
||||
}
|
||||
_initializationState = DebugEngineInitializationState.initialized;
|
||||
}
|
||||
|
@ -25,35 +25,13 @@ abstract class Renderer {
|
||||
factory Renderer._internal() {
|
||||
if (FlutterConfiguration.flutterWebUseSkwasm) {
|
||||
return SkwasmRenderer();
|
||||
} else if (FlutterConfiguration.useSkia) {
|
||||
return CanvasKitRenderer();
|
||||
} else {
|
||||
bool useCanvasKit;
|
||||
if (FlutterConfiguration.flutterWebAutoDetect) {
|
||||
if (configuration.requestedRendererType != null) {
|
||||
useCanvasKit = configuration.requestedRendererType == 'canvaskit';
|
||||
} else {
|
||||
// If requestedRendererType is not specified, use CanvasKit for desktop and
|
||||
// html for mobile.
|
||||
useCanvasKit = isDesktop;
|
||||
}
|
||||
} else {
|
||||
useCanvasKit = FlutterConfiguration.useSkia;
|
||||
}
|
||||
|
||||
// Warn users in development that anything other than canvaskit is deprecated.
|
||||
assert(() {
|
||||
if (!useCanvasKit) {
|
||||
// The user requested 'html' or 'auto' either in the command-line or JS.
|
||||
final String requested =
|
||||
configuration.requestedRendererType ??
|
||||
(FlutterConfiguration.flutterWebAutoDetect ? 'auto' : 'html');
|
||||
printWarning(
|
||||
'The HTML Renderer is being deprecated. Stop using the "$requested" renderer mode.'
|
||||
'\nSee: https://docs.flutter.dev/to/web-html-renderer-deprecation',
|
||||
);
|
||||
}
|
||||
return true;
|
||||
}());
|
||||
return useCanvasKit ? CanvasKitRenderer() : HtmlRenderer();
|
||||
throw StateError(
|
||||
'Wrong combination of configuration flags. Was expecting either CanvasKit or Skwasm to be '
|
||||
'selected.',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,6 @@ class GlobalHtmlAttributes {
|
||||
|
||||
void applyAttributes({
|
||||
required int viewId,
|
||||
required bool autoDetectRenderer,
|
||||
required String rendererTag,
|
||||
required String buildMode,
|
||||
}) {
|
||||
@ -39,10 +38,7 @@ class GlobalHtmlAttributes {
|
||||
// document.querySelector('flutter-view[flt-view-id="$viewId"]')
|
||||
rootElement.setAttribute(flutterViewIdAttributeName, viewId);
|
||||
|
||||
// How was the current renderer selected?
|
||||
final String rendererSelection = autoDetectRenderer ? 'auto-selected' : 'requested explicitly';
|
||||
|
||||
hostElement.setAttribute('flt-renderer', '$rendererTag ($rendererSelection)');
|
||||
hostElement.setAttribute('flt-renderer', rendererTag);
|
||||
hostElement.setAttribute('flt-build-mode', buildMode);
|
||||
// TODO(mdebbar): Disable spellcheck until changes in the framework and
|
||||
// engine are complete.
|
||||
|
@ -11,7 +11,6 @@ import 'package:ui/ui_web/src/ui_web.dart' as ui_web;
|
||||
|
||||
import '../engine.dart' show DimensionsProvider, registerHotRestartListener, renderer;
|
||||
import 'browser_detection.dart';
|
||||
import 'configuration.dart';
|
||||
import 'display.dart';
|
||||
import 'dom.dart';
|
||||
import 'initialization.dart';
|
||||
@ -73,7 +72,6 @@ class EngineFlutterView implements ui.FlutterView {
|
||||
_resizeSubscription = onResize.listen(_didResize);
|
||||
_globalHtmlAttributes.applyAttributes(
|
||||
viewId: viewId,
|
||||
autoDetectRenderer: FlutterConfiguration.flutterWebAutoDetect,
|
||||
rendererTag: renderer.rendererTag,
|
||||
buildMode: buildMode,
|
||||
);
|
||||
|
@ -22,25 +22,19 @@ void doTests() {
|
||||
|
||||
globalHtmlAttributes.applyAttributes(
|
||||
viewId: 123,
|
||||
autoDetectRenderer: true,
|
||||
rendererTag: 'canvaskit',
|
||||
buildMode: 'release',
|
||||
);
|
||||
|
||||
expect(rootElement.getAttribute('flt-view-id'), '123');
|
||||
expect(hostElement.getAttribute('flt-renderer'), 'canvaskit (auto-selected)');
|
||||
expect(hostElement.getAttribute('flt-renderer'), 'canvaskit');
|
||||
expect(hostElement.getAttribute('flt-build-mode'), 'release');
|
||||
expect(hostElement.getAttribute('spellcheck'), 'false');
|
||||
|
||||
globalHtmlAttributes.applyAttributes(
|
||||
viewId: 456,
|
||||
autoDetectRenderer: false,
|
||||
rendererTag: 'html',
|
||||
buildMode: 'debug',
|
||||
);
|
||||
globalHtmlAttributes.applyAttributes(viewId: 456, rendererTag: 'skwasm', buildMode: 'debug');
|
||||
|
||||
expect(rootElement.getAttribute('flt-view-id'), '456');
|
||||
expect(hostElement.getAttribute('flt-renderer'), 'html (requested explicitly)');
|
||||
expect(hostElement.getAttribute('flt-renderer'), 'skwasm');
|
||||
expect(hostElement.getAttribute('flt-build-mode'), 'debug');
|
||||
expect(hostElement.getAttribute('spellcheck'), 'false');
|
||||
});
|
||||
|
@ -551,7 +551,7 @@ Future<void> testMain() async {
|
||||
final DomElement host = createDomHTMLDivElement();
|
||||
final EngineFlutterView view = EngineFlutterView(dispatcher, host);
|
||||
|
||||
expect(host.getAttribute('flt-renderer'), 'canvaskit (requested explicitly)');
|
||||
expect(host.getAttribute('flt-renderer'), 'canvaskit');
|
||||
expect(host.getAttribute('flt-build-mode'), 'debug');
|
||||
|
||||
view.dispose();
|
||||
|
Loading…
x
Reference in New Issue
Block a user