Cookies 新的Safari应用程序扩展模型:在浏览器中执行跨站点HTTP请求';s的HTTP上下文

Cookies 新的Safari应用程序扩展模型:在浏览器中执行跨站点HTTP请求';s的HTTP上下文,cookies,safari,xmlhttprequest,cross-domain,safari-extension,Cookies,Safari,Xmlhttprequest,Cross Domain,Safari Extension,我想在macOS(最新的扩展模型)上编写一个Safari浏览器扩展,它需要在浏览器上下文中执行HTTP请求(获取和设置cookies等),这是对另一个域的跨源请求 Google Chrome扩展模型和新的Mozilla Firefox WebExtension模型通过在扩展的背景页面JavaScript中执行请求来实现这一点。 不推荐使用的NPAPI模型允许直接使用浏览器提供的本机API实现这一点。 旧的Safari扩展模型()也允许在后台页面JavaScript中使用此功能 但是,新的Safa

我想在macOS(最新的扩展模型)上编写一个Safari浏览器扩展,它需要在浏览器上下文中执行HTTP请求(获取和设置cookies等),这是对另一个域的跨源请求

Google Chrome扩展模型和新的Mozilla Firefox WebExtension模型通过在扩展的背景页面JavaScript中执行请求来实现这一点。 不推荐使用的NPAPI模型允许直接使用浏览器提供的本机API实现这一点。 旧的Safari扩展模型()也允许在后台页面JavaScript中使用此功能

但是,新的Safari扩展模型根本没有后台页面脚本,因为“后台”直接是本地沙盒扩展过程。 在扩展的内容脚本中,我可以在浏览器上下文中执行HTTP请求,但我没有跨域权限

我可以在扩展过程中以本机方式执行HTTP请求(NSURLDownload、CFHttpStream、WebView对象/NSMutableURLRequest,使用cURL库,…),但这与浏览器的HTTP上下文没有连接。 我还没有找到任何通过Safari服务API(SFSafari*-classes)执行HTTP请求的方法

我是否必须使用“旧”Safari扩展模型(Xcode 8.1已经不允许我添加用于旧模型的“Safari扩展伴侣”目标,只有新的“Safari扩展”目标)?如果可能的话,我总是想使用最新的技术

有人有主意吗

谢谢你的提示


多米尼克

你有没有找到一种方法来做到这一点?看起来很可笑,这是不可能的…不,我还没有找到一个方法来做到这一点。我们仍然在Safari中使用NPAPI技术。我们需要的另一件事是在浏览器扩展中访问仅限http的cookie。Google Chrome扩展模型和Mozilla Firefox WebExtension模型通过
Chrome.cookies
API明确允许这样做(在收到的cookies中有一个标志
httpOnly
)。在NPAPI中,这可以通过执行对服务器的请求并从响应头读取Cookie来实现,因为浏览器不会过滤这些Cookie。但我不知道如何在safari扩展中做到这一点。