class SchoolNavigationPolicy { static bool canNavigate(Uri uri, {required bool isMainFrame}) => isMainFrame ? isSchoolPage(uri) : (uri.scheme == 'https' && uri.userInfo.isEmpty) || (uri.scheme == 'about' && uri.path == 'blank'); static bool _https(Uri uri) => uri.scheme == 'https' && uri.port == 443 && uri.userInfo.isEmpty; static bool canInjectCredentials(Uri uri) => _https(uri) && uri.host == 'idas.uestc.edu.cn' && uri.path == '/authserver/login'; static bool isTimetable(Uri uri) => _https(uri) && uri.host == 'yjsjy.uestc.edu.cn' && RegExp( r'^/pyxx/pygl/xskbcx/index/[1-9]\d*' r'$', ).hasMatch(uri.path); static bool isSchoolPage(Uri uri) => _https(uri) && const {'idas.uestc.edu.cn', 'yjsjy.uestc.edu.cn'}.contains(uri.host); }