Refine school script diagnostics and document-state capture

This commit is contained in:
Codex
2026-10-15 15:15:42 +08:00
parent a4c2df838e
commit 83b0c7e177
16 changed files with 435 additions and 27 deletions
+17 -2
View File
@@ -13,6 +13,7 @@ import 'school_exam_adapter.dart';
import 'school_login_flow.dart';
import 'school_page_probe.dart';
import 'school_browser.dart';
import 'school_browser_diagnostics.dart';
enum SchoolConnectionState {
signedOut,
@@ -34,7 +35,9 @@ class SchoolSession extends ChangeNotifier {
controller,
'graduate',
));
if (!hasOpened || generation != _pageGeneration || serial != _openSerial) {
if (!hasOpened ||
generation != _pageGeneration ||
serial != _openSerial) {
return;
}
browserVersion = info.chromiumVersion;
@@ -106,7 +109,19 @@ class SchoolSession extends ChangeNotifier {
_loading = true;
notifyListeners();
},
onPageFinished: _loaded,
onPageFinished: (url) {
final generation = _pageGeneration;
unawaited(
recordSchoolPageDiagnostics(
web,
'graduate',
url,
isCurrent: () =>
hasOpened && !_routeClosed && generation == _pageGeneration,
),
);
unawaited(_loaded(url));
},
onWebResourceError: (error) async {
DiagnosticLog.instance.resourceFailure(
'graduate',