main/postmarketos-config-firefox: new aport (MR 1445)

Add policies.json and prefs.js to configure Firefox (yes, you need both
to be able to control all this):

Mobile improvements:
* Enable zooming with fingers
* Mobile user agent (from tor browser for android)

Privacy improvements:
* Disable search suggestions, so URLs do not get sent to search engines
  as they are getting typed.
* Disable Firefox studies
* Disable Telemetry
* Set DuckDuckGo as default search engine, not Google

Uncluttering (screen space, remove broken features, less distractions):
* Move all buttons to the overflow menu and remove spacers around the
  address bar
* Empty "new tab" page (loads faster, no annoying "top sites" etc.)
* Disable developer tools, so the hamburger menu fits the screen of the
  pinephone. These aren't really useful on phones anyway.
* Disable "Firefox Screenshots": the feature did not work with the mobile
  resolution in Phosh.
* No default bookmarks from Firefox
* Disable First Run Page
* Disable Post Update Page
* Disable "User Messaging" (What's new, Extension/Feature
  Recommendations, Urlbar Interventions)

Add a local html file that serves as lightweight default homepage. It
links to the postmarketOS blog and wiki, explains that this is desktop
firefox with mobile configuration and explains how to change settings
and install addons (with a direct link to ublock origin). Users can
override the homepage, new tab page, search engine, search suggestions
pre-configured by this package directly in the UI.

I chose Firefox ESR, because:
* It fits the screen better: the "new tab" button is bigger, the menu
  opening when you click the top-right button actually fits the screen,
  with all its submenus. There are zoom controls in the same menu, which
  make the preferences pages very usable.
* It's possible to override the default search engine with a policy
  file; that's not possible in non-ESR firefox (we'd probably need to
  change it in the sources).

Related: https://github.com/mozilla/policy-templates
Co-authored-by: Martijn Braam <martijn@brixit.nl>
This commit is contained in:
Oliver Smith 2020-07-24 02:55:45 +02:00
parent 24b7576bbb
commit 9b2a0a796d
No known key found for this signature in database
GPG key ID: 5AE7F5513E0885CB
4 changed files with 163 additions and 0 deletions

View file

@ -0,0 +1,21 @@
pkgname=postmarketos-config-firefox
pkgver=1
pkgrel=0
pkgdesc="Firefox tweaks for mobile and privacy (works best with Firefox ESR)"
url="https://postmarketos.org"
source="home.html policies.json prefs.js"
arch="noarch"
license="GPL-3.0-or-later"
options="!check"
package() {
install -Dm644 "$srcdir/prefs.js" \
"$pkgdir/usr/lib/firefox/defaults/pref/pmos-prefs.js"
install -Dm644 "$srcdir/policies.json" \
"$pkgdir/etc/firefox/policies/policies.json"
install -Dm644 "$srcdir/home.html" \
"$pkgdir/usr/share/postmarketos-config-firefox/home.html"
}
sha512sums="eb25ab01db4e489c0427ffaabfb7e4b3d208a5cff675c6d4b4ea4a51f4b3eb3b48461e7b2add266e2b25cfedf79bfb5537947e7b85aa7f0647ea6be1ceac1b47 home.html
04a5477dd4fbfe47ace1993b6a1e9b48be6d26b4ccc4e0933e1e783409d70d918982d7012475537b434acf7c31cfa1eed53a6a4526b62bba94ff1537197ced93 policies.json
3bf448484fa75e54d0b1ad48718424b3175a662467965480c7c89e9b3e15927e2e1773d0076590a50c6f0802855fc21d7c62bda27982fc06af8e5538050bc4ed prefs.js"

View file

