chrome最新的77.0更新之后,我开始在chrome扩展程序的背景页面上收到此警告。
设置了与http://www.google.com/处的跨站点资源关联的cookie,但未设置
SameSite
属性。如果将来的Chrome浏览器版本设置为SameSite=None
和Secure
,则仅会发送带有跨站点请求的cookie。您可以在Application> Storage> Cookies下的开发人员工具中查看Cookie,并在https://www.chromestatus.com/feature/5088147346030592和https://www.chromestatus.com/feature/5633521622188032上查看更多详细信息。
通过设置,我能够将扩展程序恢复为之前的工作状态 SameSite默认将cookie设置为“启用”。在chrome:// flags
上禁用此临时客户端修补程序后,将执行此代码,
console.log(rtLink)
rtLink以未定义的形式返回,启用了客户端修复后,它将正确执行并显示从Google搜索中找到的网址
//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)并确保安全,或者我问的是错误的问题。如果是这种情况,为了适应此Cookie更改,我必须具体更改为什么?
答案 0 :(得分:1)
对于任何这些警告,如果您不负责域,则不负责更新cookie。在这种情况下,Google负责更新相关代码,该代码为SameSite
中的cookie设置了google.com
属性。
这时,警告仅是参考信息,不影响功能。直到M80(目前定位于2020年2月)之前,才计划在稳定的Chrome中实施此行为。
如果您希望通过fetch
请求发送Cookie,则应确保自己explicitly including them。
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
fetch(request, { credentials: 'include' })
.then(function(response) { // snip