写在开头
我曾经常常挂在嘴边的名言是:xx才用Safari
,你不要用Safari了,换个浏览器就没这个问题了
,现在由于一些原因,我也开始成为使用Safari的一员。本文将记录我从Arc迁移到Safari的原因与过程。
为什么要迁移到Safari
最近学校在放圣诞假,我躺在家里最喜欢的一件事情就是葛优躺在床上。但是我家里的布局有一个非常大的问题,就是我床边上没有插座,导致我的“待机”时长就不是很长,常常需要在MacBook,iPad,iPhone之间切换,经常打断我的思绪。但是我非常奇怪,为什么网上一直说MacBook的续航可以达到5-6个小时,我的MacBook只能支撑3小时左右。于是我从我运行的软件开始排查,通过活动监视器
内的能耗
模块发现,以下应用位居榜首。
- Arc
- 飞书
- 哔哩哔哩
- Visual Studio Code
- 钉钉
不知屏幕前的你读到这里有什么发现,没错,他们都是Electron
或浏览器套壳应用。这些浏览器们虽然长得不一样,但是本质上都是Chromium
内核,其中Arc和哔哩哔哩的能耗更是“断崖式领先”。于是我决定擒贼先擒王,先从Arc开始。
那么在决定了斩首对象之后,就要考虑他的替代品。市面上的浏览器目前可以简单地归类为3类:Chromium, Firefox,Safari。Chromium的巨额耗电以及Google Chrome的丑陋令我望而却步。其次Firefox也面临网站兼容性问题,在我的工作流里,经常需要使用到Apple官方网站,如Apple School Manager
,iSAMS
,前一个网站在使用Firefox打开的时候会直接提示不兼容,第二个网站在FireFox中的排版有显著问题。最后就是Safari,Safari是Apple自家的浏览器,可以轻松的享受各种由Apple全家桶带来的生态体验,而且在macOS上的能耗也是最好的。于是我决定迁移到Safari。
迁移过程
迁移书签
众所周知,在Arc中,书签并不是书签,而是保存在不同Space
中的Tab
,他独特的展示方式自然不能通过常规的方案导出。因此在探索一一圈之后的找到了如下仓库
可以很轻松的将Arc中的书签导出为HTML
文件,然后在Safari中导入即可。
迁移插件
我原先在Arc中使用的插件如下,这里不得不感叹Apple让用户自适应的能力。在我的一翻挑挑拣拣之后,只留下了三个插件:AdGuard
,1Password
,Tampermonkey
。其中1Password
会时不时的要求重新登录,此时直接关闭弹窗即可,稍后会自动修复。本来想带着BewlyBewly
一起迁移,但是发现其官方作者没有签名Safari版本,见此Issue因此只能作罢。
插件名称 | 插件功能 | 官方开发 | 替代品 |
---|---|---|---|
AdGuard Browser Assistant | 广告拦截,配合macOS上客户端工作 | ✅ | ❌ |
1Password - Password Manager | 密码管理器,多端同步 | ✅ | ❌ |
BewlyBewly | 哔哩哔哩助手 | ⚠️ | Safari版本无签名 |
Free Download Manager | 下载管理器 | ❌ | Safari自带下载 |
Grammarly | 语法检查 | ✅ | ❌ |
Selenium IDE | 自动化开发工具 | ❌ | ❌ |
User-Agent Switcher | UA切换 | ❌ | Safari自带 |
ModHeader | Header修改 | ❌ | ❌ |
Tampermonkey | 脚本管理器 | ✅ 付费$2.99 | ❌ |
遇到的问题
- 部分网站渲染错误,内容显示错误
在调查问题的时候发现,大部分问题的原因在于Safari浏览器自带的Content Blocker
,这个功能原本是用来阻止网页跟踪器并屏蔽部分广告,但是似乎需要保存在jsdeliver
上的JavaScript脚本也会被错误的拦截,可以在以下位置关闭这个选项。
- 部分
file://
协议的链接无法打开
大部分提示Operation not permitted NSPOSIXErrorDomain
,这个问题在直接访问微信下载的时候出现,因为尝试访问Container内的内容,我的解决方案是直接授予Safari完全磁盘访问权限。虽然这个可能不太安全,但是我认为是比较简单的解决方案。如果你有更好的解决方案,欢迎在评论区留言。
- 显示错误代码
大家在使用Chrome的时候可能会遇到一些错误代码,如ERR_CONNECTION_REFUSED
,ERR_CONNECTION_TIMED_OUT
,ERR_CONNECTION_RESET
等,这些错误代码在Safari中确实只有一个孤零零的网络错误,导致我时常无法判断网页为何无法访问。我的解决方案是,使用Surge
的报错页面,这样可以直接看到详细的错误信息。但是这种方案可能在某些已经下发HSTS
策略的网站上不起作用。
- 某些我自行部署的要求
mTLS
的网站无法正确呼出证书请求
首先关于什么是mTLS
,大家可以查看这篇Cloudflare的文章,这个问题目前无解,我选择继续滚回Arc使用。
结语
以上就是我目前从Arc迁移到Safari的过程,虽然在迁移过程中遇到了一些问题,但是我认为Safari的优势还是远远大于劣势的。如果后续我对上述问题有了更好的解决方案或者发现了更多的问题,我会在这篇文章中更新。