Files
TPSchedule/docs/tpschedule-0.7.1-review.md
T

38 lines
3.7 KiB
Markdown

# 审查处理结果
独立审查无阻塞问题。唯一Minor已修复:缺少帧类型时记录unknown,不再推断为subresource。修复后完整255项Flutter测试通过,静态检查无问题。真实学校账号在线加载仍待用户复测。以下为原审查记录。
# Browser compatibility fresh review
Reviewed the current uncommitted changes against HEAD `46e26ec548a87db374e0a0bf7110f4078b01710f`, including the latest redirect retry fix, the new browser helper, unit tests, native fixture, feedback hint, and version changes. No application code was modified during review.
## Strengths
- Wide viewport and third-party cookie settings finish before initial school navigation. Both sessions reject navigation after their owning operation is invalidated; initialization is shared and can be retried after failure.
- Android changes are confined to the dedicated school WebView; the dependency version remains unchanged. Existing import capture and parsing are preserved.
- Resource diagnostics retain only fixed categories, protocol, status, and existing sanitized fields. Console text and URLs are not exported. Chromium version is parsed as numeric components.
- Undergraduate identity pages skip the data probe. A probe invalidated by a redirect schedules a retry on the current URL, including when the new finish callback arrived while the old probe held the lock.
- Regression coverage checks initialization ordering, cancellation, resource privacy, and redirect recovery; the native fixture exercises actual viewport behavior and console privacy.
## Important
None found in the reviewed changes. No concrete blocking cancellation, initialization, privacy, or import regression identified.
## Minor
1. **Unknown frame classification is reported as a subresource.** `mobile/lib/services/diagnostic_log.dart:117`, called by both sessions' `onHttpError` handlers (for example `mobile/lib/features/school/undergraduate/session.dart:163`).
- Reproducible trigger: the main school document responds with HTTP 500. `onHttpError` calls `resourceFailure` without `mainFrame`; the emitted resource event says `phase: subresource` even though the failed request may be the main document. Similarly, a WebResourceError whose native frame flag is null is classified as a subresource.
- Effect: diagnostic interpretation can confuse a main document failure with a dependency failure. Authentication and existing main-document failure handling are unaffected.
- Suggested small fix: represent null as `unknown`, reserving `subresource` for an explicit false frame flag. The pinned cross-platform HttpResponseError request exposes no frame flag, so an unknown category is appropriate without adding native machinery.
## Declined to judge
- Success with the real authenticated school SSO and its current resource responses: no authenticated session is available to this read-only review. A passing local Android fixture demonstrates the settings and privacy behavior, but cannot establish the cause or resolution of the user's live portal styling problem.
- No other changed behavior was set aside as outside the approved scope. The student's original HTML, screenshot, and keys were not opened.
## Verification and assessment
The implementation coordinator reports 255/255 unit tests passing, static analysis without issues, and the Android 16 native integration fixture passing on Chromium 133.0.6943.137. I inspected the relevant test code and pinned WebView API source; I did not repeat the already completed suites.
**Ready to proceed: Yes.** The bounded implementation meets the approved approach; the minor diagnostic label issue does not block it. Real authenticated school verification remains an explicit limit on any claim that the original live portal problem is resolved.