本次核对的版本与文件
2026 年 7 月 26 日核对的发布候选版本是 1.6.2。Chrome/Edge 的 Manifest V3 声明 clipboardWrite、storage、activeTab、scripting;Firefox 的 Manifest V2 声明 clipboardWrite、storage、activeTab,并在用户动作后使用 tabs.executeScript。
两份 Manifest 都没有 host_permissions、<all_urls>、全站 content_scripts 或 web_accessible_resources。
权限分别做什么
activeTab 与 scripting:按明确用户动作临时连接
用户在网页输入框按 Alt+Shift+E(macOS 为 ⌥+Shift+E)使用极速模式,或在经典弹窗中开启自动插入并点击 Emoji 时,浏览器授予当前标签页临时访问权。Chrome/Edge 随后通过 scripting.executeScript 注入扩展自带的页面控制器;Firefox 使用 tabs.executeScript。
控制器只在当前标签页内存中临时处理当前可编辑字段、光标和选区,收到用户选择的 Emoji 或组合后插入 Unicode 文本。可编辑字段内容不会写入扩展存储,也不会发送给 EmojiClip 或第三方;控制器不会读取与当前编辑目标无关的页面内容。1.6.2 已移除密码输入框支持。页面跨域导航或标签页关闭后连接失效;内置页、商店页、PDF 查看器和未授权跨域 iframe 不支持注入。Chrome 对 activeTab 和 scripting 的官方说明可用于核对这一边界。
clipboardWrite:负责用户明确发起的复制
用户在经典弹窗中点击单个 Emoji,或使用底部剪贴板一次复制多个 Emoji 时,扩展写入系统剪贴板;页面未连接或编辑器拒绝插入时也会复制兜底并明确提示。扩展没有 clipboardRead,不能读取剪贴板已有内容。
storage:保存本机工作区状态
chrome.storage.local 保存 darkMode、skinTone、autoInsert、recentLimit、emojiSize,以及 schema 2 的 emojiClipData:剪贴板草稿和最多 80 个基础 Emoji 的 useCount、lastUsed。旧收藏、分组与组合数据继续保留;不同肤色归并到基础 Unicode。旧 recentlyUsedEmojis 仅作迁移备份,1.6.0 不再写入。
扩展没有账号、storage.sync 或服务器上传逻辑。经典弹窗、极速模式与后台页面控制器使用同名写锁合并操作,避免并发覆盖。
为什么不再需要 sidePanel
工具栏图标现在统一打开经典弹窗,Chrome/Edge 已移除 sidePanel 权限与 side_panel 入口,Firefox 也已移除 sidebar_action。因此三种浏览器不再申请或提供侧边栏。
明确没有申请的能力
当前 Manifest 没有 clipboardRead、常驻 tabs 页面读取、浏览历史、下载、Cookie、定位、摄像头、麦克风、身份、host_permissions、全站 content_scripts 或 web_accessible_resources。扩展所有 CSS、图标、搜索代码和 Emoji 数据均随包发布,不加载远程执行代码。
网站数据和扩展数据是两套存储
| 使用位置 | 存储方式 | 当前保存内容 |
|---|---|---|
emojiclip.com 网站 |
浏览器 localStorage |
主题、语言和网站最近使用 |
| EmojiClip 扩展 | 扩展 chrome.storage.local |
主题、肤色、弹窗设置、使用统计与剪贴板草稿 |
清除网站数据不会自动清除扩展数据,反之亦然。网站按隐私政策披露的统计和广告服务不会扩大扩展 Manifest 权限。
官方参考
- Chrome:Commands API
- Chrome:activeTab
- Chrome:Scripting API
- Chrome:Storage API
- Mozilla:tabs.executeScript
- Mozilla:storage.local