@ -0,0 +1,94 @@
<!doctype html>
<html>
<head>
<title>Welcome to Firefox on postmarketOS</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
font-family: Arial, Helvetica, sans-serif;
}
h1, h2 {
margin: 0;
padding: 0;
font-weight: normal;
color: #555;
}
h1 {
font-size: 1.8em;
margin-top: 40px;
text-align: center;
font-weight: bold;
}
h2 {
margin-top: 30px;
font-size: 1.5em;
}
p, ul{
margin-top:0;
line-height:180%;
}
a {
color:#009900;
background: #eeeeee;
border-bottom: 2px solid #009900;
text-decoration: none;
padding: 2px;
}
.top-links {
text-align: center;
margin-top: 20px;
}
.text {
margin-top: 30px;
font-size: 1.0em;
}
.text a {
background: none;
text-decoration: underline;
border-bottom: none;
color: black;
padding: 0px;
}
</style>
</head>
<body>
<h1>
Welcome to Firefox on postmarketOS
</h1>
<p class="top-links">
<a href="https://postmarketos.org/blog">blog</a> -
<a href="https://wiki.postmarketos.org/">wiki</a>
</p>
<p class="text">
This is the desktop version of Firefox, but with a
<a href="https://postmarketos.org/firefox-cfg">
mobile-friendly configuration</a>. Try zooming and
scrolling with your fingers!
</p>
<h2>How to install add-ons</h2>
<p class="text">
Use the official
<a href="https://addons.mozilla.org/en-US/android/">add-on website</a>
from Mozilla. Take care, some add-ons require a lot of access to your
data and may not be respectful of your privacy. Here is a free software
add-on that we trust:
</p>
<ul>
<li> <a href="https://addons.mozilla.org/en-US/android/addon/ublock-origin/">uBlock Origin</a>:
a wide-spectrum content blocker, that prevents most
websites from wasting <i>your</i> resources (time,
traffic, battery, CPU and RAM).
</ul>
<h2>How to change settings</h2>
<p class="text">
Read on to set a different homepage, search engine or change other
options. Tap the collapsed menu icon on the top right, then select
<i>Preferences</i>. Tap the same icon again and decrease the
<i>Zoom</i> level to <i>50%</i>, so the page becomes readable. Next,
tap the category of the setting you want to change on the left &mdash;
house for <i>Homepage</i>, magnifying glass for <i>Search</i>. Finally,
change the desired setting on the right.
</p>
</body>
</html>

View file

@ -0,0 +1,30 @@
{
"policies": {
"DisableDeveloperTools": true,
"DisableFirefoxScreenshots": true,
"DisableFirefoxStudies": true,
"DisableTelemetry": true,
"NewTabPage": false,
"NoDefaultBookmarks": true,
"OverrideFirstRunPage": "",
"OverridePostUpdatePage": "",
"Homepage": {
"URL": "file:///usr/share/postmarketos-config-firefox/home.html",
"Locked": false,
"StartPage": "homepage"
},
"SearchEngines": {
"Default": "DuckDuckGo"
},
"UserMessaging": {
"WhatsNew": false,
"ExtensionRecommendations": false,
"FeatureRecommendations": false,
"UrlbarInterventions": false
}
}
}

View file

@ -0,0 +1,18 @@
/** Firefox tweaks for postmarketOS **/
// Select a mobile user agent for firefox (same as tor browser on android)
pref('general.useragent.override', 'Mozilla/5.0 (Android 6.0; Mobile; rv:68.0) Gecko/20100101 Firefox/68.0');
// Enable android-style pinch-to-zoom
pref('dom.w3c.touch_events.enabled', true);
pref('apz.allow_zooming', true);
pref('apz.allow_double_tap_zooming', true);
// Move all buttons to the overflow menu and remove spacers around the address bar
pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[\"stop-reload-button\",\"home-button\",\"library-button\",\"fxa-toolbar-menu-button\",\"sidebar-button\",\"downloads-button\"],\"nav-bar\":[\"back-button\",\"forward-button\",\"urlbar-container\"],\"toolbar-menubar\":[\"menubar-items\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"PersonalToolbar\":[\"personal-bookmarks\"]},\"seen\":[\"developer-button\"],\"dirtyAreaCache\":[\"nav-bar\",\"toolbar-menubar\",\"TabsToolbar\",\"PersonalToolbar\",\"widget-overflow-fixed-list\"],\"currentVersion\":16,\"newElementCount\":4}");
// Disable search suggestions
pref('browser.search.suggest.enabled', false);
// Empty new tab page: faster, less distractions
pref('browser.newtabpage.enabled', false);