Files
testing-tool/src/utils/restrictedUrls.ts
T
雨霖铃 d38bafe237 refactor: 统一中文文案并简化组件结构,提升代码可读性
移除 chrome.i18n 后,将各功能页面、布局与工具模块的 UI 文案改为内联中文;
删除冗余注释与过度抽象(如 ToolCard、StatCard),精简 props 与状态管理;
同步优化 JsonTools、StorageCleaner、Timestamp、TestDataGenerator、Dashboard、
Base64Converter、RightClickRestorer、TextStatistics、TopBar、RouterProvider、
ThemeModeProvider 及生成器库与 utils 工具文件。
2026-06-27 17:26:19 +08:00

34 lines
923 B
TypeScript

/** 浏览器内部/受限协议(含尾部冒号,用于 protocol 匹配) */
export const RESTRICTED_PROTOCOLS = [
'chrome:',
'chrome-extension:',
'about:',
'edge:',
'brave:',
'view-source:',
'file:',
'data:',
] as const;
export function getUrlProtocol(url: string): string | null {
try {
return new URL(url).protocol;
} catch {
return null;
}
}
/** 用于 content script / 右键恢复等(protocol 精确匹配) */
export function isUnsupportedPageUrl(url: string | undefined): boolean {
if (!url) return true;
const protocol = getUrlProtocol(url);
if (!protocol) return true;
return RESTRICTED_PROTOCOLS.some((p) => p === protocol);
}
/** 用于 storage cleaner tab 检测(前缀匹配,兼容无 protocol 的场景) */
export function isRestrictedUrl(url?: string): boolean {
if (!url) return true;
return RESTRICTED_PROTOCOLS.some((p) => url.startsWith(p));
}