【发布时间】:2020-06-15 01:15:55
【问题描述】:
我正在构建一个 Safari 应用扩展程序,它将通过本地代理重定向某些请求。
例如https://tracking-script.com/track/user/123需要重定向http://localhost:9000
唯一的问题是我不知道在应用程序引导期间哪些域是坏的。我的捆绑包包括: 1. 用于托管 safari 扩展和内容拦截器的 MacOS 应用程序 2. Safari 扩展,我可以在其中执行某些操作 3. Content Blocker,在应用程序引导期间基本上为 Safari 提供规则 https://www.infoq.com/articles/safari-content-blockers/
是否可以动态检查请求并通过给定端口重定向它?
我的本地网络上有一台设备,可以为我提供这些规则。因此,如果一个页面请求https://tracking-script.com/track/user/123,我首先想咨询我在本地主机上运行的设备。如果设备的响应显示 this domain is bad,我希望我的内容拦截器将此请求重定向到 http://localhost:9000,而不是转到原始 URL。
这在 Safari/MacOS 中是否可行?我可以通过连接 onBeforeRequest 钩子在 chrome 和 firefox 扩展中做到这一点。我向我的设备发出请求,如果设备显示域错误,则我返回 {redirect_url: 'http://localhost:9000'},浏览器重定向此请求。
【问题讨论】:
标签: safari safari-extension safari-app-extension