LibreWolf使用记录

之前一直使用Firefox作为个人主力浏览器,工作上由于有些网页兼容问题,一直使用的是Chrome。自从看了Eric Murphy 关于浏览器的分类之后, 出于对隐私的考虑,还是决定把chrome换成Brave,同时考虑对Firefox进行harden或者使用LibreWolf。

Hardened Firefox

视频中提到了betterfox和arkenfox两种方式,其中betterfox在保证不break的前提下尽可能的保护隐私,而arkenfox更为激进一些,会导致出现breakage的情况,所以强烈建议在使用之前要过一遍wiki。在尝试了两种方式之后,发现有时会出现一些奇怪的问题,但是如果new一个profile,然后再应用user.js就没有问题,怀疑跟我之前的配置有些地方有冲突。

后来发现LibreWolf基本上就是hardened之后的Firefox,就开始尝试LibreWolf了。

LibreWolf初体验

直接去librewolf官网的Installation,找到对应的系统进行安装。

对于Mac可以通过homebrew安装brew install --cask librewolf,或者下载dmg文件进行安装。

这里有个小插曲,下载的dmg一直报错文件损坏,搞到我一度怀疑下载出了问题,后来查了一下hash,发现没问题。才发现需要加上 --no-quarantine 选项(resolve Librewolf is damaged)。只能说这个damage的报错实在是有点误导人。也不知道为什么LibreWolf还没有解决这个问题。

目前用下来,除了b站登陆有点问题,还没发现有哪些网站出现breakage.

B站的问题有两点:

  1. 二维码不出来,这个是Canvas被block了(一般也不咋用这个二维码)(enable canvas)
  2. 点击登陆按钮没反应。这个是由于使用了Enhanced Tracking Protection的strict模式。(一般的网站登陆都没这问题)

为了登陆B站,只要把B站加入到Enhanced Tracking Protection的Exception即可,可以通过点击地址栏旁边的盾牌进行disable(其中还涉及到发验证码的网站,也没法用,需要加入exception)

LibreWolf配置修改

在使用betterfox来harden Firefox的时候,发现有个librewolf.override.cfg的配置,看了下LibreWolf的doc, 发现可以用override来修改配置,只需要把librewolf.override.cfg放在对应的~/.librewolf目录下即可。

PS:betterfox的这个文件在最近的commite中被删了, 原来的文件里也提到最好还是使用user.js

LibreWolf更新

最近Chrome爆出了个安全漏洞,公司要求全员强制升级chrome。看了下我的Brave,果然紧跟Chromium内核,更新之后已经是修复好版本了。这时抱着好奇心看了下LibreWolf和Firefox的版本差距,发现居然已经落后了一个月,期间大概有2-3个update。原以为LibreWolf跟Firefox一样有着自动update的默认选项。现在发现需要手动升级。还好我是brew安装的,只要重新运行brew install --cask librewolf就可以升级了。

考虑到很可能忘记手动更新,所以我加了个plist任务来实现每天自动去尝试更新LibreWolf.

~/Library/LaunchAgents/下创建com.librewolf.updater.plist文件,通过lanuchctl load com.librewolf.updater.plist添加,这里需要注意,两个输出文件/tmp/brewinstall.err/tmp/brewinstall.out需要提前创建,否则会报78的错误, 错误是silent的,需要自己执行launchctl list | grep libre进行查看,status为0表示正常,遇到文件的permission问题status是78。

后续的任务情况可以通过 launchctl list | grep librelaunchctl print gui/$(id -u)/com.librewolf.updater进行查看。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict><key>Label</key><string>com.librewolf.updater</string><key>ProgramArguments</key><array><string>/opt/homebrew/bin/brew</string> <!-- 根据你的 Homebrew 安装位置调整 --><string>install</string><string>--cask</string><string>librewolf</string></array><key>StartCalendarInterval</key><dict><key>Hour</key><integer>10</integer> <!-- Update at 18 AM --><key>Minute</key><integer>30</integer> <!-- At the beginning of the hour --></dict><!-- <key>StartInterval</key> --><!-- <integer>86400</integer> <!-\- 每天运行一次(86400秒 = 24小时) -\-> --><key>StandardErrorPath</key><string>/tmp/brewinstall.err</string><key>StandardOutPath</key><string>/tmp/brewinstall.out</string></dict>
</plist>

