从Firefox iOS删除cookie同意请求

2022-02-19 01:52:16

在移动网络中,有一件事一直困扰着我,那就是除了cookies之外,所有东西都有那么多的杂乱。在欧洲,所有的网站都要求你接受cookies,所有的cookies都会让你在一生中增加一次额外的点击。对我来说,点击次数太多了!

别误会我的意思,我很钦佩法律的精神,人们应该知道他们是如何被跟踪的,但我不知道为什么几十年后,在这项法律生效后,Mozilla或Chrome团队没有人想过将其作为一种网络标准,这对我来说太明显了:如果每个网站都需要一次又一次地构建它,那就让它成为一个标准。这样浏览器本身就可以处理它,而且更好,我在想iOS如何管理每个应用程序可以做什么或不能做什么,浏览器可以对网站做同样的事情,至少我们可以有一个标准化的弹出窗口,这样我就不需要每次搜索不同的按钮了!

在电脑上,这对我来说是一个已解决的问题,我已经安装了扩展名I-Don-care-cookies。欧盟(eu)是一个伟大的延伸,它运行得非常好。但在iOS上,我无法安装它,因为苹果想控制生态系统,它让浏览器在很长一段时间内处于无能为力状态,最近它增加了在Safari上安装附加组件的可能性,但只能通过应用程序以特定的方式安装,而且只有在Safari中,因为苹果总是先为自己的产品发布东西,以获得领先,经典的苹果。

不管怎样,Safari iOS实际上有一个非常好的开源插件,可以阻止cookies请求,叫做Hush,它没有我不在乎cookies那么好,但是足够好了,我在使用移动网络时的烦恼消失了!不幸的是,我不能在Firefox for iOS上使用它,但我觉得我更讨厌cookie请求,而不是Safari或Firefox,所以非常遗憾,我暂时切换了浏览器。

但我有一个计划,我今天要付诸实践:我将从GitHub克隆Firefox iOS,并将其与I-dont-care-about-cookies一起修补,然后构建到我的iPhone上,这样我就可以愉快地回到我最喜欢的浏览器。来吧!

让我惊讶的是,firefox ios GitHub页面上的说明非常简单,你只需要python、nodejs和Xcode(当然)就可以了!我真的很喜欢他们用如此小的依赖性需求来维持如此庞大的项目,而小得多的项目需要你花一整个下午的时间来安装东西才能正常工作。感谢firefox团队!

另外,让我第二个惊讶的是,在自述文件上安装之后的下一个部分是“构建用户脚本”,以及将它们放在哪里,这正是我所需要的,它们让我的生活变得如此轻松!

经典还有什么比我们的友好警报阿米丽特更有效的测试方法呢

所以我一直遵循安装说明,在Xcode上打开它,在产品菜单下找到一个可以切换到“Fennec方案”的地方,并尝试构建它,这让我发现了一些我已经预料到的证书错误。幸运的是,我已经为我的其他项目应用程序建立了一个团队和证书,所以我可以直接使用我的,对吗?

好吧,我花了比我想象的更多的时间试图修复证书问题,幸运的是,最后我找到了一个简单的解决方案:我没有尝试手动修复它们,而是在SublimiteText(比VSCode打开更快)上打开了项目,搜索并将43AQ936H96(他们的团队代码)替换为我自己的团队代码,我还用“app.rchaves.ios”替换了所有的“org.mozilla.ios”,这最终允许应用程序编译!

哇,真的那么容易吗?证书之类的但就这样?凉的看来我能🥁🥁🥁 迭代

如果我只是将javascript更新为“hello world 2”,然后再次运行该应用程序,它能工作吗?

…迭代速度很慢,重新构建和安装应用程序需要时间,尽管我刚刚更改了一个小小的javascript,但我想你无法用移动应用程序摆脱这一点。但答案是不,它不工作,我需要手动运行webpack。好的,没问题,让我们再试一次,创建网页包aaa,很有趣!第三次,它没有重新编译任何东西,安装速度更快!酷,现在它可以工作了:

好的,下一步是将i-dont-care-about-cookies中的javascript注入到我的hello world所在的同一个地方。为此,我下载了扩展名。xpi包,解压了它,我计划在里面复制这些Java脚本,基本上是原样的。

…不像我想的那么简单,我不在乎cookies代码实际上非常依赖chrome。选项卡和其他API只对扩展可用,它们在用户脚本中不起作用,所以我必须删除所有这些内容,只提取其核心,这会隐藏cookies框。

以下是我理解为原始代码的主要触发因素:

函数(tabId,frameId,另一个){if(!tab#list[tabId]| tab#list[tabId].url.indexOf(';http';)!=0)返回;如果(tab_list[tabId].whitelisted)返回;//常见的CSS规则。标签。insertCSS(tabId,{:";data/css/common.css";,:frameId | 0,:xml_tabs[tabId]?';document_idle';:';document_start';),函数(){//A failure?Retry.if(chrome.runtime.lastError){let currentTry=(另一个try | | 1);if(currentTry==5)返回;setTimeout(函数(){doTheMagic(tabId,frameId | | 0,currentTry+1)},300);回来}//Common social嵌入了chrome。标签。executeScript(tabId,{:';data/js/embeds.js';,:frameId | 0,:xml_tabs[tabId]?';document_idle';:';document_end';},函数(){});if(activateDomain(tab_list[tabId].hostname,tabId,frameId | | 0))返回;for(tab_list[tabId]中的var level.主机级别)if(activateDomain(tab_list[tabId].主机级别[level],tabId,frameId | | 0))返回true;//当自定义规则不'时的通用JS规则;不存在铬。标签。executeScript(tabId,{:';data/js/common.js';,:frameId | 0,:xml_tabs[tabId]?';document_idle';:';document_end';},函数(){}); }); }

经过一些摆弄,一些警报在这里和那里,我已经成功地工作了!例如,这里是路透社在常规firefox上的网站

我已经用这个火狐玩了一段时间了,它似乎工作得很好,一个成熟的火狐!唯一不起作用的是允许将其设置为我的默认浏览器,但我要做的更多,似乎我需要请求苹果允许我这么做🙄. 所以我给他们发了一封电子邮件,让我们看看他们回复了什么,同时,我想我已经可以享受我的firefox而不需要cookies了🤗

我已经用firefox ios制作了一个fork,并推送了代码,如果你有Xcode,就去获取它,并构建你自己的副本😃

注:我已经联系了I-Don-care-about-cookies的创建者丹尼尔,他不介意我发布这个firefox ios嵌入版本及其扩展,只是要求我保持最新😊

如果你想添加评论,请发送一个合并请求,在此处添加你的评论,复制此块作为示例