You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Chromium移除Manifest V2的文件及恢复Manifest V1的技术问询

Chromium Manifest V2保留与V1恢复的源码修改指南

一、Chromium移除Manifest V2涉及的核心文件

Chromium对Manifest V2的移除是系统性改动,核心修改集中在扩展框架的校验、加载和API管控模块,主要涉及以下文件:

  • extensions/common/manifest.cc / manifest.h:核心Manifest版本校验逻辑,移除V2支持时会修改版本允许列表,删除对manifest_version: 2的判定逻辑,强制仅接受V3。
  • extensions/browser/extension_service.cc:扩展服务初始化流程中,新增V2扩展的拦截逻辑,拒绝加载已安装或待安装的V2扩展包。
  • extensions/common/manifest_validator.cc:移除V2专属字段的校验规则,比如background.scripts、content_scripts的旧格式校验会被标记为无效。
  • chrome/browser/extensions/extension_installer.cc:安装环节加入V2扩展的拦截提示,阻止用户安装V2格式的扩展。
  • extensions/common/features/feature.cc及extensions/common/features/json/下的配置文件:将V2相关API(如chrome.tabs.executeScript的V2调用方式)标记为废弃或直接移除支持。
  • chrome/common/extensions/manifest_handlers/目录下的处理器文件:比如background_handler.cc会删除V2背景脚本的处理逻辑,仅保留V3的Service Worker模式。

二、恢复Manifest V1支持的操作步骤

Manifest V1早在2014年就被官方废弃,恢复支持需要回退大量底层逻辑,关键步骤如下:

  1. 重新启用V1版本校验
    修改extensions/common/manifest.cc,将ManifestVersion::kV1重新加入允许的版本列表,同时恢复V1版本的校验规则,允许manifest_version: 1的扩展通过校验。
  2. 恢复V1专属字段的处理逻辑
    • 在extensions/common/manifest_validator.cc中重新添加V1相关字段的校验逻辑,比如browser_action的旧定义、content_scripts的原始格式等。
    • 恢复chrome/common/extensions/manifest_handlers/目录下针对V1的处理器,比如browser_action_handler.cc中的V1适配逻辑。
  3. 重新启用V1相关API
    • 在extensions/common/features/feature.cc及对应JSON配置文件中,将标记为废弃的V1 API(如chrome.extension下的部分旧接口)重新设置为可用状态。
    • 修复extensions/browser/api/目录下的V1 API实现,确保旧接口的功能正常运行。
  4. 调整扩展加载与安装流程
    修改extensions/browser/extension_service.cc和chrome/browser/extensions/extension_installer.cc,移除对V1扩展的拦截逻辑,允许加载和安装V1格式的扩展包。
  5. 修复兼容性问题
    由于V1与后续版本的架构差异较大,需要调整权限处理、资源加载路径等逻辑,解决V1扩展在新版Chromium架构下的运行冲突。

注意:这类修改属于对Chromium核心扩展框架的深度改动,后续官方版本更新时会频繁出现合并冲突,维护成本极高。此外,手动编译的Chromium无法获得应用商店签名,只能离线安装扩展,且可能存在未被官方修复的安全漏洞。

内容的提问来源于stack exchange,提问作者DevBev3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:52:23