总结

privacy和convenience是一个trade off的问题,目前遇到不方便的地方有:

  1. 默认清空cookie导致每次都要进行重新登陆。解决方案是把几个常用的网站添加到Exception中(这里LibreWolf做的比hardened Firefox好的地方是可以在地址拦旁边进行添加,而不需要进入setting把网址输入一遍)
  2. 由于启用了Resist Fingerprinting (RFP),窗口不是铺满屏幕,也没有记忆之前位置的功能。这个的话LibreWolf官网是建议大家适应。

暂时遇到的就是这些,后续有其他问题再继续更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/52330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从力扣中等+困难题+表白HTML测试 -- 文心快码(Baidu Comate)

0 写在前面 &#xff08;通过如下链接/二维码进入官网注册&#xff0c;并在IDE使用三次及以上可以找我领计算机基础/ML/DL 面经/知识点一份~&#xff09; 官网地址&#xff1a;Baidu Comate Step1 打开文心快码&#xff08;Baidu Comate&#xff09;官网&#xff0c;点击「免…

[Python可视化]空气污染物浓度地图可视化

[Python可视化]空气污染物浓度地图可视化&#xff0c;果然是路边浓度最大 在本篇文章中&#xff0c;我将展示如何使用 Python 结合 OSMnx、NetworkX 和 GeoPandas 等库&#xff0c;计算给定路径的最短路线&#xff0c;并基于该路径穿过的网格单元计算总污染量。最终&#xff0c…

【ORACLE】listagg() 函数

在Oracle数据库中&#xff0c;LISTAGG 函数是一个非常有用的聚合函数&#xff0c;它能够将多个行的字符串值连接成一个单独的字符串。这个函数在处理需要将多行数据合并为一行数据的场景中特别有用&#xff0c;比如生成报表或者构建复杂的字符串输出。 基本语法 LISTAGG 函数…

k8s - Secret实践练习

参考文档&#xff1a;https://kubernetes.io/zh-cn/docs/concepts/configuration/secret/ 这个和ConfigMap很相似&#xff0c;这里选两个做下测试&#xff0c;就不过多赘述了 简介 Secret 类似于 ConfigMap 但专门用于保存机密数据。 Secret 是一种包含少量敏感信息例如密码…

<数据集>鸟类识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;16287张 标注数量(xml文件个数)&#xff1a;16287 标注数量(txt文件个数)&#xff1a;16287 标注类别数&#xff1a;10 标注类别名称&#xff1a;[Chestnut Munia, Zebra Dove, Garden Sunbird, Collared Kingfish…

一篇文章入门Java虚拟机(JVM)

JVM全称是Java Virtual Machine&#xff0c;中文译名Java虚拟机。本质上是一个运行在计算机上的程序 一&#xff0c;JVM的功能 功能描述解释和运行对字节码文件中的指令&#xff0c;实时的解释成机器码&#xff0c;让计算机执行内存管理自动为对象、方法等分配内存&#xff1…

ChatGPT 3.5/4.0 新手使用手册

ChatGPT 3.5/4.0 新手使用手册 一、引言 ChatGPT 是由 OpenAI 开发的一种基于人工智能技术的聊天机器人&#xff0c;它能够自动生成自然语言的响应&#xff0c;与用户进行高质量的对话。ChatGPT 3.5 和 4.0 是该系列的最新版本&#xff0c;它们在自然语言处理、对话能力和知识…

海山数据库(He3DB)源码详解:CommitTransaction函数源码详解

文章目录 海山数据库(He3DB)源码详解&#xff1a;CommitTransaction函数1. 执行条件2. 执行过程2.1 获取当前节点状态&#xff1a;2.2 检查当前状态&#xff1a;2.3 预提交处理&#xff1a;2.4 提交处理&#xff1a;2.5 释放资源&#xff1a;2.6 提交事务&#xff1a; 作者介绍…

数据结构-线性表-了解循环链表

了解循环链表 循环链表是一种特殊的链表结构&#xff0c;其中最后一个节点的指针指向头节点&#xff0c;从而形成一个闭环。循环链表可以分为两种类型&#xff1a;单循环链表和双循环链表。 1. 单循环链表&#xff08;Singly Circular Linked List&#xff09; 定义&#xf…

Qt第十八章 XML和Json格式解析

