1

在 chrome 最近更新 77.0 后,我开始在我的 chrome 扩展程序的背景页面上收到此警告。

与http://www.google.com/上的跨站点资源关联的 cookie设置为没有该SameSite属性。未来版本的 Chrome 将仅提供带有跨站点请求的 cookie,前提是它们使用SameSite=None和设置Secure。您可以在应用程序>存储>Cookies 下的开发人员工具中查看 cookie,并在https://www.chromestatus.com/feature/5088147346030592https://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 更改,我必须具体更改什么?

4

1 回答 1

1

对于任何这些警告,如果您不对域负责,则您不负责更新 cookie。在这种情况下,Google 负责更新设置SameSitecookie 属性的相关代码google.com

此时,警告纯粹是信息性的,不会影响功能。直到 M80 才计划在稳定的 Chrome 中强制执行此行为,目前的目标是 2020 年 2 月。

如果您希望随fetch请求一起发送 cookie,则应确保明确包含它们

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        fetch(request, { credentials: 'include' })
            .then(function(response) { // snip
于 2019-10-31T23:13:04.890 回答