在 chrome 最近更新 77.0 后,我开始在我的 chrome 扩展程序的背景页面上收到此警告。
与http://www.google.com/上的跨站点资源关联的 cookie设置为没有该
SameSite
属性。未来版本的 Chrome 将仅提供带有跨站点请求的 cookie,前提是它们使用SameSite=None
和设置Secure
。您可以在应用程序>存储>Cookies 下的开发人员工具中查看 cookie,并在https://www.chromestatus.com/feature/5088147346030592和https://www.chromestatus.com/feature/5633521622188032中查看更多详细信息。
通过将 SameSite 默认 cookie 设置为“启用”,我能够将扩展恢复到之前的工作状态。在 chrome://flags 上
当这个临时的客户端修复被禁用时,这个代码被执行,
console.log(rtLink)
rtLink 以未定义的形式返回,当启用客户端修复时,它会正确执行并显示从 google 搜索中找到的 url
//console.log("Background.js is running");
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
fetch(request)
.then(function(response) {
return response.text()
})
.then(function(html) {
var parser = new DOMParser();
var doc = parser.parseFromString(html, "text/html");
// Finds and sets the first search term URL to rtLink
var rtLink = doc.getElementsByClassName("r")[0].children[0].href;
console.log(rtLink);
我的问题是,如何在我的获取请求/响应中设置 SameSite=Lax(或 None) 和 Secure,或者我问错了问题。如果是这种情况,为了适应这种 cookie 更改,我必须具体更改什么?