feat: capture undergraduate pages with scoped evidence

This commit is contained in:
Codex
2026-10-14 23:40:15 +08:00
parent ebe70e3eb2
commit d101ffbf85
4 changed files with 274 additions and 0 deletions
@@ -0,0 +1,22 @@
import '../school_navigation_policy.dart';
class UndergraduateNavigationPolicy {
static bool canNavigate(Uri uri, {required bool isMainFrame}) =>
uri.scheme == 'https' &&
uri.port == 443 &&
uri.userInfo.isEmpty &&
const {
'eams.uestc.edu.cn',
'idas.uestc.edu.cn',
'eportal.uestc.edu.cn',
}.contains(uri.host) ||
!isMainFrame && uri.toString() == 'about:blank';
static bool isDataPage(Uri uri) =>
canNavigate(uri, isMainFrame: true) &&
uri.host == 'eams.uestc.edu.cn' &&
uri.path.startsWith('/eams/');
static bool isLogout(Uri uri) =>
isDataPage(uri) && uri.path == '/eams/logout.action';
static Uri? secureIdentityRedirect(Uri uri) =>
SchoolNavigationPolicy.secureIdentityRedirect(uri);
}