Clamped system TextScaler asserts for zero font size with no upper limit
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 86/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- mobile-dev
Hướng nghiên cứu
Bắt đầu tại _ClampedTextScaler.scale và tái hiện trường hợp này bằng flutter_test, sử dụng một TextScaler của hệ thống được giới hạn với minScaleFactor: 1.0 và kích thước phông chữ bằng không. Công việc hoàn tất khi việc scale số không trả về số không mà không gây ra assertion và bài kiểm thử hồi quy tập trung vượt qua.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Steps to reproduce
On flutter/flutter master c035b6f25c9dc7692b581539db9e6bccc3f67b72, clamp a system TextScaler with a minimum scale factor, leave the maximum at its default infinity, and scale a zero font size.
Expected results
A valid zero font size scales to zero without an assertion.
Actual results
_ClampedTextScaler.scale calculates maxScale * fontSize as infinity * 0, yielding NaN. clampDouble rejects this bound in debug mode.
Code sample
testWidgets('zero font size with an unbounded clamped scaler', (tester) async {
final scaler = MediaQueryData.fromView(tester.view).textScaler
.clamp(minScaleFactor: 1.0);
expect(scaler.scale(0.0), 0.0);
});
Logs
The regression fails with an assertion in dart:ui/math.dart clampDouble, called by _ClampedTextScaler.scale. This uses the system scaler rather than TextScaler.linear, which has a specialized clamp implementation. A focused fix and regression test will follow in a draft PR.
Environment
macOS arm64; Flutter 3.49.0-1.0.pre-302; framework c035b6f25c9; engine content hash 41de58d04229db1294f191f7965e6009fb1bd7a2; Dart 3.14.0-294.0.dev. Reproduced with flutter_test.
- Ngôn ngữ chính
- Dart
- Star
- 180k
- Fork
- 33.9k
- Merge trung bình
- 2 ngày 7 giờ
- Pull request đã merge (30 ngày)
- 323
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của flutter/flutter
-
[a11y_assessments] Disabled CheckboxListTile shares mutable stateCó thể đã có người làm @kevmoo đã nhận 13 ngày trước. Đang mởa: accessibility fyi-design p: material_ui package team-accessibility
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Unpin `webview_flutter_wkwebview` once `google_mobile_ads` raises its minimum iOS version to 15Đang mởteam-ios
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[camera] Update camera_avfoundation constraint to ^0.11.0Có thể đã có người làm @bparrishMines đã nhận 1 ngày trước. Đang mởc: proposal in triage p: camera P2 package team-ecosystem triaged-ecosystem
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
flutter/flutter#194842 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
platform-windows team-web tool
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
flutter/flutter#194825 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[web] Semantics `lang` attribute uses `Locale.toString()`, producing invalid tags like `es_US`Đang mởa: accessibility fyi-web has reproducible steps platform-web team-accessibility
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
flutter/flutter#194688 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của flutter/flutter
Issue tương tự
-
type:bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Standalone dash flashes as its own RSVP step (e.g. Russian dialogue)Có thể đã có người làm @bezig01 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
daniel-pimenta-cc/ledor#53 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100