文件工具
本模块中的examples组件仅用于仓库本地开发功能验证,不随应用打包或导出。 examples/file-tool提供文件与HTTP统计、文本预览、PNG缩略处理、目录视图及剪贴板面板。它使用宿主范围接口,不获得任意磁盘写入、命令或插件能力;权限拒绝不影响其他可用功能。
统计与文本
选择文件、包内样本或配置的HTTP地址后,每次消费最多64KiB才拉取下一块,不累计完整文件。统计原始字节、0A换行数和非安全用途FNV-1a,成功后才能导出JSON或复制。网络秘密通过宿主绑定发送,网页不读取令牌本体。
统计、保存和复制共用一个从握手前占用的操作槽。异步返回后复核取消;配置/权限变化清空结果并取消旧操作。资源在finally关闭,收尾立即禁用取消,旧取消回调不能覆盖已确认结果;操作槽等待关闭完成才释放。取消不能撤回已经保存的文件或剪贴板写入。
本地与网络UTF-8预览均仅用textContent显示,最多8192个字符单元且不切断代理对,截断后继续统计。中途失败或取消保留的片段明确标记不完整,不启用统计导出;下一次读取、失效及离开清空。配置、格式与完整规则见文本预览。
PNG处理
输入最多8MiB,PNG签名与IHDR预检后在单个包内Worker解码;每边最多4096、总像素最多4194304。最长边可选256/512/1024,不放大,保留比例及透明通道;编码结果最多5MiB,不承诺动画或元数据保留。
顺序64KiB读取,处理目标期限30秒、Worker10秒。取消、失效及离开终止Worker并移除处理器,迟到结果不发布,文件/导出资源仍关闭。隐藏不强制停止工具任务。
页面只保留一份原PNG快照、一份输出Blob及一个预览URL。重新生成从原图处理,不重新选文件或累计缩略图;取消重算可保留源用于手动重试。新选择、失效和离开清理源、结果及URL,导出通过系统保存确认。详细额度见PNG重新生成。
目录与剪贴板
目录监听先建立订阅再列目录,只显示前100项并关闭剩余游标。手动读取与监听共用可取消操作;轮询等待也随AbortSignal释放计时器与监听,停止或到期后手动重建。已有成功列表在重读中、失败或停止后标为上次成功快照,下一次成功替换;空目录也是有效快照。目录读取无需Capability;配置变化及离开清空旧绑定内容,无关权限变化不取消读取或监听。
剪贴板读取和写入统一声明clipboard、一次授权读写。读取由用户点击,最多32768单元,只在当前面板显示,不保存、监听或读取历史;撤权/配置失效/离开清空。统计复制获准后直接调用,不再逐次确认。系统剪贴板验证影响当前内容,执行前需要针对测试副作用的明确授权。
验证边界
生产脚本夹具覆盖背压、迟到回复、取消、收尾及恢复;真实WebView入口覆盖选择、处理、导出、目录和有界网络。受控延迟不是磁盘或网络故障,DOM事件不等同于物理输入,相关入口见必要测试(宿主文档:../testing.md)。