当前位置: 首页 > web >正文

从 Manifest V2 升级到 Manifest V3 的注意事项

将 Chrome 扩展从 Manifest V2 升级到 Manifest V3 是一个重要的迁移过程,以下是需要注意的关键点:

核心变更要点

  1. 清单文件结构变化

    • manifest_version 必须设置为 3

    • background 字段改为使用 Service Worker

    • web_accessible_resources 需要显式声明

  2. 后台脚本变化

    • 不再支持 background pages,改用 Service Workers

    • Service Worker 不能使用 DOM 和 window 相关 API

    • 需要重构持久化状态管理逻辑

  3. 网络请求变化

    • chrome.webRequest API 被限制使用

    • 需要使用新的 chrome.declarativeNetRequest API

    • 修改请求/响应内容的能力受限

详细注意事项

1. Service Worker 替代 Background Pages

// Manifest V2
"background": {"scripts": ["background.js"],"persistent": false
}// Manifest V3
"background": {"service_worker": "background.js"
}

2. 远程代码执行限制

  • 不再允许执行远程代码(如 eval()

  • 所有代码必须包含在扩展包中

  • 动态代码执行被严格限制

3. 权限系统变更

  • 部分权限需要从 permissions 移到 optional_permissions

  • 主机权限现在需要单独声明

  • 新增 host_permissions 字段

4. API 变更

  • chrome.extension → chrome.runtime

  • chrome.tabs.executeScript → chrome.scripting.executeScript

  • chrome.runtime.onSuspend 被移除

http://www.xdnf.cn/news/15429.html

相关文章:

  • Cursor三大核心AI功能
  • 详解缓存淘汰策略:LFU
  • JS红宝书pdf完整版
  • mac上BRPC的CMakeLists.txt优化:解决Protobuf路径问题
  • SCTP协议网络编程
  • 【算法】贪心算法:柠檬水找零C++
  • Redis 命令总结
  • SpringBoot3-Flowable7初体验
  • Java 内部类详解:从基础到实战,掌握嵌套类、匿名类与局部类的使用技巧
  • Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)
  • MYSQL笔记2
  • 4. MyISAM vs InnoDB:深入解析MySQL两大存储引擎
  • 39.Sentinel微服务流量控制组件
  • 论文笔记:AnImitation Learning Approach for Cache Replacement
  • Prometheus Operator:Kubernetes 监控自动化实践
  • 深入解析Hadoop架构设计:原理、组件与应用
  • Java 高级特性实战:反射与动态代理在 spring 中的核心应用
  • ADB 调试日志全攻略:如何开启与关闭 `ADB_TRACE` 日志
  • 面试150 二叉树展开为链表
  • Redis面试精讲 Day 2:Redis数据类型全解析
  • 【操作系统-Day 5】通往内核的唯一桥梁:系统调用 (System Call)
  • 【DVWA系列】——File Upload——low详细教程(webshell工具冰蝎)
  • MySQL SQL语句精要:DDL、DML与DCL的深度探究
  • ROS2---NodeOptions
  • 01.深入理解 Python 中的 if __name__ == “__main__“
  • vue是什么
  • 【PyMuPDF】PDF图片处理过程内存优化分析
  • 基于Prompt结构的语校解析:3H日本语学校信息建模实录(4/500)
  • idea docker插件连接docker失败
  • 文心大模型4.5开源测评:轻量化部署实践与多维度能力验证