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

如何修改Chromium源码实现隐身模式默认启用扩展

Chromium 97.0.4692.71(macOS)源码修改实现扩展默认启用隐身模式

不用动浏览器设置页的前端代码,直接改扩展权限的底层存储默认逻辑即可,改完所有新安装/加载的扩展默认开启隐身访问权限,用户后续仍可手动开关,不影响原有交互逻辑。

修改点1:调整扩展隐身权限的默认读取逻辑

定位源码文件:extensions/browser/extension_prefs.cc
找到IsIncognitoEnabled方法,将无配置时的默认返回值从false改为true,修改后代码片段参考:

bool ExtensionPrefs::IsIncognitoEnabled(const std::string& extension_id) const {
  const base::Value* value = GetExtensionPref(extension_id, kIncognitoAccess);
  if (!value) {
    // 原默认返回false(禁用),改为true默认启用
    return true;
  }
  return value->GetInt() != kIncognitoForbidden;
}

这里是权限判断的底层入口,所有场景下检查扩展是否允许隐身运行都会走这个方法,修改这里能覆盖绝大多数默认判断逻辑。

修改点2:覆盖扩展安装时的默认禁用写入逻辑

97版本在扩展安装完成的回调里,会强制给普通扩展写入隐身禁用的配置,会覆盖上面的默认读取逻辑,需要同步修改。
定位源码文件:chrome/browser/extensions/extension_service.cc
找到OnExtensionInstalled方法内给非组件扩展设置隐身权限的代码段,将默认写入的false改为true,参考片段:

if (!Manifest::IsComponentLocation(location) && !Manifest::IsExternalPolicyLocation(location)) {
  // 原参数为false默认禁用,改为true默认启用
  extension_prefs->SetIsIncognitoEnabled(extension->id(), true);
}

注意不要修改政策管控类扩展的逻辑,避免企业配置规则被破坏。

编译&验证注意事项(macOS环境)

  • 修改完成后先清理out目录下对应编译目标的缓存,避免旧目标文件被链接导致修改不生效
  • 按日常使用的Chromium编译参数出包即可,生成的Chromium.app安装任意扩展后,打开隐身窗口可直接看到扩展已生效,无需手动去设置页开启权限
  • 该修改仅调整默认值,用户后续手动关闭某扩展的隐身权限后,配置会持久化到用户数据目录,优先级高于默认值,不影响用户自主选择
  • 不要尝试只修改chrome://extensions页面的开关默认选中状态,那只是UI层展示,不修改底层权限逻辑会出现开关显示开启、实际隐身窗口无法运行扩展的问题
  • 如果设备有企业政策强制配置隐身模式扩展权限,政策规则优先级高于源码默认值,属于正常逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 00:39:19