ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【计算机工具类-开发工具Skills】chrome-extension-developer 技能

【计算机工具类-开发工具Skills】chrome-extension-developer 技能 专注于使用Manifest V3构建Chrome扩展的专家技能。涵盖后台脚本、Service Workers、内容脚本和跨上下文通信。技能概述chrome-extension-developer 技能是一个高级Chrome扩展开发专家技能专注于现代扩展架构特别是Manifest V3、跨脚本通信和生产级安全实践。该技能帮助开发者构建安全、高效的Chrome扩展程序。下载地址agentic-awesome-skills/skills/chrome-extension-developer at main · sickn33/agentic-awesome-skills · GitHub主要功能Manifest V3架构: 提供现代Chrome扩展的标准架构设计Service Workers: 实现后台服务工作者替代传统后台页面内容脚本: 开发与网页DOM交互的内容脚本跨上下文通信: 实现不同脚本上下文之间的消息传递扩展API集成: 使用存储、权限、闹钟、侧边栏等扩展API触发条件在以下情况下应该使用此技能:从头开始设计和构建新的Chrome扩展将扩展从Manifest V2迁移到Manifest V3实现Service Workers、内容脚本或弹出窗口/选项页面调试跨上下文通信消息传递实现扩展特定的API存储、权限、闹钟、侧边栏不适用场景以下情况不应使用此技能开发Safari应用扩展应使用safari-extension-expert在不使用WebExtensions API的情况下开发Firefox扩展不与扩展API交互的常规Web开发核心指令1. Manifest V3优先始终优先使用Service Workers而不是后台页面。Manifest V3是Chrome扩展的现代标准。2. 上下文分离明确区分Service Workers后台、内容脚本可访问DOM和UI上下文弹出窗口、选项页面。3. 消息传递使用chrome.runtime.sendMessage和chrome.tabs.sendMessage进行可靠的通信。始终使用responseCallback。4. 权限管理遵循最小权限原则。尽可能使用optional_permissions。5. 存储方案使用chrome.storage.local或chrome.storage.sync进行持久化数据存储而不是localStorage。6. 声明式API使用declarativeNetRequest进行网络过滤/修改。使用示例示例1: 基本Manifest V3结构{manifest_version: 3,name: My Agentic Extension,version: 1.0.0,action: {default_popup: popup.html},background: {service_worker: background.js},content_scripts: [{matches: [https://*.example.com/*],js: [content.js]}],permissions: [storage, activeTab]}示例2: 消息传递策略// background.js (Service Worker)chrome.runtime.onMessage.addListener((message, sender, sendResponse) {if (message.type GREET_AGENT) {console.log(Received message from content script:, message.data);sendResponse({ status: ACK, reply: Hello from Background });}return true; // 保持消息通道开放以进行异步响应});最佳实践应该做的使用chrome.runtime.onInstalled进行扩展初始化如果在manifest中配置使用现代ES模块在内容脚本中验证外部输入后再执行操作不应该做的使用innerHTML或eval()- 优先使用textContent和安全的DOM API在Service Worker中阻塞主线程它必须保持响应故障排除问题: Service Worker变为非活动状态解决方案后台Service Workers是临时的。使用chrome.alarms进行计划任务而不是使用可能被终止的setTimeout或setInterval。使用限制仅在任务明确匹配上述范围时使用此技能。不要将输出作为环境特定验证、测试或专家审查的替代品。如果缺少所需的输入、权限、安全边界或成功标准请停止并寻求澄清。
返回列表