Skip to content

Commit f288fe5

Browse files
authored
[web] Enable canvas measurement by default (flutter#19924)
1 parent ec9e17c commit f288fe5

File tree

3 files changed

+18
-12
lines changed

3 files changed

+18
-12
lines changed

lib/web_ui/lib/src/engine/web_experiments.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class WebExperiments {
3131

3232
static const bool _defaultUseCanvasText = const bool.fromEnvironment(
3333
'FLUTTER_WEB_USE_EXPERIMENTAL_CANVAS_TEXT',
34-
defaultValue: false,
34+
defaultValue: true,
3535
);
3636

3737
bool _useCanvasText = _defaultUseCanvasText;

lib/web_ui/test/engine/web_experiments_test.dart

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import 'dart:js_util' as js_util;
99
import 'package:test/test.dart';
1010
import 'package:ui/src/engine.dart';
1111

12+
const bool _defaultUseCanvasText = true;
13+
1214
void main() {
1315
setUp(() {
1416
WebExperiments.ensureInitialized();
@@ -19,7 +21,7 @@ void main() {
1921
});
2022

2123
test('default web experiment values', () {
22-
expect(WebExperiments.instance.useCanvasText, false);
24+
expect(WebExperiments.instance.useCanvasText, _defaultUseCanvasText);
2325
});
2426

2527
test('can turn on/off web experiments', () {
@@ -31,36 +33,36 @@ void main() {
3133

3234
WebExperiments.instance.updateExperiment('useCanvasText', null);
3335
// Goes back to default value.
34-
expect(WebExperiments.instance.useCanvasText, false);
36+
expect(WebExperiments.instance.useCanvasText, _defaultUseCanvasText);
3537
});
3638

3739
test('ignores unknown experiments', () {
38-
expect(WebExperiments.instance.useCanvasText, false);
40+
expect(WebExperiments.instance.useCanvasText, _defaultUseCanvasText);
3941
WebExperiments.instance.updateExperiment('foobarbazqux', true);
40-
expect(WebExperiments.instance.useCanvasText, false);
42+
expect(WebExperiments.instance.useCanvasText, _defaultUseCanvasText);
4143
WebExperiments.instance.updateExperiment('foobarbazqux', false);
42-
expect(WebExperiments.instance.useCanvasText, false);
44+
expect(WebExperiments.instance.useCanvasText, _defaultUseCanvasText);
4345
});
4446

4547
test('can reset web experiments', () {
46-
WebExperiments.instance.updateExperiment('useCanvasText', true);
48+
WebExperiments.instance.updateExperiment('useCanvasText', false);
4749
WebExperiments.instance.reset();
48-
expect(WebExperiments.instance.useCanvasText, false);
50+
expect(WebExperiments.instance.useCanvasText, _defaultUseCanvasText);
4951

50-
WebExperiments.instance.updateExperiment('useCanvasText', true);
52+
WebExperiments.instance.updateExperiment('useCanvasText', false);
5153
WebExperiments.instance.updateExperiment('foobarbazqux', true);
5254
WebExperiments.instance.reset();
53-
expect(WebExperiments.instance.useCanvasText, false);
55+
expect(WebExperiments.instance.useCanvasText, _defaultUseCanvasText);
5456
});
5557

5658
test('js interop also works', () {
57-
expect(WebExperiments.instance.useCanvasText, false);
59+
expect(WebExperiments.instance.useCanvasText, _defaultUseCanvasText);
5860

5961
expect(() => jsUpdateExperiment('useCanvasText', true), returnsNormally);
6062
expect(WebExperiments.instance.useCanvasText, true);
6163

6264
expect(() => jsUpdateExperiment('useCanvasText', null), returnsNormally);
63-
expect(WebExperiments.instance.useCanvasText, false);
65+
expect(WebExperiments.instance.useCanvasText, _defaultUseCanvasText);
6466
});
6567

6668
test('js interop throws on wrong type', () {

lib/web_ui/test/golden_tests/engine/scuba.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,17 +116,21 @@ void testEachCanvas(String description, CanvasTest body,
116116
test('$description (dom)', () {
117117
try {
118118
TextMeasurementService.initialize(rulerCacheCapacity: 2);
119+
WebExperiments.instance.useCanvasText = false;
119120
return body(DomCanvas());
120121
} finally {
122+
WebExperiments.instance.useCanvasText = null;
121123
TextMeasurementService.clearCache();
122124
}
123125
});
124126
if (!bSkipHoudini) {
125127
test('$description (houdini)', () {
126128
try {
127129
TextMeasurementService.initialize(rulerCacheCapacity: 2);
130+
WebExperiments.instance.useCanvasText = false;
128131
return body(HoudiniCanvas(bounds));
129132
} finally {
133+
WebExperiments.instance.useCanvasText = null;
130134
TextMeasurementService.clearCache();
131135
}
132136
});

0 commit comments

Comments
 (0)