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

3.7 KiB

审查处理结果

独立审查无阻塞问题。唯一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.