Always reserver the space for the private browsing indicator, even if
not in private mode. This allows using the same width for the displayed
tab in both modes. Without this, the X of the tab is not visible in
private mode.
I think it's nice to have this space in both modes to quickly close the
menu, as it's right above the menu button.
This one is for being connected with the debugger. It's hard to edit the
CSS to make the urlbar look good with the debugger, if being connected
with it gives it another apperance. I'm currently fixing up the padding
to the left where the icon is, so disable it.
Now that there's a nice about:home page, show it in new tabs too instead
of the weird looking blank page. Set this in autoconfig.js instead of
policies.json, so it can be overridden by the user via settings page.
Disable everything but the search bar. This gives a clean page, of a
cog wheel on the top right where the user can adjust it as they want
(e.g. enable most frequently visited pages), then the FF logo and the
search bar.
I've considered enabling TopSites in order to show the most frequently
visited sites according to the browser's history. However, this also
enables built-in links to youtube, facebook, reddit, amazon, twitter.
And while it is convenient to have links you frequently visit available
(based on your history, not these built-ins!), getting an almost blank
page instead is actually a good idea to reduce the bad pattern of
opening a web browser and then forgetting your original intention until
it opens, and instead surfing mindlessly on the most recently visited
websites. The almost blank page gives the user a moment to think about
what they really want to do.
Here's something controversial. Install the wide-spectrum blocker uBlock
origin by default. This enables blocking of ads, trackers and malware
sites. I think these should be blocked for several reasons:
1. Performance on mobile devices
It's clear when browsing the web with this add-on, that there is a major
performance benefit in blocking advertising and tracking on websites. We
don't have these resources to waste on Mobile Linux.
2. Privacy
From uBlock origin's README.md:
> [...] it's important to note that using a blocker is NOT theft. Don't fall
> for this creepy idea. The ultimate logical consequence of blocking = theft
> is the criminalisation of the inalienable right to privacy.
> Ads, "unintrusive" or not, are just the visible portions of privacy-invading
> apparatus entering your browser when you visit most sites nowadays. uBlock
> Origin's main goal is to help users neutralize such privacy-invading
> apparatus — in a way that welcomes those users who don't wish to use more
> technical, involved means (such as uMatrix).
3. Manipulation
Modern advertising platforms are used to manipulate people in the scale
of influencing elections of world leaders. From Cambridge Analytica and
similar companies' perspective, one of the workflows is showing the user
an advertisement, then monitoring search queries to determine if the ad
was effective, then adjusting the ad to convince you better to vote for
a certain party, repeat. This has severe negative effects on society,
for people unfamiliar with the topic I recommend watching the movies
"The Great Hack" and "The Social Dilemma". The mentioned workflow is
described in the "Your Undivided Attention" podcast, episode 10, "Rock
the Voter" in an interview with a former Cambridge Analyticer insider.
Related: https://github.com/gorhill/uBlock
Related: cab6a5076c/README.md (policiesjson-45)
Related: https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/
Add a script that allows extracting the list of search engines enabled
in the current firefox build. There is no way to simply disable all
built-in search engines, so we need a list like this. Note that the
search engines can only be removed in the ESR version. I've briefly
tried to find such a list in the source code, but didn't find it without
spending too much effort. Besides, I'm guessing that in the source code
it's stored in almost the same format found in the "omni.ja" zip
archive.
Apply a similar hack to the "all tabs" menu, as the appMenu has, so it
gets a proper height and doesn't jump above or below the "all tabs"
button, depending on the keyboard being displayed or not. With this
hack, it stays consistently above the button.
Adjust the menu for Firefox 94, and for having the tab bar and search
bar at the bottom.
Getting the appMenu to look decent took me forever to figure out, here's
a notable alternative version that always uses the full screen height:
#appMenu-popup {
margin-top: calc(-1 * 100vh) !important;
height: calc(100vh - 100px) !important;
max-height: calc(100vh - 100px) !important;
}
However with this alternative version, there's a bug when having the
keyboard open, then opening the menu (-> it will get spawned with about
half the screen size), and then closing the keyboard and opening the
menu again. The menu is cached (as one can see in the element inspector)
and still has the wrong height. The content inside the menu is
flickering between the full height and the half height.
By having a fixed size that looks good with both the keyboard open and
closed, we can work around this problem. The height of the keyboard was
adjusted for the PinePhone. If it doesn't look good on your device, add
a media query to make it have a different height based on the overall
height of the window (and possibly also width).
Based on MR 17 by plata-gl, thank you very much, and thanks to everybody
who answered the survey linked in that MR whether to make this default
or not.
I've left out padding-top since the additional 1px bar towards the top
looks like a bug, I've compared with Fennec on Android and it doesn't
have such a line. Also I've left out the inFullscreen lines from the MR,
not sure what they are for - we can still add them in a follow-up patch
if desired.
In the Tor browser user agent, the "geckotrail" part has been changed.
Apparently following an upstream change in Firefox:
> From Firefox 10 on mobile, geckotrail is the same as firefoxversion.
Note: I'm simply running latest Tor browser on Android and visit
websites showing the user agent to figure out the latest one. I tried to
figure it out from the source code once, but didn't find a place where
it could be looked up trivially (since it gets built of multiple
components etc.).
Related: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
For some distros (including Debian), the Firefox config directory can be
different from `/etc/firefox`. Adding a variable for this location so it can
be easily customized at build time.
Preferences set with `pref()` can be changed by the user, but they're
then reset on each Firefox startup.
As users may want a different UA and keep it persistent, we should set
the default value with `defaultPref()` instead. This requires moving the
preference to the autoconfig file though, as `defaultPref()` isn't
recognized in the main config file.
To allow downloading the package directly from GitLab and not having to
run make install (e.g. to easily try a specific MR); also makes it
easier to check in a MR if make install works as expected.
Adds stylesheets for some "about:" pages, the pages were chosen depending
on importance for user.
preferences.css was moved to sidebar.css since changes in this file could
be applied for more pages and were related only to sidebar.
Adds copyrights