Chrome 网络扩展程序 DeclarativeNetRequest 不会阻止拦截 main_frame 中的请求

问题描述

我正在将我们的 v2 扩展迁移到 manifest v3,并且在从弃用的 WebRequest API 转换为新的 DeclarativeNetRequest 的过程中,我发现以下规则不会拦截在浏览链接时发起的请求,但它会如果在地址栏中输入 URL,则拦截相同的请求。我需要它来拦截发生在顶部框架中的所有请求和 URL 更改。

    [
  {
    "id": 1,"priority": 1,"action": {
      "type": "redirect","redirect": { "regexSubstitution": "some local web server address here" }
    },"condition": {
      "regexFilter": "^(https?\\://)?[^\\:]+$","resourceTypes": [ "main_frame" ]
      
    }
  }]

解决方法

原来这是 Opera 请求中的一个错误,来自快速拨号快捷方式。 Chromium Canary 没有出现与起始页快捷方式相同的问题。

我已将此问题报告给 Opera 团队。