====== Firefox ======
===== Disable Detachable Tabs in Mozilla Firefox =====
* ''about:config''
* ''browser.tabs.allowTabDetach''
===== limit memory usage =====
==== cgroups ====
References:
* [[https://gist.github.com/hrishikeshrt/dab05d42fc60144909cdbde2cc3f4d2c|Limit Memory Usage using cgroups]]
* [[https://gist.github.com/hardfire/7e5d9e7ce218dcf2f510329c16517331]]
* [[https://gist.github.com/avoidik/1c7c53f02461f716aabebf3372a6199d]]
But now we have some modern systemd based tools.
==== systemd ====
[[https://wiki.archlinux.org/title/cgroups]]
#!/bin/bash
systemd-run --user -G --scope --unit=run-firefox -p OOMPolicy=continue -p MemoryMaxigh=4G -p MemoryMax=5G -p MemorySwapMax=2G -p "CPUQuota=200%" /usr/bin/firefox "$@"
or
#!/bin/bash
systemd-run --user -G --scope --unit=run-firefox -p OOMPolicy=continue -p MemoryHigh=50% -p MemoryMax=60% -p MemorySwapMax=2G -p "CPUQuota=200%" /usr/bin/firefox "$@"
See [[https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html#MemoryMax=bytes|MemoryMax]]
Verify limits:
systemctl list-units --user --type scope
systemctl status --user run-firefox.scope
Memory: 201.3M (max: 2.0G swap max: 2.0G available: 1.8G)
Modify limits without restarting firefox:
systemctl set-property --user run-firefox.scope MemoryMax=8G MemorySwapMax=10G
==== put other firefox-esr under jail ====
apt-get install cgroup-tools
sudo cgclassify -g memory,cpu::/user.slice/user-1000.slice/user@1000.service/app.slice/run-firefox.scope 20975
==== firejail ====
sudo apt install firejail
firejail --noprofile --rlimit-as=5g firefox
--rlimit-as=number
Set the maximum size of the process's virtual memory (address space) in bytes. Use k(ilobyte), m(egabyte) or g(igabyte) for size suffix (base 1024).
[[https://wiki.archlinux.org/title/Firejail#Using_Firejail_by_default|Using_Firejail_by_default]]