Google chrome chrome.webRequest.onBeforeRequest.addListener后台Ajax请求?

Google chrome chrome.webRequest.onBeforeRequest.addListener后台Ajax请求?,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我想改变谷歌搜索的固定地理位置国家。我找到的唯一不使用VPN的方法是在URL中添加gl=[country\u code]。我为自己的使用创建了一个扩展,并将该部分添加到谷歌搜索URL中,它成功了。但我最近发现,自动完成(建议)并没有改变到网页的国家。也就是说,即使在谷歌主页的左下角写着“美国”,自动完成仍然设置为我的地理位置,并给出一个不同的列表 经过一些测试,我发现Google调用https://www.google.com/complete/search...在后台,如果我将gl=[coun

我想改变谷歌搜索的固定地理位置国家。我找到的唯一不使用VPN的方法是在URL中添加
gl=[country\u code]
。我为自己的使用创建了一个扩展,并将该部分添加到谷歌搜索URL中,它成功了。但我最近发现,自动完成(建议)并没有改变到网页的国家。也就是说,即使在谷歌主页的左下角写着“美国”,自动完成仍然设置为我的地理位置,并给出一个不同的列表

经过一些测试,我发现Google调用
https://www.google.com/complete/search...
在后台,如果我将
gl=[country\u code]
附加到URL,我可以更改自动完成的国家。但是添加
https://www.google.com/complete/search?*
下面类似的操作不起作用(
modifyUrl
未被调用)

有没有办法修改自动完成URL?如果有更好的方法不使用VPN改变国家,我也可以使用它。

在google.com网站上自动完成搜索 这些都是通过标准JavaScript XHR/fetch执行的(使用devtools检查请求的详细信息),因此在注册webRequest侦听器时,需要将
类型
指定为
xmlhttprequest
,而不是
main\u frame

在地址栏中自动完成搜索 此后未向扩展报告这些问题

引用该决定背后的原因:

浏览器启动的请求可能性质敏感或影响浏览器功能

  • (组件更新程序)
  • (安装签名者,用于扩展安装验证)
  • 。。。。(同步后下载crx软件包)
  • 。。。。(从webstore触发的安装对话框上的扩展图标)
  • 。。(与omnibox相关)
  • (与ntp涂鸦相关)
  • 。。。(调用gaia URL)
例如,通过阻止其中一些请求,可以很容易地阻止扩展安装验证或下载同步扩展。这可能还有其他安全问题

我们在过去实施了定制的一次性解决方案,以防止出现类似情况(例如,我们防止扩展拦截浏览器启动的对某些web store URL、安全浏览URL、代表NTP的一个google bar请求等的请求)

在我看来,一个更完整的解决方案是阻止扩展拦截任何非导航浏览器启动的请求。

报告还更新了:

[…]某些请求[…]是隐藏的[…],和其他敏感请求是浏览器功能的核心

在默认的“新建/空”选项卡中自动完成搜索

中间的输入框是一个“FAKBOX”,只关注地址栏,因此与前面一节中提到的地址栏搜索相同。搜索框可以实现为一个真正的输入(请参阅),但它仍然是核心浏览器UI的一部分,因此不会向extensions的webRequest公开。

感谢您的回复。然而,我已经放弃了地址栏的完成,因为对地址栏的请求甚至没有显示在开发人员工具的“网络”中。这个问题是关于Google主页(“)上搜索输入字段的自动完成。这也不可能吗?如果你指的是实际的Google.com站点,那么正如你在devtools中看到的那样,这些请求有
类型:“xmlhttprequest”
,而不是
“main\u frame”
chrome.webRequest.onBeforeRequest.addListener
(
    modifyUrl,
    {urls: [
            'https://www.google.com/search?*',
            'https://www.google.com/webhp?*',
            'https://www.google.com/complete/search?*' ],
             types: ['main_frame']},
    ['blocking']
);