Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions lib/web_ui/dev/test_platform.dart
Original file line number Diff line number Diff line change
Expand Up @@ -512,10 +512,7 @@ class BrowserPlatform extends PlatformPlugin {
<meta name="assetBase" content="/">
<script>
window.flutterConfiguration = {
canvasKitBaseUrl: "/canvaskit/",
// TODO(eyebrowsoffire): Put the actual variant to be used.
// https://github.com/flutter/engine/pull/39984
canvasKitVariant: "full",
canvasKitBaseUrl: "/canvaskit/"
};
</script>
$link
Expand Down
15 changes: 7 additions & 8 deletions lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@ import 'renderer.dart';
/// Entrypoint into the CanvasKit API.
late CanvasKit canvasKit;

bool get _enableCanvasKitChromiumInAutoMode => browserSupportsCanvaskitChromium;
// TODO(mdebbar): Turn this on when CanvasKit Chromium is ready.
// Set it to `browserSupportsCanvasKitChromium`.
// https://github.com/flutter/flutter/issues/122329
const bool _enableCanvasKitChromiumInAutoMode = false;

/// Sets the [CanvasKit] object on `window` so we can use `@JS()` to bind to
/// static APIs.
Expand Down Expand Up @@ -2696,10 +2699,8 @@ const String _kFullCanvasKitJsFileName = 'canvaskit.js';
const String _kChromiumCanvasKitJsFileName = 'chromium/canvaskit.js';

String get _canvasKitBaseUrl => configuration.canvasKitBaseUrl;

@visibleForTesting
List<String> getCanvasKitJsFileNames(CanvasKitVariant variant) {
switch (variant) {
List<String> get _canvasKitJsFileNames {
switch (configuration.canvasKitVariant) {
case CanvasKitVariant.auto:
return <String>[
if (_enableCanvasKitChromiumInAutoMode) _kChromiumCanvasKitJsFileName,
Expand All @@ -2712,9 +2713,7 @@ List<String> getCanvasKitJsFileNames(CanvasKitVariant variant) {
}
}
Iterable<String> get _canvasKitJsUrls {
return getCanvasKitJsFileNames(configuration.canvasKitVariant).map(
(String filename) => '$_canvasKitBaseUrl$filename',
);
return _canvasKitJsFileNames.map((String filename) => '$_canvasKitBaseUrl$filename');
}
@visibleForTesting
String canvasKitWasmModuleUrl(String file, String canvasKitBase) =>
Expand Down
51 changes: 0 additions & 51 deletions lib/web_ui/test/canvaskit/canvaskit_api_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import 'dart:math';
import 'dart:typed_data';

import 'package:js/js.dart';
import 'package:test/bootstrap/browser.dart';
import 'package:test/test.dart';

Expand Down Expand Up @@ -1835,49 +1834,6 @@ void _paragraphTests() {
expect(surface, isNotNull);
}, skip: isFirefox); // Intended: Headless firefox has no webgl support https://github.com/flutter/flutter/issues/109265

group('getCanvasKitJsFileNames', () {
late dynamic oldV8BreakIterator = v8BreakIterator;
setUp(() {
oldV8BreakIterator = v8BreakIterator;
});
tearDown(() {
v8BreakIterator = oldV8BreakIterator;
debugResetBrowserSupportsImageDecoder();
});

test('in Chromium-based browsers', () {
v8BreakIterator = Object(); // Any non-null value.
browserSupportsImageDecoder = true;

expect(getCanvasKitJsFileNames(CanvasKitVariant.full), <String>['canvaskit.js']);
expect(getCanvasKitJsFileNames(CanvasKitVariant.chromium), <String>['chromium/canvaskit.js']);
expect(getCanvasKitJsFileNames(CanvasKitVariant.auto), <String>[
'chromium/canvaskit.js',
'canvaskit.js',
]);
});

test('in other browsers', () {
v8BreakIterator = null;
browserSupportsImageDecoder = true;
expect(getCanvasKitJsFileNames(CanvasKitVariant.full), <String>['canvaskit.js']);
expect(getCanvasKitJsFileNames(CanvasKitVariant.chromium), <String>['chromium/canvaskit.js']);
expect(getCanvasKitJsFileNames(CanvasKitVariant.auto), <String>['canvaskit.js']);

v8BreakIterator = Object();
browserSupportsImageDecoder = false;
expect(getCanvasKitJsFileNames(CanvasKitVariant.full), <String>['canvaskit.js']);
expect(getCanvasKitJsFileNames(CanvasKitVariant.chromium), <String>['chromium/canvaskit.js']);
expect(getCanvasKitJsFileNames(CanvasKitVariant.auto), <String>['canvaskit.js']);

v8BreakIterator = null;
browserSupportsImageDecoder = false;
expect(getCanvasKitJsFileNames(CanvasKitVariant.full), <String>['canvaskit.js']);
expect(getCanvasKitJsFileNames(CanvasKitVariant.chromium), <String>['chromium/canvaskit.js']);
expect(getCanvasKitJsFileNames(CanvasKitVariant.auto), <String>['canvaskit.js']);
});
});

test('respects actual location of canvaskit files', () {
expect(
canvasKitWasmModuleUrl('canvaskit.wasm', 'https://example.com/'),
Expand All @@ -1893,10 +1849,3 @@ void _paragraphTests() {
);
});
}


@JS('window.Intl.v8BreakIterator')
external dynamic get v8BreakIterator;

@JS('window.Intl.v8BreakIterator')
external set v8BreakIterator(dynamic x);