文章目录 JSON格式解析Json生成案例 XML简介与HTML的区别格式XML解析流的方式DOM XML生成 JSON与XML的区别比较 JSON 格式 JSON是一个标记符的序列。这套标记符包含六个构造字符、字符串、数字和三个字面名 六个构造字符 开始和结束数组&#xff1a;[ ]开始和结束对象&#x…

基于HarmonyOS的宠物收养系统的设计与实现(一)

基于HarmonyOS的宠物收养系统的设计与实现&#xff08;一&#xff09; 本系统是简易的宠物收养系统&#xff0c;为了更加熟练地掌握HarmonyOS相关技术的使用。 项目创建 创建一个空项目取名为PetApp 首页实现&#xff08;组件导航使用&#xff09; 官方文档&#xff1a;组…

安卓中设置渐变字体和描边字体

1.CommonFontSpan abstract class CommonFontSpan : ReplacementSpan() {/** 测量的文本宽度 */private var mMeasureTextWidth 0foverride fun getSize(paint: Paint,text: CharSequence?,start: Int,end: Int,fontMetricsInt: FontMetricsInt?): Int {mMeasureTextWidth…

机器学习辅助复合材料预测,性能管理优化创新材料,这种王炸般的组合,还真是大开眼界!

在人工智能与复合材料技术融合的背景下&#xff0c;复合材料的研究和应用正迅速发展&#xff0c;创新解决方案层出不穷。从复合材料性能的精确预测到复杂材料结构的智能设计&#xff0c;从数据驱动的材料结构优化到多尺度分析&#xff0c;人工智能技术正以其强大的数据处理能力…

Eureka 原理与实践全攻略

一、Eureka 概述 Eureka 在微服务架构中具有举足轻重的地位。它作为服务注册与发现的核心组件&#xff0c;为分布式系统中的服务管理提供了关键支持。 Eureka 的主要功能包括服务注册、服务发现、服务健康监测和自我保护机制。服务注册功能使得服务提供者能够在启动时将自身的…

git-版本管理工具基本操作-创建仓库-拉取-推送-暂存库-版本库

1、创建仓库和版本说明 2、克隆仓库到本地&#xff08;首次拉取需要输入用户名和密码&#xff0c;用户名用邮箱&#xff0c;密码用登录gitee的密码&#xff0c;后面配置密钥后可以直接clone&#xff09; 在命令行输出两行指令配置git才能克隆&#xff1a; username&#xff1…

JUnit 断言验证

assertEquals(expected, actual)&#xff1a; 检查 actual 是否等于 expected。示例&#xff1a; assertEquals(5, myMethod(2, 3)); // 检查 2 3 是否等于 5 assertTrue(condition)&#xff1a; 检查 condition 是否为 true。示例&#xff1a; assertTrue(myMethod(1) > …

求数组中出现次数超过一半的数字

一、题目 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。 假设数组非空&#xff0c;并且一定存在满足条件的数字。 思考题&#xff1a; 假设要求只能使用 O(n)的时间和额外 O(1)的空间&#xff0c;该怎么做呢&#xff1f; 数据范围 数组长度…

《Web项目跨域请求后端Api设置Cookie失败问题?》

问题描述&#xff1a; 在web项目中跨域请求api时&#xff0c;api登录成功后需要向域名中设置cookie实现在两个域名下共享&#xff0c;但是登录接口返回成功&#xff0c;响应头中也有set-cookie&#xff0c;实际却无法设置到cookie中… web项目访问时的域名https://b.com/ api所…

解锁Spring Boot、Prometheus与Grafana三合一:打造你的专属自定义指标炫酷大屏!

1. 集成Prometheus到Spring Boot 需要在Spring Boot应用中集成Prometheus。可以通过micrometer库来实现。micrometer是一个应用程序监控库&#xff0c;它支持多种监控系统&#xff0c;包括Prometheus。 一招制胜&#xff01;Spring Boot、Prometheus和Grafana三剑合璧&#x…

一、react-hooks(useState、useRef、forwardRef)

一、useState 注意事项&#xff1a; 1.setState的方法并不像函数式组件会自动合并&#xff0c;所以需要我们通过展开运算符手动合并。 // 更新方式1&#xff1a;展开运算符// const info{...userInfo,...data}// setUserInfo(info)// 方式2&#xff1a;setUserInfo(Object.as…