commit
ea46d473de
4 changed files with 152 additions and 0 deletions
17
.drone.yml
Normal file
17
.drone.yml
Normal file
|
@ -0,0 +1,17 @@
|
|||
kind: pipeline
|
||||
type: docker
|
||||
name: default
|
||||
|
||||
steps:
|
||||
- name: Build librewolf-allow-dark
|
||||
image: debian
|
||||
commands:
|
||||
- '/drone/src/compilation.sh'
|
||||
volumes:
|
||||
- name: program-archives
|
||||
path: /compiled
|
||||
|
||||
volumes:
|
||||
- name: program-archives
|
||||
host:
|
||||
path: /mnt/user/files/repos/archives
|
27
README.md
Normal file
27
README.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Librewolf-allow-dark build
|
||||
|
||||
Librewolf with the privacy.override_rfp_for_color_scheme about:config option added, which (if enabled) let's you change the color scheme even if rfp is turned on
|
||||
|
||||
- Builds librewolf-allow-dark and places it in `$COMPILED_DIR/librewolf-allow-dark/librewolf.tar.zst`
|
||||
- Version file at `$COMPILED_DIR/librewolf-allow-dark/version`
|
||||
|
||||
## Archive details
|
||||
|
||||
TODO: **FIX THIS SECTION**
|
||||
|
||||
```
|
||||
.
|
||||
├── polycat
|
||||
└── polycat.ttf
|
||||
```
|
||||
|
||||
Recommended:
|
||||
|
||||
| File | Location | Permissions |
|
||||
| --------------- | -------------------------------------- | ----------- |
|
||||
| `./polycat` | `/usr/bin/polycat` | 755 |
|
||||
| `./polycat.ttf` | `/usr/share/fonts/polycat/polycat.ttf` | 644 |
|
||||
|
||||
---
|
||||
|
||||
Based on the [librewolf-allow-dark](https://aur.archlinux.org/packages/librewolf-allow-dark) AUR package, directly copying `allow_dark.patch` from it.
|
58
allow_dark.patch
Normal file
58
allow_dark.patch
Normal file
|
@ -0,0 +1,58 @@
|
|||
diff -ru a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
||||
--- a/browser/components/preferences/main.js
|
||||
+++ b/browser/components/preferences/main.js
|
||||
@@ -4287,6 +4287,7 @@
|
||||
FORCED_COLORS_QUERY.addEventListener("change", this);
|
||||
Services.prefs.addObserver(PREF_USE_SYSTEM_COLORS, this);
|
||||
Services.prefs.addObserver("privacy.resistFingerprinting", this);
|
||||
+ Services.prefs.addObserver("privacy.override_rfp_for_color_scheme", this);
|
||||
Services.obs.addObserver(this, "look-and-feel-changed");
|
||||
this._update();
|
||||
},
|
||||
@@ -4324,6 +4325,7 @@
|
||||
destroy() {
|
||||
Services.prefs.removeObserver(PREF_USE_SYSTEM_COLORS, this);
|
||||
Services.prefs.removeObserver("privacy.resistFingerprinting", this);
|
||||
+ Services.prefs.removeObserver("privacy.override_rfp_for_color_scheme", this);
|
||||
Services.obs.removeObserver(this, "look-and-feel-changed");
|
||||
FORCED_COLORS_QUERY.removeEventListener("change", this);
|
||||
},
|
||||
@@ -4365,7 +4367,8 @@
|
||||
this.warning.hidden = !forcingColorsAndNoColorSchemeSupport;
|
||||
|
||||
document.getElementById("web-appearance-rfp-warning")?.remove();
|
||||
- if (Services.prefs.getBoolPref("privacy.resistFingerprinting")) {
|
||||
+ if (Services.prefs.getBoolPref("privacy.resistFingerprinting") &&
|
||||
+ !Services.prefs.getBoolPref("privacy.override_rfp_for_color_scheme")) {
|
||||
document.getElementById("web-appearance-chooser").style.opacity = 0.3;
|
||||
document.getElementById("web-appearance-chooser").style.pointerEvents = "none";
|
||||
const infoBox = document.createElement("div");
|
||||
diff -ru a/dom/base/Document.cpp b/dom/base/Document.cpp
|
||||
--- a/dom/base/Document.cpp
|
||||
+++ b/dom/base/Document.cpp
|
||||
@@ -19620,7 +19620,8 @@
|
||||
|
||||
ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const {
|
||||
if (ShouldResistFingerprinting(RFPTarget::CSSPrefersColorScheme) &&
|
||||
- aIgnoreRFP == IgnoreRFP::No) {
|
||||
+ aIgnoreRFP == IgnoreRFP::No &&
|
||||
+ !StaticPrefs::privacy_override_rfp_for_color_scheme()) {
|
||||
return ColorScheme::Light;
|
||||
}
|
||||
|
||||
diff -ru a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
|
||||
--- a/modules/libpref/init/StaticPrefList.yaml
|
||||
+++ b/modules/libpref/init/StaticPrefList.yaml
|
||||
@@ -15246,6 +15246,12 @@
|
||||
value: false
|
||||
mirror: always
|
||||
|
||||
+# Allows overriding RFP for only the dark/light pref
|
||||
+- name: privacy.override_rfp_for_color_scheme
|
||||
+ type: bool
|
||||
+ value: false
|
||||
+ mirror: always
|
||||
+
|
||||
# Enforce tracking protection in all modes.
|
||||
- name: privacy.trackingprotection.enabled
|
||||
type: bool
|
50
compilation.sh
Executable file
50
compilation.sh
Executable file
|
@ -0,0 +1,50 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
program_name="librewolf-allow-dark"
|
||||
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
|
||||
|
||||
# prep
|
||||
workdir=$(mktemp -d)
|
||||
built_dir=${COMPILED_DIR:-/compiled}/$program_name
|
||||
mkdir -p $built_dir
|
||||
apt update && apt install curl jq -y
|
||||
|
||||
# check whether it's up-to-date
|
||||
version_file=$built_dir/version
|
||||
touch $version_file
|
||||
version=$(curl 'https://gitlab.com/api/v4/projects/32320088/packages?sort=desc' | jq '.[0].version' -r)
|
||||
if grep -q $version $version_file; then
|
||||
echo "already up to date, exiting"
|
||||
exit
|
||||
fi
|
||||
|
||||
# get source and build
|
||||
cd $workdir
|
||||
curl "https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/$version/librewolf-$version.source.tar.gz" -LO
|
||||
tar -xzf librewolf-136.0-2.source.tar.gz
|
||||
cd ./librewolf-$version/
|
||||
# get build deps
|
||||
apt install python3 python3-pip wget patch -y
|
||||
# apply allow dark patch
|
||||
patch -p1 -i $SCRIPT_DIR/allow_dark.patch
|
||||
export MOZ_BUILD_DATE="$(date -u${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH} +%Y%m%d%H%M%S)"
|
||||
# not entirely sure what this does, but it's what librewolf-allow-dark does
|
||||
export MOZ_NOSPAM=1
|
||||
# build
|
||||
./mach --no-interactive bootstrap --application-choice=browser
|
||||
./lw/setup-wasi-linux.sh
|
||||
./mach build
|
||||
./mach package
|
||||
|
||||
|
||||
# build .tar.zst archive
|
||||
cd $workdir
|
||||
tar -xvf ./librewolf-$version/obj-x86_64-pc-linux-gnu/dist/librewolf-$version.en-US.linux-x86_64.tar.xz
|
||||
cd ./librewolf/
|
||||
apt install zstd -y
|
||||
mkdir -p $built_dir
|
||||
tar --zstd -cf $built_dir/$program_name.tar.zst .
|
||||
echo $version >$version_file
|
||||
|
||||
echo "$program_name updated to $version"
|
Loading…
Add table
Reference in a new issue