d38bafe237
移除 chrome.i18n 后,将各功能页面、布局与工具模块的 UI 文案改为内联中文; 删除冗余注释与过度抽象(如 ToolCard、StatCard),精简 props 与状态管理; 同步优化 JsonTools、StorageCleaner、Timestamp、TestDataGenerator、Dashboard、 Base64Converter、RightClickRestorer、TextStatistics、TopBar、RouterProvider、 ThemeModeProvider 及生成器库与 utils 工具文件。
34 lines
923 B
TypeScript
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));
|
|
}
|