我正在扩展中开发一项功能,允许用户使用远程资源覆盖一些本地资源。
为此,我们使用webRequest
将所选请求重定向到远程位置。这样可以正常工作,可以在这些上正确发送Cookies,然后可以加载远程资源(需要auth)。
棘手的部分,即不起作用,就是当所述资源包含HTML导入时。
Chrome会解析这些导入并发送请求以获取导入的资源,但在这种情况下,它不会发送Cookie标头。所以我使用webRequest.onBeforeSendHeaders
添加它(根据Firefox的要求)。
在这种情况下,Chrome不会像我认为的那样发送Cookie标头。
是否有人知道这是预期的/标准的,还是知道它可能是Chrome中的错误?或者可能有一种解决方法?
编辑:HTML import spec指定HTML导入应获取为具有same-origin
模式的CORS。这意味着它不应该发送凭据。哪个Chrome似乎尊重这里。
现在的问题是:是否应该允许扩展程序添加Cookie标头? Firefox似乎允许(我可以添加丢失的cookie标头)。
EDIT2 :我已经挖掘了铬问题,发现核心开发团队正在考虑放宽扩展的一些安全功能,这可能包括这种情况。所以我打开了issue there