Compare commits
No commits in common. "master" and "v88.0-test-release" have entirely different histories.
master
...
v88.0-test
32 changed files with 2347 additions and 17 deletions
11
.gitignore
vendored
Normal file
11
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
/firefox-*
|
||||
/librewolf-*
|
||||
/librewolf
|
||||
/mozilla-unified
|
||||
/tor-browser
|
||||
/bootstrap.py
|
||||
/mozconfig
|
||||
/dist
|
||||
/tmp.nsi
|
||||
/tmp-permissive.nsi
|
||||
/tmp-strict.nsi
|
||||
9
.gitmodules
vendored
Normal file
9
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[submodule "settings"]
|
||||
path = settings
|
||||
url = https://gitlab.com/librewolf-community/settings.git
|
||||
[submodule "common"]
|
||||
path = common
|
||||
url = https://gitlab.com/librewolf-community/browser/common.git
|
||||
[submodule "linux"]
|
||||
path = linux
|
||||
url = git@gitlab.com:librewolf-community/browser/linux.git
|
||||
61
README.md
61
README.md
|
|
@ -1,30 +1,57 @@
|
|||
# LibreWolf Issue Tracker & Update Tools 🚀
|
||||
# What LibreWolf is not
|
||||
|
||||
Welcome to the **LibreWolf for Windows** repository! This repository is now dedicated to the **Issue Tracker**. Submit your issues and get the latest updates on LibreWolf for Windows.
|
||||
* LibreWolf does **not** provide _[Anonymity](https://en.wikipedia.org/wiki/Anonymous_web_browsing)_, for that, use:
|
||||
> [Tor Browser](https://www.torproject.org/).
|
||||
|
||||
To download the latest release, visit the [official LibreWolf release page](https://gitlab.com/librewolf-community/browser/bsys6/-/releases). For installation options, check out the [FAQ](https://librewolf.net/docs/faq/).
|
||||
_What is it then?_ It's a **_hardened_** _version_ of Firefox. (See bottom of file.)
|
||||
|
||||
## Update Tools 🛠️
|
||||
# LibreWolf for windows
|
||||
|
||||
Stay secure and up-to-date with these LibreWolf update tools:
|
||||
* **[download latest release](https://gitlab.com/librewolf-community/browser/windows/-/releases)**.
|
||||
* [issue tracker](https://gitlab.com/librewolf-community/browser/windows/-/issues).
|
||||
|
||||
1. **LibreWolf WinUpdater**: Kudos to @ltguillaume for this [automatic updater](https://codeberg.org/ltguillaume/librewolf-winupdater) that can be set up to update LibreWolf automatically or run manually.
|
||||
# Chocolatey package manager
|
||||
|
||||
2. **LibreWolf Update Checker Extension**: Created by Defkev, this [extension](https://addons.mozilla.org/en-US/firefox/addon/librewolf-updater/) will notify you when an update is available and guide you to the download link.
|
||||
This work is not completely finished yet, but ready to be used anyway.
|
||||
For now, to install, download [librewolf.87.0.4.nupkg](https://gitlab.com/librewolf-community/browser/windows/uploads/c0d228fc15c1a8f96f4f1db0e0fe2d42/librewolf.87.0.4.nupkg), and run this in the folder with the nupkg:
|
||||
|
||||
> Please note: The *updater* can _install_ updates automatically, while the *extension* can only _check_ for updates.
|
||||
`choco install librewolf -s "'.;chocolatey'"`
|
||||
|
||||
## LibreWolf for Windows 🖥️
|
||||
Code is here https://github.com/maltejur/librewolf-choco
|
||||
|
||||
- LibreWolf supports multiple UI languages, available in settings.
|
||||
- The latest **-portable.zip** release is self-contained and can be run on removable storage.
|
||||
# other download locations
|
||||
|
||||
## Issue Tracker 🎫
|
||||
* [[arch releases](https://gitlab.com/librewolf-community/browser/arch/-/releases)] - [librewolf-bin AUR(en)](https://aur.archlinux.org/packages/librewolf-bin/), [librewolf AUR(en)](https://aur.archlinux.org/packages/librewolf/)
|
||||
* [[linux releases](https://gitlab.com/librewolf-community/browser/linux/-/releases)] - Flatpak, AppImage, Arch and other Linux builds of the LibreWolf browser.
|
||||
|
||||
- For issues with Settings or Advanced Settings (`about:config`), submit them to the [settings repository](https://gitlab.com/librewolf-community/settings/-/issues).
|
||||
- For other issues, such as crashes/theme/graphics/speed problems, submit them to [issues for windows repository](https://gitlab.com/librewolf-community/browser/windows/-/issues).
|
||||
# settings repository
|
||||
|
||||
## Building from Source 🏗️
|
||||
* [[settings repository](https://gitlab.com/librewolf-community/settings)] - all _librewolf.cfg_ stuff.. _([issues](https://gitlab.com/librewolf-community/settings/-/issues))_
|
||||
|
||||
- Our `bsys` build system supports cross-compiling from Linux to Windows. Building the Windows version from within Windows is not tested yet.
|
||||
- The build system can be found here: [bsys6](https://gitlab.com/librewolf-community/browser/bsys6).
|
||||
# librewolf repositories
|
||||
|
||||
* [[common](https://gitlab.com/librewolf-community/browser/common)] -> _([issues](https://gitlab.com/librewolf-community/browser/common/-/issues))_
|
||||
* [[linux](https://gitlab.com/librewolf-community/browser/linux)] -> _([issues](https://gitlab.com/librewolf-community/browser/linux/-/issues))_
|
||||
* [[website](https://gitlab.com/librewolf-community/librewolf-community.gitlab.io)] - _([issues](https://gitlab.com/librewolf-community/librewolf-community.gitlab.io/-/issues))_
|
||||
|
||||
# distro repositories
|
||||
|
||||
* [[arch](https://gitlab.com/librewolf-community/browser/arch)] -> _([issues](https://gitlab.com/librewolf-community/browser/arch/-/issues))_
|
||||
* [[debian](https://gitlab.com/librewolf-community/browser/debian)] -> _([issues](https://gitlab.com/librewolf-community/browser/debian/-/issues))_
|
||||
* [[flatpack](https://gitlab.com/librewolf-community/browser/flatpak)] -> _([issues](https://gitlab.com/librewolf-community/browser/flatpak/-/issues))_
|
||||
* [[gentoo](https://gitlab.com/librewolf-community/browser/gentoo)] -> _([issues](https://gitlab.com/librewolf-community/browser/gentoo/-/issues))_
|
||||
* [[macos](https://gitlab.com/librewolf-community/browser/macos)] -> _([issues](https://gitlab.com/librewolf-community/browser/macos/-/issues))_
|
||||
* [[windows](https://gitlab.com/librewolf-community/browser/windows)] -> _([issues](https://gitlab.com/librewolf-community/browser/windows/-/issues))_
|
||||
|
||||
# community links
|
||||
|
||||
* If at all possible, pleasse go to the relevant 'issues' link and start discussing thing there.
|
||||
* [[reddit](https://www.reddit.com/r/LibreWolf/)] - [r/LibreWolf](https://www.reddit.com/r/LibreWolf/) 😺
|
||||
* [readthedocs.io](https://librewolf.readthedocs.io/en/latest/).
|
||||
* [[gitter](https://gitter.im/librewolf-community/librewolf)], and the same room on [matrix](https://app.element.io/#/room/#librewolf-community_librewolf:gitter.im) (element.io).
|
||||
|
||||
# hardening firefox
|
||||
|
||||
* **tools**: [[deviceinfo.me](https://www.deviceinfo.me/)], [[coveryourtracks](https://coveryourtracks.eff.org/learn)], [[privacytools.io](https://privacytools.io/)],
|
||||
* eff.org: [surveillance self-defense](https://ssd.eff.org/en).
|
||||
* Interesting wikipedia articles: [Browser fingerprinting](https://en.wikipedia.org/wiki/Device_fingerprint), [Browser security](https://en.wikipedia.org/wiki/Browser_security), [Browser exploit](https://en.wikipedia.org/wiki/Browser_exploit), [Anonymous web browsing](https://en.wikipedia.org/wiki/Anonymous_web_browsing), [Internet privacy](https://en.wikipedia.org/wiki/Internet_privacy).
|
||||
|
|
|
|||
223
artifacts_all.sh
Normal file
223
artifacts_all.sh
Normal file
|
|
@ -0,0 +1,223 @@
|
|||
function artifacts_win_details(){
|
||||
exe=.exe
|
||||
objdir=obj-x86_64-pc-mingw32/dist/firefox
|
||||
ospkg=win64
|
||||
|
||||
# sanity checks
|
||||
if [ ! -d $objdir ]; then
|
||||
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
rm -rf ../firefox ../librewolf
|
||||
cp -r $objdir ..
|
||||
|
||||
pushd ..
|
||||
|
||||
mv firefox librewolf
|
||||
# apply the LibreWolf settings
|
||||
cp -rv settings/* librewolf
|
||||
# rename the executable manually
|
||||
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||
# clean garbage files
|
||||
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files uninstall ; cd ..
|
||||
# copy the windows icon
|
||||
cp -v common/source_files/browser/branding/librewolf/firefox.ico librewolf/librewolf.ico
|
||||
|
||||
# create the final zip/exe artifacts
|
||||
if [ ! -z $permissive ]; then
|
||||
|
||||
# patch to permissive config
|
||||
pushd librewolf
|
||||
echo "Applying permissive patches..."
|
||||
cp -v ../settings/librewolf.cfg . && cp -v ../settings/distribution/policies.json distribution
|
||||
patch -p1 -i ../patches/permissive/librewolf-config.patch
|
||||
patch -p1 -i ../patches/permissive/librewolf-policies.patch
|
||||
popd
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg-permissive.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg-permissive.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
rm -f librewolf-$pkgver.en-US.win64-permissive-setup.exe tmp.nsi tmp-permissive.nsi
|
||||
sed "s/pkg_version/$pkgver/g" < artifacts_win.nsi > tmp.nsi
|
||||
sed "s/win64-setup/win64-permissive-setup/g" < tmp.nsi > tmp-permissive.nsi
|
||||
makensis-3.01.exe -V1 tmp-permissive.nsi
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
elif [ ! -z $strict ]; then
|
||||
|
||||
# patch to strict config
|
||||
pushd librewolf
|
||||
echo "Applying strict config..."
|
||||
cp -v ../settings/librewolf.cfg . && cp -v ../settings/distribution/policies.json distribution
|
||||
patch -p1 -i ../patches/strict/librewolf-config.patch
|
||||
patch -p1 -i ../patches/strict/librewolf-policies.patch
|
||||
popd
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg-strict.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg-strict.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
rm -f librewolf-$pkgver.en-US.win64-strict-setup.exe tmp.nsi tmp-strict.nsi
|
||||
sed "s/pkg_version/$pkgver/g" < artifacts_win.nsi > tmp.nsi
|
||||
sed "s/win64-setup/win64-strict-setup/g" < tmp.nsi > tmp-strict.nsi
|
||||
makensis-3.01.exe -V1 tmp-strict.nsi
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
else
|
||||
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
rm -f librewolf-$pkgver.en-US.win64-setup.exe tmp.nsi
|
||||
sed "s/pkg_version/$pkgver/g" < artifacts_win.nsi > tmp.nsi
|
||||
makensis-3.01.exe -V1 tmp.nsi
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
fi
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function artifacts_deb_details(){
|
||||
exe=
|
||||
objdir=obj-x86_64-pc-linux-gnu/dist/firefox
|
||||
ospkg=deb
|
||||
|
||||
# sanity checks
|
||||
if [ ! -d $objdir ]; then
|
||||
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
rm -rf ../firefox ../librewolf
|
||||
cp -r $objdir ..
|
||||
|
||||
pushd ..
|
||||
|
||||
mv firefox librewolf
|
||||
# apply the LibreWolf settings
|
||||
cp -rv settings/* librewolf
|
||||
# rename the executable manually
|
||||
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||
# clean garbage files
|
||||
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files ; cd ..
|
||||
|
||||
# linux: copy app icon stuff
|
||||
cp files/register-librewolf files/start-librewolf files/start-librewolf.desktop.in librewolf
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
# (create a .deb here)
|
||||
|
||||
# patch to permissive config
|
||||
if [ ! -z $permissive ]; then
|
||||
pushd librewolf
|
||||
echo "Applying permissive patches..."
|
||||
cp -v ../settings/librewolf.cfg . && cp -v ../settings/distribution/policies.json distribution
|
||||
patch -p1 -i ../patches/permissive/librewolf-config.patch
|
||||
patch -p1 -i ../patches/permissive/librewolf-policies.patch
|
||||
popd
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg-permissive.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg-permissive.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
# (create a .deb here)
|
||||
fi
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function artifacts_rpm_details(){
|
||||
exe=
|
||||
objdir=obj-x86_64-pc-linux-gnu/dist/firefox
|
||||
ospkg=rpm
|
||||
|
||||
# sanity checks
|
||||
if [ ! -d $objdir ]; then
|
||||
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
rm -rf ../firefox ../librewolf
|
||||
cp -r $objdir ..
|
||||
|
||||
pushd ..
|
||||
|
||||
mv firefox librewolf
|
||||
# apply the LibreWolf settings
|
||||
cp -rv settings/* librewolf
|
||||
# rename the executable manually
|
||||
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||
# clean garbage files
|
||||
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files ; cd ..
|
||||
|
||||
# linux: copy app icon stuff
|
||||
cp files/register-librewolf files/start-librewolf files/start-librewolf.desktop.in librewolf
|
||||
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
# (create a .deb here)
|
||||
|
||||
# patch to permissive config
|
||||
if [ ! -z $permissive ]; then
|
||||
pushd librewolf
|
||||
echo "Applying permissive patches..."
|
||||
cp -v ../settings/librewolf.cfg . && cp -v ../settings/distribution/policies.json distribution
|
||||
patch -p1 -i ../patches/permissive/librewolf-config.patch
|
||||
patch -p1 -i ../patches/permissive/librewolf-policies.patch
|
||||
popd
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg-permissive.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg-permissive.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
# (create a .deb here)
|
||||
fi
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
122
artifacts_win.nsi
Normal file
122
artifacts_win.nsi
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
#
|
||||
# Change these values to fit your application...
|
||||
#
|
||||
|
||||
!define APPNAME "LibreWolf" # Full app name, like: "Gtk+ 2.0 Hello World"
|
||||
!define PROGNAME "librewolf" # executable name, like: gtk2hello
|
||||
!define PROG_VERSION "pkg_version" # the program version, like: 0.3.0
|
||||
!define ICON_NAME "librewolf.ico" # filename of icon to use for this app
|
||||
!define COMPANYNAME "LibreWolf" # Your name, or company (or just the program name)
|
||||
!define ESTIMATED_SIZE 190000 # Estimated size (in KB) of installed program for use in "add or remove programs" / 190 MB
|
||||
|
||||
#
|
||||
# The actual installer/uninstaller, you should not need to change much here below
|
||||
#
|
||||
|
||||
Name "${PROGNAME}"
|
||||
OutFile "${PROGNAME}-${PROG_VERSION}.en-US.win64-setup.exe"
|
||||
InstallDir $PROGRAMFILES64\${APPNAME}
|
||||
RequestExecutionLevel admin
|
||||
|
||||
Page directory
|
||||
Page instfiles
|
||||
|
||||
function .onInit
|
||||
setShellVarContext all
|
||||
functionEnd
|
||||
|
||||
Section "${PROGNAME}"
|
||||
|
||||
# Copy files
|
||||
SetOutPath $INSTDIR
|
||||
File /r librewolf\*.*
|
||||
|
||||
# Start Menu
|
||||
createDirectory "$SMPROGRAMS\${COMPANYNAME}"
|
||||
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\${PROGNAME}.exe" "" "$INSTDIR\${ICON_NAME}"
|
||||
createShortCut "$SMPROGRAMS\${COMPANYNAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" ""
|
||||
|
||||
# Uninstaller
|
||||
writeUninstaller "$INSTDIR\uninstall.exe"
|
||||
|
||||
# Registry information for add/remove programs
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${APPNAME}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\${ICON_NAME}$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "${COMPANYNAME}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "${PROG_VERSION}"
|
||||
# There is no option for modifying or repairing the install
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1
|
||||
# Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${ESTIMATED_SIZE}
|
||||
|
||||
|
||||
#
|
||||
# Registry information to let Windows pick us up in the list of available browsers
|
||||
#
|
||||
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf" "" "LibreWolf"
|
||||
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities" "ApplicationDescription" "LibreWolf"
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities" "ApplicationIcon" "$INSTDIR\librewolf.exe,0"
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities" "ApplicationName" "LibreWolf"
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities\FileAssociations" ".htm" "LibreWolfHTM"
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities\FileAssociations" ".html" "LibreWolfHTM"
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities\Startmenu" "StartMenuInternet" "LibreWolf"
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities\URLAssociations" "http" "LibreWolfHTM"
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities\URLAssociations" "https" "LibreWolfHTM"
|
||||
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\DefaultIcon" "" "$INSTDIR\librewolf.exe,0"
|
||||
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\shell\open\command" "" "$INSTDIR\librewolf.exe"
|
||||
|
||||
WriteRegStr HKLM "Software\RegisteredApplications" "LibreWolf" "Software\Clients\StartMenuInternet\LibreWolf\Capabilities"
|
||||
|
||||
WriteRegStr HKLM "Software\Classes\LibreWolfHTM" "" "LibreWolf Handler"
|
||||
WriteRegStr HKLM "Software\Classes\LibreWolfHTM" "AppUserModelId" "LibreWolf"
|
||||
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\Application" "AppUserModelId" "LibreWolf"
|
||||
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\Application" "ApplicationIcon" "$INSTDIR\librewolf.exe,0"
|
||||
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\Application" "ApplicationName" "LibreWolf"
|
||||
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\Application" "ApplicationDescription" "Howling to Freedom"
|
||||
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\Application" "ApplicationCompany" "LibreWolf"
|
||||
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\DefaultIcon" "" "$INSTDIR\librewolf.exe,0"
|
||||
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\shell\open\command" "" "$INSTDIR\librewolf.exe %1"
|
||||
|
||||
SectionEnd
|
||||
|
||||
# Before uninstall, ask for confirmation
|
||||
function un.onInit
|
||||
SetShellVarContext all
|
||||
|
||||
#Verify the uninstaller - last chance to back out
|
||||
MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next
|
||||
Abort
|
||||
next:
|
||||
functionEnd
|
||||
|
||||
# Uninstaller
|
||||
section "uninstall"
|
||||
|
||||
# Remove Start Menu launcher
|
||||
delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
|
||||
delete "$SMPROGRAMS\${COMPANYNAME}\Uninstall.lnk"
|
||||
# Try to remove the Start Menu folder - this will only happen if it is empty
|
||||
rmDir "$SMPROGRAMS\${COMPANYNAME}"
|
||||
|
||||
# Remove files
|
||||
rmDir /r $INSTDIR
|
||||
|
||||
# Remove uninstaller information from the registry
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
|
||||
|
||||
#
|
||||
# Windows default browser integration
|
||||
#
|
||||
|
||||
DeleteRegKey HKLM "Software\Clients\StartMenuInternet\LibreWolf"
|
||||
DeleteRegKey HKLM "Software\RegisteredApplications"
|
||||
DeleteRegKey HKLM "Software\Classes\LibreWolfHTM"
|
||||
|
||||
sectionEnd
|
||||
76
build.readme.md
Normal file
76
build.readme.md
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
Use: ./build.sh clean | all | [other stuff...]
|
||||
|
||||
fetch - fetch the tarball.
|
||||
extract - extract the tarball.
|
||||
do_patches - create a mozconfig, and patch the source.
|
||||
build - the actual build.
|
||||
|
||||
artifacts_win - apply .cfg, build the zip file and NSIS setup.exe installer.
|
||||
artifacts_perm - package as above, but use the permissive config/policies.
|
||||
|
||||
# Linux related functions:
|
||||
|
||||
deps_deb - install dependencies with apt.
|
||||
deps_rpm - install dependencies with dnf.
|
||||
deps_pkg - install dependencies with pkg. (freebsd)
|
||||
deps_mac - install dependencies with brew. (macOS)
|
||||
|
||||
artifacts_deb - apply .cfg, create a dist zip file (for debian10).
|
||||
artifacts_deb_perm - include permissive build.
|
||||
artifacts_rpm - apply .cfg, create a dist zip file (for fedora33).
|
||||
artifacts_rpm_perm - include permissive build.
|
||||
|
||||
# Generic utility functionality:
|
||||
|
||||
all - build all, produce all artifacts including -permissive.
|
||||
clean - remove generated cruft.
|
||||
|
||||
mach_env - create mach build environment.
|
||||
rustup - perform a rustup for this user.
|
||||
git_subs - update git submodules.
|
||||
config_diff - diff between my .cfg and dist .cfg file. (win10)
|
||||
policies_diff - diff between my policies and the dist policies. (win10)
|
||||
git_init - create .git folder in firefox-87.0 for creating patches.
|
||||
mach_run_config - copy librewolf config/policies to enable 'mach run'.
|
||||
|
||||
# Cross-compile from linux:
|
||||
|
||||
linux_patches - the 'do_patches' for linux->win crosscompile.
|
||||
linux_artifacts - standard artifact zip file. perhaps a -setup.exe.
|
||||
setup_deb_root - setup compile environment (root stuff)
|
||||
setup_deb_user - setup compile environmnet (build user)
|
||||
setup_rpm_root - setup compile environment (root stuff)
|
||||
setup_rpm_user - setup compile environmnet (build user)
|
||||
|
||||
# Nightly:
|
||||
|
||||
init_mozilla_unified - use bootstrap.py to grab the latest mozilla-unified.
|
||||
set_mozilla_unified - use mozilla-unified instead of firefox-87.0 source.
|
||||
reset_mozilla_unified - clean mozilla-unified and pull latest git changes.
|
||||
|
||||
Documentation is in the build-howto.md. In a docker situation, we'd like
|
||||
to run something like:
|
||||
|
||||
./build.sh fetch extract linux_patches build linux_artifacts
|
||||
|
||||
# Installation from linux zip file:
|
||||
|
||||
Copy the zip file in your $HOME folder, then:
|
||||
|
||||
unzip librewolf-*.zip
|
||||
cd librewolf
|
||||
./register-librewolf
|
||||
|
||||
That should give an app icon. You can have it elsewhere and it will work.
|
||||
|
||||
# Examples:
|
||||
|
||||
For windows, use:
|
||||
./build.sh fetch extract do_patches build artifacts_win
|
||||
./build.sh all
|
||||
|
||||
For debian, use:
|
||||
sudo ./build.sh deps_deb
|
||||
./build.sh rustup mach_env
|
||||
./build.sh fetch extract do_patches build artifacts_deb
|
||||
|
||||
663
build.sh
Executable file
663
build.sh
Executable file
|
|
@ -0,0 +1,663 @@
|
|||
#!/bin/bash
|
||||
# build.sh - build librewolf on windows
|
||||
# derived from https://gitlab.com/librewolf-community/browser/linux/-/blob/master/PKGBUILD
|
||||
#
|
||||
# This script is set up like a Makefile, it's a list of functions that perform a
|
||||
# certain sub-task, that function can be called as a commandline argument to the script.
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
. ./version.sh
|
||||
|
||||
srcdir=firefox-$pkgver
|
||||
|
||||
#
|
||||
# Basic functionality
|
||||
#
|
||||
|
||||
fetch() {
|
||||
echo "fetch: begin."
|
||||
|
||||
# fetch the firefox source.
|
||||
rm -f firefox-$pkgver.source.tar.xz
|
||||
echo "Downloading firefox-$pkgver.source.tar.xz ..."
|
||||
wget -q https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
if [ ! -f firefox-$pkgver.source.tar.xz ]; then exit 1; fi
|
||||
|
||||
echo "fetch: done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
extract() {
|
||||
echo "extract: begin."
|
||||
|
||||
echo "Deleting previous firefox-$pkgver ..."
|
||||
rm -rf firefox-$pkgver
|
||||
|
||||
echo "Extracting firefox-$pkgver.source.tar.xz ..."
|
||||
tar xf firefox-$pkgver.source.tar.xz
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
if [ ! -d firefox-$pkgver ]; then exit 1; fi
|
||||
|
||||
echo "extract: done."
|
||||
}
|
||||
|
||||
. ./mozconfigs.sh
|
||||
|
||||
do_patches() {
|
||||
echo "do_patches: begin. (srcdir=$srcdir)"
|
||||
|
||||
if [ "$srcdir" == "tor-browser" ]; then
|
||||
echo "do_patches: warning: not running do_patches on tor-browser. done."
|
||||
return
|
||||
fi
|
||||
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
echo 'Creating mozconfig...'
|
||||
|
||||
if [ "$mozconfig_mode" == "xcompile" ]; then
|
||||
create_mozconfig_xcompile
|
||||
cp -v ../mozconfig .
|
||||
elif [ "$strict" == "strict" ]; then
|
||||
create_mozconfig_strict
|
||||
cp -v ../mozconfig .
|
||||
else
|
||||
create_mozconfig_default
|
||||
cp -v ../mozconfig .
|
||||
fi
|
||||
|
||||
|
||||
echo 'Copy librewolf branding files...'
|
||||
|
||||
cp -vr ../common/source_files/* ./
|
||||
# new branding stuff
|
||||
cp -v ../files/configure.sh browser/branding/librewolf
|
||||
|
||||
echo 'Applying patches...'
|
||||
|
||||
patch -p1 -i ../linux/mozilla-vpn-ad.patch
|
||||
|
||||
if [ "$srcdir" == "mozilla-unified" ]; then
|
||||
echo "../patches/nightly/context-menu2.patch"
|
||||
patch -p1 -i ../patches/nightly/context-menu2.patch
|
||||
echo "../patches/nightly/report-site-issue.patch"
|
||||
patch -p1 -i ../patches/nightly/report-site-issue.patch
|
||||
echo "../patches/nightly/megabar3.patch"
|
||||
patch -p1 -i ../patches/nightly/megabar3.patch
|
||||
else
|
||||
echo "../linux/context-menu.patch"
|
||||
patch -p1 -i ../linux/context-menu.patch
|
||||
echo "../linux/remove_addons.patch"
|
||||
patch -p1 -i ../linux/remove_addons.patch
|
||||
echo "../linux/megabar.patch"
|
||||
patch -p1 -i ../linux/megabar.patch
|
||||
fi
|
||||
|
||||
echo 'GNU sed patches...'
|
||||
|
||||
echo "../patches/sed-patches/allow-searchengines-non-esr.patch"
|
||||
patch -p1 -i ../patches/sed-patches/allow-searchengines-non-esr.patch
|
||||
echo "../patches/sed-patches/disable-pocket.patch"
|
||||
patch -p1 -i ../patches/sed-patches/disable-pocket.patch
|
||||
echo "../patches/sed-patches/remove-internal-plugin-certs.patch"
|
||||
patch -p1 -i ../patches/sed-patches/remove-internal-plugin-certs.patch
|
||||
echo "../patches/sed-patches/stop-undesired-requests.patch"
|
||||
patch -p1 -i ../patches/sed-patches/stop-undesired-requests.patch
|
||||
|
||||
echo 'Local patches...'
|
||||
|
||||
# local win10 patches
|
||||
echo "../patches/browser-confvars.patch"
|
||||
patch -p1 -i ../patches/browser-confvars.patch # not sure about this one yet!
|
||||
|
||||
if [ "$strict" == "strict" ]; then
|
||||
echo 'strict patches...'
|
||||
fi
|
||||
|
||||
cd ..
|
||||
echo "do_patches: done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
build() {
|
||||
echo "build: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
./mach build
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
cd ..
|
||||
echo "build: done."
|
||||
}
|
||||
|
||||
|
||||
. ./artifacts_all.sh
|
||||
|
||||
artifacts_win() {
|
||||
echo "artifacts_win: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
./mach package
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
echo ""
|
||||
echo "artifacts_win: Creating final artifacts."
|
||||
echo ""
|
||||
|
||||
artifacts_win_details
|
||||
|
||||
cd ..
|
||||
echo "artifacts_win: done."
|
||||
}
|
||||
|
||||
artifacts_deb()
|
||||
{
|
||||
echo "artifacts_deb: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
./mach package
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
echo ""
|
||||
echo "artifacts_deb: Creating final artifacts."
|
||||
echo ""
|
||||
|
||||
artifacts_deb_details
|
||||
|
||||
cd ..
|
||||
echo "artifacts_deb: done."
|
||||
}
|
||||
|
||||
|
||||
artifacts_rpm()
|
||||
{
|
||||
echo "artifacts_rpm: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
./mach package
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
echo ""
|
||||
echo "artifacts_rpm: Creating final artifacts."
|
||||
echo ""
|
||||
|
||||
artifacts_rpm_details
|
||||
|
||||
cd ..
|
||||
echo "artifacts_rpm: done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Dependencies for linux/freebsd.
|
||||
deps_deb() {
|
||||
echo "deps_deb: begin."
|
||||
deps1="python python-dev python3 python3-dev python3-distutils clang pkg-config libpulse-dev gcc"
|
||||
deps2="curl wget nodejs libpango1.0-dev nasm yasm zip m4 libgtk-3-dev libgtk2.0-dev libdbus-glib-1-dev"
|
||||
deps3="libxt-dev python3-pip mercurial automake autoconf libtool m4"
|
||||
apt install -y $deps1
|
||||
apt install -y $deps2
|
||||
apt install -y $deps3
|
||||
echo "deps_deb: done."
|
||||
}
|
||||
|
||||
deps_rpm() {
|
||||
echo "deps_rpm: begin."
|
||||
deps="python3 python3-distutils-extra clang pkg-config gcc curl wget nodejs nasm yasm zip m4 python3-zstandard python-zstandard python-devel python3-devel gtk3-devel llvm gtk2-devel dbus-glib-devel libXt-devel pulseaudio-libs-devel"
|
||||
dnf -y install $deps
|
||||
echo "deps_rpm: done."
|
||||
}
|
||||
|
||||
deps_pkg() {
|
||||
echo "deps_pkg: begin."
|
||||
deps="wget gmake m4 python3 py37-sqlite3 pkgconf llvm node nasm zip unzip yasm"
|
||||
pkg install $deps
|
||||
echo "deps_pkg: done."
|
||||
}
|
||||
|
||||
# these utilities should work everywhere
|
||||
clean() {
|
||||
echo "clean: begin."
|
||||
|
||||
echo "Deleting firefox-${pkgver} ..."
|
||||
rm -rf firefox-$pkgver
|
||||
|
||||
echo "Deleting other cruft ..."
|
||||
rm -rf librewolf
|
||||
rm -f firefox-$pkgver.source.tar.xz
|
||||
rm -f mozconfig
|
||||
rm -f bootstrap.py
|
||||
|
||||
# windows
|
||||
rm -f librewolf-$pkgver.en-US.win64.zip
|
||||
rm -f librewolf-$pkgver.en-US.win64-setup.exe
|
||||
rm -f librewolf-$pkgver.en-US.win64-permissive.zip
|
||||
rm -f librewolf-$pkgver.en-US.win64-permissive-setup.exe
|
||||
rm -f librewolf-$pkgver.en-US.win64-strict.zip
|
||||
rm -f librewolf-$pkgver.en-US.win64-strict-setup.exe
|
||||
rm -f tmp.nsi tmp-permissive.nsi tmp-strict.nsi
|
||||
|
||||
# linux
|
||||
rm -f librewolf-$pkgver.en-US.deb.zip
|
||||
rm -f librewolf-$pkgver.en-US.deb-permissive.zip
|
||||
rm -f librewolf-$pkgver.en-US.deb-strict.zip
|
||||
rm -f librewolf-$pkgver.en-US.rpm.zip
|
||||
rm -f librewolf-$pkgver.en-US.rpm-permissive.zip
|
||||
rm -f librewolf-$pkgver.en-US.rpm-strict.zip
|
||||
|
||||
echo "clean: done."
|
||||
}
|
||||
|
||||
|
||||
rustup() {
|
||||
# rust needs special love: https://www.atechtown.com/install-rust-language-on-debian-10/
|
||||
echo "rustup: begin."
|
||||
curl https://sh.rustup.rs -sSf | sh
|
||||
. "$HOME/.cargo/env"
|
||||
cargo install cbindgen
|
||||
echo "rustup: done."
|
||||
}
|
||||
|
||||
mach_env() {
|
||||
echo "mach_env: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
./mach create-mach-environment
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
cd ..
|
||||
echo "mach_env: done."
|
||||
}
|
||||
|
||||
git_subs() {
|
||||
echo "git_subs: begin."
|
||||
git submodule update --recursive
|
||||
git submodule foreach git pull origin master
|
||||
git submodule foreach git merge origin master
|
||||
echo "git_subs: done."
|
||||
}
|
||||
|
||||
git_init() {
|
||||
echo "git_init: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
echo "Removing old .git folder..."
|
||||
rm -rf .git
|
||||
|
||||
echo "Creating new .git folder..."
|
||||
git init
|
||||
git config core.safecrlf false
|
||||
git config commit.gpgsign false
|
||||
git add -f * .[a-z]*
|
||||
git commit -am 'Initial commit'
|
||||
|
||||
cd ..
|
||||
echo "git_init: done."
|
||||
}
|
||||
|
||||
|
||||
# Permissive/strict configuration options (win10 only at the moment)
|
||||
# this stuff should probably go away..
|
||||
|
||||
perm_config_diff() {
|
||||
pushd settings > /dev/null
|
||||
cp "/c/Program Files/LibreWolf/librewolf.cfg" librewolf.cfg
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
git diff librewolf.cfg > ../patches/permissive/librewolf-config.patch
|
||||
git diff librewolf.cfg
|
||||
git checkout librewolf.cfg > /dev/null 2>&1
|
||||
popd > /dev/null
|
||||
}
|
||||
|
||||
perm_policies_diff() {
|
||||
pushd settings/distribution > /dev/null
|
||||
cp "/c/Program Files/LibreWolf/distribution/policies.json" policies.json
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
git diff policies.json > ../../patches/permissive/librewolf-policies.patch
|
||||
git diff policies.json
|
||||
git checkout policies.json > /dev/null 2>&1
|
||||
popd > /dev/null
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Nightly builds, alternative builds.
|
||||
#
|
||||
|
||||
init_mozilla_unified() {
|
||||
rm -f bootstrap.py
|
||||
wget -q https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py
|
||||
python3 bootstrap.py
|
||||
}
|
||||
set_mozilla_unified() {
|
||||
srcdir=mozilla-unified
|
||||
}
|
||||
reset_mozilla_unified() {
|
||||
echo "reset_mozilla_unified: begin."
|
||||
if [ ! -d mozilla-unified ]; then
|
||||
echo "Error: mozilla-unified folder not found. use init_mozilla_unified() to create one"
|
||||
exit 1;
|
||||
fi
|
||||
cd mozilla-unified
|
||||
|
||||
echo "Resetting mozilla-unified..."
|
||||
hg up -C
|
||||
hg purge
|
||||
echo "Mercurial pull..."
|
||||
hg pull -u
|
||||
|
||||
cd ..
|
||||
echo "reset_mozilla_unified: done."
|
||||
}
|
||||
|
||||
# tor-browser.. (experimental)
|
||||
init_tor_browser() {
|
||||
git clone --no-checkout https://git.torproject.org/tor-browser.git
|
||||
|
||||
cd tor-browser
|
||||
git checkout tor-browser-78.8.0esr-10.0-1
|
||||
git submodule update --recursive
|
||||
patch -p1 -i ../patches/tb-mozconfig-win10.patch
|
||||
cd ..
|
||||
}
|
||||
set_tor_browser() {
|
||||
srcdir=tor-browser
|
||||
}
|
||||
reset_tor_browser() {
|
||||
echo "reset_tor_browser: begin."
|
||||
if [ ! -d tor-browser ]; then
|
||||
echo "Error: tor-browser folder not found. use init_tor_browser() to create one"
|
||||
exit 1;
|
||||
fi
|
||||
cd tor-browser
|
||||
|
||||
echo "Resetting tor-browser..."
|
||||
git reset --hard
|
||||
|
||||
cd ..
|
||||
echo "reset_tor_browser: done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
# cross-compile actions...
|
||||
#
|
||||
# linux_patches - the 'do_patches' for linux->win crosscompile.
|
||||
# linux_artifacts - standard artifact zip file. perhaps a -setup.exe.
|
||||
# setup_deb_root - setup compile environment (root stuff)
|
||||
# setup_deb_user - setup compile environmnet (build user)
|
||||
# setup_rpm_root - setup compile environment (root stuff)
|
||||
# setup_rpm_user - setup compile environmnet (build user)
|
||||
|
||||
. ./linux_xcompile.sh
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# process commandline arguments and do something
|
||||
#
|
||||
|
||||
done_something=0
|
||||
|
||||
|
||||
if [[ "$*" == *linux_patches* ]]; then
|
||||
linux_patches
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *linux_artifacts* ]]; then
|
||||
linux_artifacts
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *setup_deb_root* ]]; then
|
||||
setup_deb_root
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *setup_deb_user* ]]; then
|
||||
setup_deb_user
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *setup_rpm_root* ]]; then
|
||||
setup_rpm_root
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *setup_rpm_user* ]]; then
|
||||
setup_rpm_user
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# various administrative actions...
|
||||
|
||||
if [[ "$*" == *init_mozilla_unified* ]]; then
|
||||
init_mozilla_unified
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *set_mozilla_unified* ]]; then
|
||||
set_mozilla_unified
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *reset_mozilla_unified* ]]; then
|
||||
reset_mozilla_unified
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *init_tor_browser* ]]; then
|
||||
init_tor_browser
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *set_tor_browser* ]]; then
|
||||
set_tor_browser
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *reset_tor_browser* ]]; then
|
||||
reset_tor_browser
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
# permissive & strict modes.
|
||||
if [[ "$*" == *set_perm* ]]; then
|
||||
permissive=permissive
|
||||
fi
|
||||
if [[ "$*" == *set_permissive* ]]; then
|
||||
permissive=permissive
|
||||
fi
|
||||
if [[ "$*" == *set_strict* ]]; then
|
||||
strict=strict
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
if [[ "$*" == *clean* ]]; then
|
||||
clean
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *all* ]]; then
|
||||
fetch
|
||||
extract
|
||||
do_patches
|
||||
build
|
||||
artifacts_win
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [[ "$*" == *git_subs* ]]; then
|
||||
git_subs
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *rustup* ]]; then
|
||||
rustup
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *mach_env* ]]; then
|
||||
mach_env
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
# dependencies on various platforms...
|
||||
|
||||
if [[ "$*" == *deps_deb* ]]; then
|
||||
deps_deb
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *deps_rpm* ]]; then
|
||||
deps_rpm
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *deps_pkg* ]]; then
|
||||
deps_pkg
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
# main building actions...
|
||||
|
||||
if [[ "$*" == *fetch* ]]; then
|
||||
fetch
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *extract* ]]; then
|
||||
extract
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *do_patches* ]]; then
|
||||
do_patches
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *git_init* ]]; then
|
||||
git_init
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *build* ]]; then
|
||||
build
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
# creating the artifacts...
|
||||
|
||||
if [[ "$*" == *artifacts_win* ]]; then
|
||||
artifacts_win
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *artifacts_deb* ]]; then
|
||||
artifacts_deb
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *artifacts_rpm* ]]; then
|
||||
artifacts_rpm
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
# librewolf.cfg and policies.json differences
|
||||
|
||||
if [[ "$*" == *perm_config_diff* ]]; then
|
||||
perm_config_diff
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *perm_policies_diff* ]]; then
|
||||
perm_policies_diff
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
|
||||
# by default, give help..
|
||||
if (( done_something == 0 )); then
|
||||
cat << EOF
|
||||
Use: ./build.sh clean | all | [other stuff...]
|
||||
|
||||
fetch - fetch the tarball.
|
||||
extract - extract the tarball.
|
||||
do_patches - create a mozconfig, and patch the source.
|
||||
build - the actual build.
|
||||
|
||||
artifacts_win - apply .cfg, build the zip file and NSIS setup.exe installer.
|
||||
|
||||
# Basic functionality:
|
||||
|
||||
all - build all (fetch extract do_patches build artifacts_win)
|
||||
clean - remove generated cruft.
|
||||
|
||||
# Linux related functions:
|
||||
|
||||
deps_deb - install dependencies with apt.
|
||||
deps_rpm - install dependencies with dnf.
|
||||
deps_pkg - install dependencies with pkg. (experimental)
|
||||
|
||||
artifacts_deb - apply .cfg, create a dist zip file (for debian10).
|
||||
artifacts_rpm - apply .cfg, create a dist zip file (for fedora33).
|
||||
|
||||
# Generic utility functionality:
|
||||
|
||||
mach_env - create mach build environment.
|
||||
rustup - perform a rustup for this user.
|
||||
git_subs - update git submodules.
|
||||
git_init - create .git folder in firefox-87.0 for creating patches.
|
||||
|
||||
# Strict/permissive config:
|
||||
|
||||
set_perm - produce permissive artifacts.
|
||||
set_strict - produce strict mode build/artifacts
|
||||
|
||||
perm_config_diff - diff between -release and -permissive config
|
||||
perm_policies_diff - diff between -release and -permissive policies.json
|
||||
|
||||
The *_diff commands are dangerous (change repo files), win10 specific, and
|
||||
just for internal use. You can use './build set_perm all' to build permissve
|
||||
and './build set_strict all' for -strict. This functionality exists because
|
||||
we're constantly balancing settings between usability and security.
|
||||
|
||||
# Cross-compile from linux: (in development)
|
||||
|
||||
linux_patches - the 'do_patches' for linux->win crosscompile.
|
||||
linux_artifacts - standard artifact zip file. perhaps a -setup.exe.
|
||||
setup_deb_root - setup compile environment (root stuff)
|
||||
setup_deb_user - setup compile environmnet (build user)
|
||||
setup_rpm_root - setup compile environment (root stuff)
|
||||
setup_rpm_user - setup compile environmnet (build user)
|
||||
|
||||
# Nightly etc.:
|
||||
|
||||
init_mozilla_unified - use bootstrap.py to grab the latest mozilla-unified.
|
||||
set_mozilla_unified - use mozilla-unified instead of firefox-87.0 source.
|
||||
reset_mozilla_unified - clean mozilla-unified and pull latest git changes.
|
||||
|
||||
You can use init_tor_browser, set_tor_browser as above, but it attempts a Tor
|
||||
Browser build instead (esr releases). (experimental) or use set_strict to get
|
||||
a more restricted version (experimental).
|
||||
|
||||
# Installation from linux zip file:
|
||||
|
||||
Copy the zip file in your $HOME folder, then:
|
||||
|
||||
unzip librewolf-*.zip
|
||||
cd librewolf
|
||||
./register-librewolf
|
||||
|
||||
That should give an app icon. You can unzip it elsewhere and it will work.
|
||||
|
||||
# Examples:
|
||||
|
||||
For windows, use:
|
||||
./build.sh fetch extract do_patches build artifacts_win
|
||||
./build.sh all
|
||||
|
||||
For debian, use:
|
||||
sudo ./build.sh deps_deb
|
||||
./build.sh rustup mach_env
|
||||
./build.sh fetch extract do_patches build artifacts_deb
|
||||
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
1
common
Submodule
1
common
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 9120ca6c6709673b0188a081ec6383c4db75d169
|
||||
16
files/configure.sh
Normal file
16
files/configure.sh
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
MOZ_APP_NAME=librewolf
|
||||
MOZ_APP_BASENAME=LibreWolf
|
||||
MOZ_APP_PROFILE=LibreWolf
|
||||
MOZ_APP_VENDOR="LibreWolf Community"
|
||||
MOZ_APP_DISPLAYNAME=LibreWolf
|
||||
MOZ_APP_REMOTINGNAME=librewolf
|
||||
MOZ_DEV_EDITION=1
|
||||
MOZ_TELEMETRY_REPORTING=
|
||||
MOZ_SERVICES_HEALTHREPORT=
|
||||
MOZ_NORMANDY=
|
||||
MOZ_REQUIRE_SIGNING=
|
||||
MOZ_DEFAULT_BROWSER_AGENT=0
|
||||
7
files/register-librewolf
Executable file
7
files/register-librewolf
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
sed "s,MYDIR,$(pwd),g" < start-librewolf.desktop.in > start-librewolf.desktop
|
||||
|
||||
mkdir -p "$HOME/.local/share/applications/"
|
||||
cp -v ./start-librewolf.desktop "$HOME/.local/share/applications/"
|
||||
update-desktop-database "$HOME/.local/share/applications/"
|
||||
22
files/start-librewolf
Executable file
22
files/start-librewolf
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Do not (try to) connect to the session manager
|
||||
unset SESSION_MANAGER
|
||||
|
||||
# If XAUTHORITY is unset, set it to its default value of $HOME/.Xauthority
|
||||
# before we change HOME below. (See xauth(1) and #1945.) XDM and KDM rely
|
||||
# on applications using this default value.
|
||||
if [ -z "$XAUTHORITY" ]; then
|
||||
XAUTHORITY=~/.Xauthority
|
||||
export XAUTHORITY
|
||||
fi
|
||||
|
||||
# Try to be agnostic to where we're being started from, chdir to where
|
||||
# the script is.
|
||||
mydir="`dirname "$0"`"
|
||||
test -d "$mydir" && cd "$mydir"
|
||||
|
||||
#./librewolf --class "LibreWolf" -profile TorBrowser/Data/Browser/profile.default "${@}" > "$logfile" 2>&1 </dev/null &
|
||||
./librewolf --detach --class "LibreWolf" > /dev/null 2>&1 </dev/null &
|
||||
|
||||
exit $?
|
||||
10
files/start-librewolf.desktop.in
Normal file
10
files/start-librewolf.desktop.in
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=LibreWolf
|
||||
GenericName=Web Browser
|
||||
Comment=LibreWolf Browser
|
||||
Categories=Network;WebBrowser;Security;
|
||||
Exec=MYDIR/./start-librewolf
|
||||
X-TorBrowser-ExecShell=MYDIR/./start-librewolf
|
||||
Icon=MYDIR/./browser/chrome/icons/default/default64.png
|
||||
StartupWMClass=LibreWolf
|
||||
1
linux
Submodule
1
linux
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 95feca84f5c83a27418cf4822a83537606a21a53
|
||||
144
linux_xcompile.sh
Normal file
144
linux_xcompile.sh
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
# Crosscompile on linux (debian,fedora)
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Creating the crosscompile environment on linux
|
||||
#
|
||||
|
||||
|
||||
|
||||
setup_deb_root() {
|
||||
echo "setup_deb_root: begin."
|
||||
|
||||
# (implementation...)
|
||||
|
||||
echo "setup_deb_root: done."
|
||||
}
|
||||
setup_deb_user() {
|
||||
echo "setup_deb_user: begin."
|
||||
|
||||
# (implementation...)
|
||||
|
||||
echo "setup_deb_user: done."
|
||||
}
|
||||
setup_rpm_root() {
|
||||
echo "setup_rpm_root: begin."
|
||||
|
||||
# (implementation...)
|
||||
|
||||
echo "setup_rpm_root: done."
|
||||
}
|
||||
setup_rpm_user() {
|
||||
echo "setup_rpm_user: begin."
|
||||
|
||||
# (implementation...)
|
||||
|
||||
echo "setup_rpm_user: done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# linux_patches() and linux_artifacts()
|
||||
#
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
linux_patches() {
|
||||
mozconfig_mode=xcompile
|
||||
do_patches
|
||||
}
|
||||
|
||||
|
||||
|
||||
linux_artifacts_details() {
|
||||
exe=.exe
|
||||
objdir=obj-x86_64-pc-mingw32/dist/firefox
|
||||
ospkg=win64
|
||||
|
||||
# sanity checks
|
||||
if [ ! -d $objdir ]; then
|
||||
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
rm -rf ../firefox ../librewolf
|
||||
cp -r $objdir ..
|
||||
|
||||
pushd ..
|
||||
|
||||
mv firefox librewolf
|
||||
# apply the LibreWolf settings
|
||||
cp -rv settings/* librewolf
|
||||
# rename the executable manually
|
||||
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||
# clean garbage files
|
||||
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files ; cd ..
|
||||
|
||||
# windows: copy the windows icon
|
||||
cp -v common/source_files/browser/branding/librewolf/firefox.ico librewolf/librewolf.ico
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
rm -f librewolf-$pkgver.en-US.win64-setup.exe tmp.nsi
|
||||
sed "s/pkg_version/$pkgver/g" < artifacts_win.nsi > tmp.nsi
|
||||
makensis-3.01.exe -V1 tmp.nsi
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# patch to permissive config
|
||||
if [ ! -z $permissive ]; then
|
||||
pushd librewolf
|
||||
echo "Applying permissive patches..."
|
||||
patch -p1 -i ../patches/permissive/librewolf-config.patch
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
patch -p1 -i ../patches/permissive/librewolf-policies.patch
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
popd
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg-permissive.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg-permissive.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
rm -f librewolf-$pkgver.en-US.win64-permissive-setup.exe tmp-permissive.nsi
|
||||
sed "s/win64-setup/win64-permissive-setup/g" < tmp.nsi > tmp-permissive.nsi
|
||||
makensis-3.01.exe -V1 tmp-permissive.nsi
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
fi
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
linux_artifacts() {
|
||||
echo "linux_artifacts: begin."
|
||||
|
||||
if [ ! -d firefox-$pkgver ]; then exit 1; fi
|
||||
cd firefox-$pkgver
|
||||
|
||||
./mach package
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
echo ""
|
||||
echo "artifacts_win: Creating final artifacts."
|
||||
echo ""
|
||||
|
||||
linux_artifacts_details
|
||||
|
||||
cd ..
|
||||
|
||||
echo "linux_artifacts: done."
|
||||
}
|
||||
122
mozconfigs.sh
Normal file
122
mozconfigs.sh
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
create_mozconfig_default() {
|
||||
cat >../mozconfig <<END
|
||||
ac_add_options --enable-application=browser
|
||||
|
||||
# This supposedly speeds up compilation (We test through dogfooding anyway)
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-debug
|
||||
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-hardening
|
||||
ac_add_options --enable-rust-simd
|
||||
ac_add_options --enable-optimize
|
||||
|
||||
|
||||
# Branding
|
||||
ac_add_options --enable-update-channel=release
|
||||
# theming bugs: ac_add_options --with-app-name=librewolf
|
||||
# theming bugs: ac_add_options --with-app-basename=LibreWolf
|
||||
ac_add_options --with-branding=browser/branding/librewolf
|
||||
ac_add_options --with-distribution-id=io.gitlab.librewolf-community
|
||||
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||
ac_add_options --allow-addon-sideload
|
||||
export MOZ_REQUIRE_SIGNING=0
|
||||
|
||||
# Features
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
|
||||
# Disables crash reporting, telemetry and other data gathering tools
|
||||
mk_add_options MOZ_CRASHREPORTER=0
|
||||
mk_add_options MOZ_DATA_REPORTING=0
|
||||
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
||||
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
||||
|
||||
# first attempt to fix the win32 vcredist issue results in build errors..
|
||||
#WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT
|
||||
END
|
||||
}
|
||||
|
||||
create_mozconfig_xcompile() {
|
||||
cat >../mozconfig <<END
|
||||
# Crosscompile to windows..
|
||||
|
||||
ac_add_options --enable-application=browser
|
||||
|
||||
# This supposedly speeds up compilation (We test through dogfooding anyway)
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-debug
|
||||
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-hardening
|
||||
ac_add_options --enable-rust-simd
|
||||
ac_add_options --enable-optimize
|
||||
|
||||
|
||||
# Branding
|
||||
ac_add_options --enable-update-channel=release
|
||||
# theming bugs: ac_add_options --with-app-name=librewolf
|
||||
# theming bugs: ac_add_options --with-app-basename=LibreWolf
|
||||
ac_add_options --with-branding=browser/branding/librewolf
|
||||
ac_add_options --with-distribution-id=io.gitlab.librewolf-community
|
||||
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||
ac_add_options --allow-addon-sideload
|
||||
export MOZ_REQUIRE_SIGNING=0
|
||||
|
||||
# Features
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
|
||||
# Disables crash reporting, telemetry and other data gathering tools
|
||||
mk_add_options MOZ_CRASHREPORTER=0
|
||||
mk_add_options MOZ_DATA_REPORTING=0
|
||||
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
||||
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
||||
|
||||
# first attempt to fix the win32 vcredist issue results in build errors..
|
||||
#WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT
|
||||
END
|
||||
}
|
||||
|
||||
create_mozconfig_strict() {
|
||||
cat >../mozconfig <<END
|
||||
# Balls to the wall edition..
|
||||
ac_add_options --disable-webrtc
|
||||
|
||||
|
||||
ac_add_options --enable-application=browser
|
||||
|
||||
# This supposedly speeds up compilation (We test through dogfooding anyway)
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-debug
|
||||
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-hardening
|
||||
ac_add_options --enable-rust-simd
|
||||
ac_add_options --enable-optimize
|
||||
|
||||
# Branding
|
||||
ac_add_options --enable-update-channel=release
|
||||
# theming bugs: ac_add_options --with-app-name=librewolf
|
||||
# theming bugs: ac_add_options --with-app-basename=LibreWolf
|
||||
ac_add_options --with-branding=browser/branding/librewolf
|
||||
ac_add_options --with-distribution-id=io.gitlab.librewolf-community
|
||||
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||
ac_add_options --allow-addon-sideload
|
||||
export MOZ_REQUIRE_SIGNING=0
|
||||
|
||||
# Features
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
|
||||
# Disables crash reporting, telemetry and other data gathering tools
|
||||
mk_add_options MOZ_CRASHREPORTER=0
|
||||
mk_add_options MOZ_DATA_REPORTING=0
|
||||
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
||||
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
||||
|
||||
# first attempt to fix the win32 vcredist issue results in build errors..
|
||||
#WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT
|
||||
END
|
||||
}
|
||||
|
||||
28
patches/browser-confvars.patch
Normal file
28
patches/browser-confvars.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
diff --git a/browser/confvars.sh b/browser/confvars.sh
|
||||
index 92871c9516..1e151180dd 100644
|
||||
--- a/browser/confvars.sh
|
||||
+++ b/browser/confvars.sh
|
||||
@@ -3,8 +3,10 @@
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
-MOZ_APP_VENDOR=Mozilla
|
||||
-MOZ_UPDATER=1
|
||||
+MOZ_APP_BASENAME=LibreWolf
|
||||
+MOZ_APP_VENDOR="LibreWolf Community"
|
||||
+
|
||||
+MOZ_UPDATER=0
|
||||
|
||||
if test "$OS_ARCH" = "WINNT"; then
|
||||
if ! test "$HAVE_64BIT_BUILD"; then
|
||||
@@ -34,8 +36,8 @@ BROWSER_CHROME_URL=chrome://browser/content/browser.xhtml
|
||||
# For mozilla-beta, mozilla-release, or mozilla-central repositories, use
|
||||
# "unofficial" branding.
|
||||
# For the mozilla-aurora repository, use "aurora".
|
||||
-MOZ_BRANDING_DIRECTORY=browser/branding/unofficial
|
||||
-MOZ_OFFICIAL_BRANDING_DIRECTORY=browser/branding/official
|
||||
+MOZ_BRANDING_DIRECTORY=browser/branding/librewolf
|
||||
+MOZ_OFFICIAL_BRANDING_DIRECTORY=browser/branding/librewolf
|
||||
MOZ_APP_ID={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
|
||||
|
||||
MOZ_PROFILE_MIGRATOR=1
|
||||
43
patches/nightly/context-menu2.patch
Normal file
43
patches/nightly/context-menu2.patch
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
diff --git a/browser/base/content/browser-context.inc b/browser/base/content/browser-context.inc
|
||||
--- a/browser/base/content/browser-context.inc
|
||||
+++ b/browser/base/content/browser-context.inc
|
||||
@@ -102,19 +102,16 @@
|
||||
oncommand="gContextMenu.openLinkInPrivateWindow();"/>
|
||||
<menuseparator id="context-sep-open"/>
|
||||
<menuitem id="context-bookmarklink"
|
||||
data-l10n-id="main-context-menu-bookmark-link"
|
||||
oncommand="gContextMenu.bookmarkLink();"/>
|
||||
<menuitem id="context-savelink"
|
||||
data-l10n-id="main-context-menu-save-link"
|
||||
oncommand="gContextMenu.saveLink();"/>
|
||||
- <menuitem id="context-savelinktopocket"
|
||||
- data-l10n-id="main-context-menu-save-link-to-pocket"
|
||||
- oncommand= "Pocket.savePage(gContextMenu.browser, gContextMenu.linkURL);"/>
|
||||
<menuitem id="context-copyemail"
|
||||
data-l10n-id="main-context-menu-copy-email"
|
||||
oncommand="gContextMenu.copyEmail();"/>
|
||||
<menuitem id="context-copylink"
|
||||
data-l10n-id="main-context-menu-copy-link-simple"
|
||||
oncommand="gContextMenu.copyLink();"/>
|
||||
<menu id="context-sendlinktodevice"
|
||||
class="sync-ui-item"
|
||||
@@ -254,19 +251,16 @@
|
||||
#ifdef XP_MACOSX
|
||||
<menuitem id="context-bookmarkpage"
|
||||
data-l10n-id="main-context-menu-bookmark-add-mac"
|
||||
oncommand="gContextMenu.bookmarkThisPage();"/>
|
||||
#endif
|
||||
<menuitem id="context-savepage"
|
||||
data-l10n-id="main-context-menu-page-save"
|
||||
oncommand="gContextMenu.savePageAs();"/>
|
||||
- <menuitem id="context-pocket"
|
||||
- data-l10n-id="main-context-menu-save-to-pocket"
|
||||
- oncommand="Pocket.savePage(gContextMenu.browser, gContextMenu.browser.currentURI.spec, gContextMenu.browser.contentTitle);"/>
|
||||
<menu id="context-sendpagetodevice"
|
||||
class="sync-ui-item"
|
||||
data-l10n-id="main-context-menu-send-to-device"
|
||||
hidden="true">
|
||||
<menupopup id="context-sendpagetodevice-popup"
|
||||
onpopupshowing="(() => { gSync.populateSendTabToDevicesMenu(event.target, gBrowser.currentURI.spec, gBrowser.contentTitle); })()"/>
|
||||
</menu>
|
||||
<menu id="fill-login" hidden="true">
|
||||
245
patches/nightly/megabar2.patch
Normal file
245
patches/nightly/megabar2.patch
Normal file
|
|
@ -0,0 +1,245 @@
|
|||
diff --git a/browser/components/urlbar/UrlbarInput.jsm b/browser/components/urlbar/UrlbarInput.jsm
|
||||
--- a/browser/components/urlbar/UrlbarInput.jsm
|
||||
+++ b/browser/components/urlbar/UrlbarInput.jsm
|
||||
@@ -1699,23 +1699,23 @@ class UrlbarInput {
|
||||
this.removeAttribute("breakout-extend-disabled");
|
||||
}
|
||||
|
||||
this._toolbar.setAttribute("urlbar-exceeds-toolbar-bounds", "true");
|
||||
this.setAttribute("breakout-extend", "true");
|
||||
|
||||
// Enable the animation only after the first extend call to ensure it
|
||||
// doesn't run when opening a new window.
|
||||
- if (!this.hasAttribute("breakout-extend-animate")) {
|
||||
- this.window.promiseDocumentFlushed(() => {
|
||||
- this.window.requestAnimationFrame(() => {
|
||||
- this.setAttribute("breakout-extend-animate", "true");
|
||||
- });
|
||||
- });
|
||||
- }
|
||||
+// if (!this.hasAttribute("breakout-extend-animate")) {
|
||||
+// this.window.promiseDocumentFlushed(() => {
|
||||
+// this.window.requestAnimationFrame(() => {
|
||||
+// this.setAttribute("breakout-extend-animate", "true");
|
||||
+// });
|
||||
+// });
|
||||
+// }
|
||||
}
|
||||
|
||||
endLayoutExtend() {
|
||||
// If reduce motion is enabled, we want to collapse the Urlbar here so the
|
||||
// user sees only sees two states: not expanded, and expanded with the view
|
||||
// open.
|
||||
if (!this.hasAttribute("breakout-extend") || this.view.isOpen) {
|
||||
return;
|
||||
diff --git a/browser/themes/shared/urlbar-searchbar.inc.css b/browser/themes/shared/urlbar-searchbar.inc.css
|
||||
--- a/browser/themes/shared/urlbar-searchbar.inc.css
|
||||
+++ b/browser/themes/shared/urlbar-searchbar.inc.css
|
||||
@@ -1,16 +1,16 @@
|
||||
%if 0
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
%endif
|
||||
|
||||
%define fieldHoverBorderColor hsla(240,5%,5%,.35)
|
||||
-%define urlbarMarginInline 5px
|
||||
+%define urlbarMarginInline 0px
|
||||
%define urlbarSearchButtonWidth calc(16px + 2 * var(--urlbar-icon-padding))
|
||||
|
||||
:root {
|
||||
--toolbar-field-border-color: hsla(240,5%,5%,.25);
|
||||
}
|
||||
|
||||
@media not (-moz-proton) {
|
||||
:root {
|
||||
@@ -268,50 +268,50 @@
|
||||
#urlbar[breakout][breakout-extend-disabled][open] {
|
||||
/* The z-index needs to be big enough to trump other positioned UI pieces
|
||||
that we want to overlay. 3 is used in the tab bar. */
|
||||
z-index: 3;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#urlbar[breakout][breakout-extend] {
|
||||
- top: -@urlbarBreakoutExtend@;
|
||||
- left: calc(-@urlbarMarginInline@ - @urlbarBreakoutExtend@);
|
||||
- width: calc(100% + 2 * @urlbarMarginInline@ + 2 * @urlbarBreakoutExtend@);
|
||||
+ top: 0;
|
||||
+ left: 0;
|
||||
+ width: 100%;
|
||||
}
|
||||
|
||||
@media (-moz-proton) {
|
||||
#urlbar[breakout][breakout-extend] {
|
||||
top: 0;
|
||||
- left: -@urlbarMarginInline@;
|
||||
- width: calc(100% + 2 * @urlbarMarginInline@);
|
||||
+ left: 0;
|
||||
+ width: 100%;
|
||||
}
|
||||
} /*** END proton ***/
|
||||
|
||||
@media not (-moz-proton) {
|
||||
#urlbar[breakout][breakout-extend] > #urlbar-background {
|
||||
- box-shadow: 0 3px 8px 0 rgba(0,0,0,.15)
|
||||
+ box-shadow: 0 1px 4px rgba(0,0,0,.05);
|
||||
}
|
||||
|
||||
#urlbar[breakout][breakout-extend][open] > #urlbar-background {
|
||||
- box-shadow: 0 5px 18px rgba(0,0,0,.2);
|
||||
+ box-shadow: 0 1px 4px rgba(0,0,0,.05);
|
||||
}
|
||||
} /*** END !proton ***/
|
||||
|
||||
#urlbar[breakout][breakout-extend] > #urlbar-input-container {
|
||||
- height: calc(var(--urlbar-toolbar-height) + 2 * @urlbarBreakoutExtend@);
|
||||
- padding-block: calc(@urlbarBreakoutExtend@ + (var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2);
|
||||
- padding-inline: calc(@urlbarMarginInline@ + @urlbarBreakoutExtend@);
|
||||
+ height: var(--urlbar-toolbar-height);
|
||||
+ padding-block: 0;
|
||||
+ padding-inline: 0;
|
||||
}
|
||||
|
||||
@media (-moz-proton) {
|
||||
#urlbar[breakout][breakout-extend] > #urlbar-input-container {
|
||||
height: var(--urlbar-toolbar-height);
|
||||
- padding-block: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2 + var(--urlbar-container-padding));
|
||||
- padding-inline: calc(@urlbarMarginInline@ + var(--urlbar-container-padding));
|
||||
+ padding-block: 0;
|
||||
+ padding-inline: 0;
|
||||
}
|
||||
} /*** END proton ***/
|
||||
|
||||
#urlbar.searchButton[breakout][breakout-extend] > #urlbar-input-container > #urlbar-search-button {
|
||||
fill: currentColor;
|
||||
fill-opacity: .6;
|
||||
}
|
||||
|
||||
@@ -320,17 +320,17 @@
|
||||
transform: scaleX(.99) scaleY(.95);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1.0);
|
||||
}
|
||||
}
|
||||
|
||||
#urlbar[breakout][breakout-extend] > #urlbar-background {
|
||||
- animation-name: urlbar-grow;
|
||||
+ animation-name: none;
|
||||
animation-duration: 0s;
|
||||
animation-timing-function: var(--animation-easing-function);
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
#urlbar[breakout][breakout-extend][breakout-extend-animate] > #urlbar-background {
|
||||
animation-duration: 150ms;
|
||||
}
|
||||
diff --git a/browser/themes/shared/urlbarView.inc.css b/browser/themes/shared/urlbarView.inc.css
|
||||
--- a/browser/themes/shared/urlbarView.inc.css
|
||||
+++ b/browser/themes/shared/urlbarView.inc.css
|
||||
@@ -82,26 +82,26 @@
|
||||
|
||||
.urlbarView {
|
||||
/* Don't handle window drag events in case we are overlapping a toolbar */
|
||||
-moz-window-dragging: no-drag;
|
||||
|
||||
display: block;
|
||||
text-shadow: none;
|
||||
overflow: clip;
|
||||
- margin-inline: calc(5px + var(--urlbar-container-padding));
|
||||
- width: calc(100% - 2 * (5px + var(--urlbar-container-padding)));
|
||||
+ margin-inline: 0;
|
||||
+ width: 100%
|
||||
/* Match urlbar-background's border. */
|
||||
border-inline: 1px solid transparent;
|
||||
}
|
||||
|
||||
@media not (-moz-proton) {
|
||||
.urlbarView {
|
||||
- margin-inline: calc(4px + var(--identity-box-margin-inline));
|
||||
- width: calc(100% - 2 * (4px + var(--identity-box-margin-inline)));
|
||||
+ margin-inline: 0;
|
||||
+ width: 100%;
|
||||
}
|
||||
/* If the view is open, offset the toolbar overlap so the view's top border
|
||||
aligns with the toolbar. */
|
||||
#urlbar[open] > .urlbarView {
|
||||
margin-block-start: -@urlbarBreakoutExtend@;
|
||||
}
|
||||
} /*** END !proton ***/
|
||||
|
||||
@@ -123,27 +123,27 @@
|
||||
padding-block: 0;
|
||||
}
|
||||
|
||||
.urlbarView-row {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
fill: currentColor;
|
||||
fill-opacity: .6;
|
||||
- padding-block: 3px;
|
||||
+ padding-block: 0px;
|
||||
}
|
||||
|
||||
:root[uidensity=compact] .urlbarView-row {
|
||||
padding-block: 2px;
|
||||
}
|
||||
|
||||
@media (-moz-proton) {
|
||||
:root:not([uidensity=compact]) .urlbarView-row:not([type=tip], [type=dynamic]) {
|
||||
- min-height: 32px;
|
||||
- padding-block: 4px;
|
||||
+ min-height: 0px; /* todo: check this */
|
||||
+ padding-block: 0px;
|
||||
}
|
||||
} /*** END proton ***/
|
||||
|
||||
.urlbarView-row-inner {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
@@ -288,16 +288,17 @@
|
||||
width: @urlbarViewFaviconWidth@;
|
||||
height: @urlbarViewFaviconWidth@;
|
||||
margin-inline-end: calc(@urlbarViewIconMarginEnd@);
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
object-fit: contain;
|
||||
flex-shrink: 0;
|
||||
-moz-context-properties: fill, fill-opacity;
|
||||
+ margin-inline-start: 20px;
|
||||
}
|
||||
|
||||
@media not (-moz-proton) {
|
||||
.urlbarView-favicon {
|
||||
/* 2px is from identity-block.inc.css */
|
||||
margin-inline-end: calc(var(--urlbar-icon-padding) / 2 + var(--identity-box-margin-inline) + 2px);
|
||||
}
|
||||
} /*** END !proton ***/
|
||||
@@ -321,20 +322,20 @@
|
||||
color: var(--urlbar-popup-url-color);
|
||||
-moz-context-properties: fill;
|
||||
}
|
||||
|
||||
/* Type icon */
|
||||
|
||||
.urlbarView-type-icon {
|
||||
position: absolute;
|
||||
- width: 12px;
|
||||
- height: 12px;
|
||||
- margin-bottom: -4px;
|
||||
- margin-inline-start: 8px;
|
||||
+ width: 16px;
|
||||
+ height: 16px;;
|
||||
+ margin-bottom: 0;
|
||||
+ margin-inline-start: 0;
|
||||
align-self: end;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
-moz-context-properties: fill, stroke;
|
||||
}
|
||||
|
||||
/* Favicon badges have this priority: pinned > bookmark. */
|
||||
|
||||
148
patches/nightly/megabar3.patch
Normal file
148
patches/nightly/megabar3.patch
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
diff --git a/browser/components/urlbar/UrlbarInput.jsm b/browser/components/urlbar/UrlbarInput.jsm
|
||||
index f076d5d7f2..92f0adf003 100644
|
||||
--- a/browser/components/urlbar/UrlbarInput.jsm
|
||||
+++ b/browser/components/urlbar/UrlbarInput.jsm
|
||||
@@ -1704,13 +1704,13 @@ class UrlbarInput {
|
||||
|
||||
// Enable the animation only after the first extend call to ensure it
|
||||
// doesn't run when opening a new window.
|
||||
- if (!this.hasAttribute("breakout-extend-animate")) {
|
||||
- this.window.promiseDocumentFlushed(() => {
|
||||
- this.window.requestAnimationFrame(() => {
|
||||
- this.setAttribute("breakout-extend-animate", "true");
|
||||
- });
|
||||
- });
|
||||
- }
|
||||
+// if (!this.hasAttribute("breakout-extend-animate")) {
|
||||
+// this.window.promiseDocumentFlushed(() => {
|
||||
+// this.window.requestAnimationFrame(() => {
|
||||
+// this.setAttribute("breakout-extend-animate", "true");
|
||||
+// });
|
||||
+// });
|
||||
+// }
|
||||
}
|
||||
|
||||
endLayoutExtend() {
|
||||
diff --git a/browser/themes/shared/urlbar-searchbar.inc.css b/browser/themes/shared/urlbar-searchbar.inc.css
|
||||
index 3abd701732..87713b9cbd 100644
|
||||
--- a/browser/themes/shared/urlbar-searchbar.inc.css
|
||||
+++ b/browser/themes/shared/urlbar-searchbar.inc.css
|
||||
@@ -5,7 +5,7 @@
|
||||
%endif
|
||||
|
||||
%define fieldHoverBorderColor hsla(240,5%,5%,.35)
|
||||
-%define urlbarMarginInline 5px
|
||||
+%define urlbarMarginInline 0px
|
||||
%define urlbarSearchButtonWidth calc(16px + 2 * var(--urlbar-icon-padding))
|
||||
|
||||
:root {
|
||||
@@ -273,40 +273,40 @@
|
||||
}
|
||||
|
||||
#urlbar[breakout][breakout-extend] {
|
||||
- top: -@urlbarBreakoutExtend@;
|
||||
- left: calc(-@urlbarMarginInline@ - @urlbarBreakoutExtend@);
|
||||
- width: calc(100% + 2 * @urlbarMarginInline@ + 2 * @urlbarBreakoutExtend@);
|
||||
+ top: 0;
|
||||
+ left: 0;
|
||||
+ width: 100%;
|
||||
}
|
||||
|
||||
@media (-moz-proton) {
|
||||
#urlbar[breakout][breakout-extend] {
|
||||
top: 0;
|
||||
- left: -@urlbarMarginInline@;
|
||||
- width: calc(100% + 2 * @urlbarMarginInline@);
|
||||
+ left: 0;
|
||||
+ width: 100%;
|
||||
}
|
||||
} /*** END proton ***/
|
||||
|
||||
@media not (-moz-proton) {
|
||||
#urlbar[breakout][breakout-extend] > #urlbar-background {
|
||||
- box-shadow: 0 3px 8px 0 rgba(0,0,0,.15)
|
||||
+ box-shadow: 0 1px 4px rgba(0,0,0,.05);
|
||||
}
|
||||
|
||||
#urlbar[breakout][breakout-extend][open] > #urlbar-background {
|
||||
- box-shadow: 0 5px 18px rgba(0,0,0,.2);
|
||||
+ box-shadow: 0 1px 4px rgba(0,0,0,.05);
|
||||
}
|
||||
} /*** END !proton ***/
|
||||
|
||||
#urlbar[breakout][breakout-extend] > #urlbar-input-container {
|
||||
- height: calc(var(--urlbar-toolbar-height) + 2 * @urlbarBreakoutExtend@);
|
||||
- padding-block: calc(@urlbarBreakoutExtend@ + (var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2);
|
||||
- padding-inline: calc(@urlbarMarginInline@ + @urlbarBreakoutExtend@);
|
||||
+ height: var(--urlbar-toolbar-height);
|
||||
+ padding-block: 0;
|
||||
+ padding-inline: 0;
|
||||
}
|
||||
|
||||
@media (-moz-proton) {
|
||||
#urlbar[breakout][breakout-extend] > #urlbar-input-container {
|
||||
height: var(--urlbar-toolbar-height);
|
||||
- padding-block: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2 + var(--urlbar-container-padding));
|
||||
- padding-inline: calc(@urlbarMarginInline@ + var(--urlbar-container-padding));
|
||||
+ padding-block: 0;
|
||||
+ padding-inline: 0;
|
||||
}
|
||||
} /*** END proton ***/
|
||||
|
||||
@@ -325,7 +325,7 @@
|
||||
}
|
||||
|
||||
#urlbar[breakout][breakout-extend] > #urlbar-background {
|
||||
- animation-name: urlbar-grow;
|
||||
+ animation-name: none;
|
||||
animation-duration: 0s;
|
||||
animation-timing-function: var(--animation-easing-function);
|
||||
}
|
||||
diff --git a/browser/themes/shared/urlbarView.inc.css b/browser/themes/shared/urlbarView.inc.css
|
||||
index e58531723e..dba8668168 100644
|
||||
--- a/browser/themes/shared/urlbarView.inc.css
|
||||
+++ b/browser/themes/shared/urlbarView.inc.css
|
||||
@@ -86,16 +86,16 @@
|
||||
display: block;
|
||||
text-shadow: none;
|
||||
overflow: clip;
|
||||
- margin-inline: calc(5px + var(--urlbar-container-padding));
|
||||
- width: calc(100% - 2 * (5px + var(--urlbar-container-padding)));
|
||||
+ margin-inline: 0;
|
||||
+ width: 100%
|
||||
/* Match urlbar-background's border. */
|
||||
border-inline: 1px solid transparent;
|
||||
}
|
||||
|
||||
@media not (-moz-proton) {
|
||||
.urlbarView {
|
||||
- margin-inline: calc(4px + var(--identity-box-margin-inline));
|
||||
- width: calc(100% - 2 * (4px + var(--identity-box-margin-inline)));
|
||||
+ margin-inline: 0;
|
||||
+ width: 100%;
|
||||
}
|
||||
/* If the view is open, offset the toolbar overlap so the view's top border
|
||||
aligns with the toolbar. */
|
||||
@@ -298,6 +298,7 @@
|
||||
object-fit: contain;
|
||||
flex-shrink: 0;
|
||||
-moz-context-properties: fill, fill-opacity;
|
||||
+ margin-inline-start: 20px;
|
||||
}
|
||||
|
||||
@media not (-moz-proton) {
|
||||
@@ -331,10 +332,10 @@
|
||||
|
||||
.urlbarView-type-icon {
|
||||
position: absolute;
|
||||
- width: 12px;
|
||||
- height: 12px;
|
||||
- margin-bottom: -4px;
|
||||
- margin-inline-start: 8px;
|
||||
+ width: 16px;
|
||||
+ height: 16px;;
|
||||
+ margin-bottom: 0;
|
||||
+ margin-inline-start: 0;
|
||||
align-self: end;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
123
patches/nightly/report-site-issue.patch
Normal file
123
patches/nightly/report-site-issue.patch
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
diff --git a/browser/extensions/moz.build b/browser/extensions/moz.build
|
||||
--- a/browser/extensions/moz.build
|
||||
+++ b/browser/extensions/moz.build
|
||||
@@ -1,14 +1,11 @@
|
||||
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DIRS += [
|
||||
- "doh-rollout",
|
||||
"formautofill",
|
||||
"screenshots",
|
||||
- "webcompat",
|
||||
- "report-site-issue",
|
||||
"pictureinpicture",
|
||||
]
|
||||
diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
|
||||
--- a/browser/locales/Makefile.in
|
||||
+++ b/browser/locales/Makefile.in
|
||||
@@ -56,17 +56,16 @@ l10n-%:
|
||||
$(if $(filter en-US,$(AB_CD)),, @$(MAKE) merge-$*)
|
||||
$(NSINSTALL) -D $(DIST)/install
|
||||
@$(MAKE) -C ../../toolkit/locales l10n-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
|
||||
@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$*
|
||||
@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$*
|
||||
ifneq (,$(wildcard ../extensions/formautofill/locales))
|
||||
@$(MAKE) -C ../extensions/formautofill/locales AB_CD=$* XPI_NAME=locale-$*
|
||||
endif
|
||||
- @$(MAKE) -C ../extensions/report-site-issue/locales AB_CD=$* XPI_NAME=locale-$*
|
||||
@$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
|
||||
@$(MAKE) -C ../../devtools/startup/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
|
||||
@$(MAKE) l10n AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
|
||||
@$(MAKE) multilocale.txt-$* AB_CD=$* XPI_NAME=locale-$*
|
||||
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$*
|
||||
|
||||
chrome-%: AB_CD=$*
|
||||
chrome-%: IS_LANGUAGE_REPACK=1
|
||||
@@ -77,17 +76,16 @@ chrome-%:
|
||||
@$(MAKE) -C ../../extensions/spellcheck/locales chrome AB_CD=$*
|
||||
ifneq (,$(wildcard ../extensions/formautofill/locales))
|
||||
@$(MAKE) -C ../extensions/formautofill/locales chrome AB_CD=$*
|
||||
endif
|
||||
@$(MAKE) -C ../../devtools/client/locales chrome AB_CD=$*
|
||||
@$(MAKE) -C ../../devtools/startup/locales chrome AB_CD=$*
|
||||
@$(MAKE) chrome AB_CD=$*
|
||||
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales chrome AB_CD=$*
|
||||
- @$(MAKE) -C ../extensions/report-site-issue/locales chrome AB_CD=$*
|
||||
|
||||
package-win32-installer: $(SUBMAKEFILES)
|
||||
$(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen ZIP_IN='$(ZIP_OUT)' installer
|
||||
|
||||
langpack: langpack-$(AB_CD)
|
||||
|
||||
# This is a generic target that will make a langpack, repack ZIP (+tarball)
|
||||
# builds, and repack an installer if applicable. It is called from the
|
||||
diff --git a/browser/locales/filter.py b/browser/locales/filter.py
|
||||
--- a/browser/locales/filter.py
|
||||
+++ b/browser/locales/filter.py
|
||||
@@ -15,17 +15,16 @@ def test(mod, path, entity=None):
|
||||
"toolkit",
|
||||
"security/manager",
|
||||
"devtools/client",
|
||||
"devtools/shared",
|
||||
"devtools/startup",
|
||||
"browser",
|
||||
"browser/extensions/formautofill",
|
||||
"browser/extensions/fxmonitor",
|
||||
- "browser/extensions/report-site-issue",
|
||||
"extensions/spellcheck",
|
||||
"other-licenses/branding/firefox",
|
||||
"browser/branding/official",
|
||||
"services/sync",
|
||||
):
|
||||
return "ignore"
|
||||
if mod not in ("browser", "extensions/spellcheck"):
|
||||
# we only have exceptions for browser and extensions/spellcheck
|
||||
diff --git a/browser/locales/l10n.ini b/browser/locales/l10n.ini
|
||||
--- a/browser/locales/l10n.ini
|
||||
+++ b/browser/locales/l10n.ini
|
||||
@@ -9,17 +9,16 @@ all = browser/locales/all-locales
|
||||
[compare]
|
||||
dirs = browser
|
||||
other-licenses/branding/firefox
|
||||
browser/branding/official
|
||||
devtools/client
|
||||
devtools/startup
|
||||
browser/extensions/formautofill
|
||||
browser/extensions/fxmonitor
|
||||
- browser/extensions/report-site-issue
|
||||
|
||||
[includes]
|
||||
# non-central apps might want to use %(topsrcdir)s here, or other vars
|
||||
# RFE: that needs to be supported by compare-locales, too, though
|
||||
toolkit = toolkit/locales/l10n.ini
|
||||
services_sync = services/sync/locales/l10n.ini
|
||||
|
||||
[extras]
|
||||
diff --git a/browser/locales/l10n.toml b/browser/locales/l10n.toml
|
||||
--- a/browser/locales/l10n.toml
|
||||
+++ b/browser/locales/l10n.toml
|
||||
@@ -130,20 +130,16 @@ locales = [
|
||||
reference = "browser/extensions/formautofill/locales/en-US/**"
|
||||
l10n = "{l}browser/extensions/formautofill/**"
|
||||
|
||||
[[paths]]
|
||||
reference = "browser/extensions/fxmonitor/locales/en-US/**"
|
||||
l10n = "{l}browser/extensions/fxmonitor/**"
|
||||
|
||||
[[paths]]
|
||||
- reference = "browser/extensions/report-site-issue/locales/en-US/**"
|
||||
- l10n = "{l}browser/extensions/report-site-issue/**"
|
||||
-
|
||||
-[[paths]]
|
||||
reference = "services/sync/locales/en-US/**"
|
||||
l10n = "{l}services/sync/**"
|
||||
|
||||
|
||||
[[includes]]
|
||||
path = "toolkit/locales/l10n.toml"
|
||||
|
||||
[[includes]]
|
||||
16
patches/permissive/README.md
Normal file
16
patches/permissive/README.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# current differences between -release and -permissive
|
||||
|
||||
## librewolf.cfg:
|
||||
|
||||
* lockPref("dom.w3c_pointer_events.enabled", true); -> This fixes YouTube picture-in-picture.
|
||||
|
||||
* defaultPref("dom.event.contextmenu.enabled", true); -> This fixes lastpass.com context menu.
|
||||
|
||||
* defaultPref("extensions.update.url", ""); -> enable in-app manual check for extension updates.
|
||||
|
||||
* Attempting new cookie behavior (use Settings > Cookies and Site Data > Manage Exceptions), these are the last three preferences in the cfg file: privacy.clearOnShutdown.cookies, privacy.clearOnShutdown.offlineApps, network.cookie.lifetimePolicy.
|
||||
|
||||
|
||||
## policies.json
|
||||
|
||||
* Added the decentraleyes plugin.
|
||||
107
patches/permissive/librewolf-config.patch
Normal file
107
patches/permissive/librewolf-config.patch
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
diff --git a/librewolf.cfg b/librewolf.cfg
|
||||
index 03524fd..7aa8d33 100644
|
||||
--- a/librewolf.cfg
|
||||
+++ b/librewolf.cfg
|
||||
@@ -375,6 +375,7 @@ defaultPref("network.proxy.socks_version", 5);
|
||||
defaultPref("browser.tabs.loadBookmarksInTabs", true);
|
||||
defaultPref("devtools.debugger.remote-enabled", false);
|
||||
defaultPref("devtools.chrome.enabled", false);
|
||||
+defaultPref("general.useragent.site_specific_overrides", false);
|
||||
defaultPref("extensions.ui.experiment.hidden", false);
|
||||
//defaultPref("extensions.ui.dictionary.hidden", false);
|
||||
//defaultPref("extensions.ui.locale.hidden", false);
|
||||
@@ -388,7 +389,7 @@ defaultPref("extensions.ui.experiment.hidden", false);
|
||||
lockPref("dom.indexedDB.enabled", true); //default true
|
||||
//lockPref("dom.indexedDB.logging.details", false); //default true
|
||||
//lockPref("dom.indexedDB.logging.enabled", false); //default true
|
||||
-lockPref("dom.w3c_pointer_events.enabled", false);
|
||||
+lockPref("dom.w3c_pointer_events.enabled", true);
|
||||
//lockPref("network.http.spdy.enabled", false);
|
||||
//lockPref("network.http.spdy.enabled.deps", false);
|
||||
//lockPref("network.http.spdy.enabled.http2", false);
|
||||
@@ -616,7 +617,7 @@ defaultPref("extensions.webextensions.background-delayed-startup", true); //defa
|
||||
// >>>>>>>>>>>>>>>>>>>>
|
||||
|
||||
// Pref : Disabling performance addon url [FF64+]
|
||||
-lockPref("devtools.performance.recording.ui-base-url", "http://localhost:4242");
|
||||
+lockPref("devtools.performance.recording.ui-base-url", "https://localhost:4242");
|
||||
// Default Value : https://perf-html.io
|
||||
|
||||
// Pref : The default set of protocol handlers for irc [FF64+]
|
||||
@@ -881,12 +882,12 @@ lockPref("extensions.getAddons.compatOverides.url", "");
|
||||
// https://services.addons.mozilla.org/api/v3/addons/compat-override/?guid=%IDS%&lang=%LOCALE%
|
||||
|
||||
// Pref :
|
||||
-defaultPref("extensions.getAddons.get.url", "");
|
||||
+defaultPref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v3/addons/search/?guid=%IDS%&lang=%LOCALE%");
|
||||
// Default Value
|
||||
// https://services.addons.mozilla.org/api/v3/addons/search/?guid=%IDS%&lang=%LOCALE%
|
||||
|
||||
// Pref :
|
||||
-defaultPref("extensions.getAddons.langpacks.url", "");
|
||||
+defaultPref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v3/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%");
|
||||
// Default Value
|
||||
// https://services.addons.mozilla.org/api/v3/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%
|
||||
|
||||
@@ -896,12 +897,12 @@ defaultPref("extensions.getAddons.link.url", "");
|
||||
// https://addons.mozilla.org/%LOCALE%/firefox/
|
||||
|
||||
// Pref :
|
||||
-defaultPref("extensions.getAddons.search.browseURL", "");
|
||||
+defaultPref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=%OS%&appver=%VERSION%");
|
||||
// Default Value
|
||||
// https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=%OS%&appver=%VERSION%
|
||||
|
||||
// Pref :
|
||||
-lockPref("extensions.getAddons.themes.browseURL", "");
|
||||
+lockPref("extensions.getAddons.themes.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes/?src=firefox");
|
||||
// Default Value
|
||||
// https://addons.mozilla.org/%LOCALE%/firefox/themes/?src=firefox
|
||||
|
||||
@@ -931,7 +932,7 @@ lockPref("browser.newtabpage.activity-stream.fxaccounts.endpoint", "");
|
||||
// https://accounts.firefox.com/
|
||||
|
||||
// Pref :
|
||||
-defaultPref("extensions.update.url", "");
|
||||
+//defaultPref("extensions.update.url", "");
|
||||
// Default Value
|
||||
// https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=
|
||||
// %REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=
|
||||
@@ -1476,7 +1477,7 @@ lockPref("javascript.options.shared_memory", false);
|
||||
// So overall, disabling SW should enhance performance because it blocks SW Scripts.
|
||||
// [NOTE] Service worker APIs are hidden (in Firefox) and cannot be used when in PB mode.
|
||||
// [NOTE] Service workers only run over HTTPS. Service Workers have no DOM access.
|
||||
-defaultPref("dom.serviceWorkers.enabled", false);
|
||||
+lockPref("dom.serviceWorkers.enabled", false);
|
||||
|
||||
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
// Section : General Settings 1/3
|
||||
@@ -1803,7 +1804,7 @@ lockPref("datareporting.healthreport.uploadEnabled", false);
|
||||
lockPref("datareporting.policy.dataSubmissionEnabled", false);
|
||||
|
||||
// Pref : Disable right-click menu manipulation via JavaScript (disabled)
|
||||
-defaultPref("dom.event.contextmenu.enabled", false);
|
||||
+defaultPref("dom.event.contextmenu.enabled", true);
|
||||
|
||||
// Pref : Disable clipboard event detection (onCut/onCopy/onPaste) via Javascript
|
||||
// Disabling clipboard events breaks Ctrl+C/X/V copy/cut/paste functionaility in
|
||||
@@ -1893,7 +1894,7 @@ lockPref("dom.enable_user_timing", false);
|
||||
// Pref : Disable Web Audio API
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=1288359
|
||||
// Avoid fingerprinting
|
||||
-defaultPref("dom.webaudio.enabled", false);
|
||||
+lockPref("dom.webaudio.enabled", false);
|
||||
|
||||
// Pref : When geolocation is enabled, don't log geolocation requests to the console
|
||||
lockPref("geo.wifi.logging.enabled", false);
|
||||
@@ -2772,3 +2773,10 @@ defaultPref("devtools.selfxss.count", 0);
|
||||
// enable HTTPS only mode by default
|
||||
defaultPref("dom.security.https_only_mode", true);
|
||||
defaultPref("dom.security.https_only_mode_ever_enabled", true);
|
||||
+
|
||||
+
|
||||
+// attempting new cookie behavior (use Settings > Cookies and Site Data > Manage Exceptions)
|
||||
+// (please not that after you added a site, you must close LibreWolf before the cookies/etc are actually saved.)
|
||||
+defaultPref("privacy.clearOnShutdown.cookies", false);
|
||||
+defaultPref("privacy.clearOnShutdown.offlineApps", false);
|
||||
+defaultPref("network.cookie.lifetimePolicy", 2);
|
||||
0
patches/permissive/librewolf-policies.patch
Normal file
0
patches/permissive/librewolf-policies.patch
Normal file
13
patches/sed-patches/allow-searchengines-non-esr.patch
Normal file
13
patches/sed-patches/allow-searchengines-non-esr.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/browser/components/enterprisepolicies/schemas/policies-schema.json b/browser/components/enterprisepolicies/schemas/policies-schema.json
|
||||
index d436cf1ca1..ecd6e53b9e 100644
|
||||
--- a/browser/components/enterprisepolicies/schemas/policies-schema.json
|
||||
+++ b/browser/components/enterprisepolicies/schemas/policies-schema.json
|
||||
@@ -1074,7 +1074,7 @@
|
||||
},
|
||||
|
||||
"SearchEngines": {
|
||||
- "enterprise_only": true,
|
||||
+ "enterprise_only": false,
|
||||
|
||||
"type": "object",
|
||||
"properties": {
|
||||
25
patches/sed-patches/disable-pocket.patch
Normal file
25
patches/sed-patches/disable-pocket.patch
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
|
||||
index 81de0fb201..163b4843e4 100644
|
||||
--- a/browser/components/BrowserGlue.jsm
|
||||
+++ b/browser/components/BrowserGlue.jsm
|
||||
@@ -1375,8 +1375,6 @@ BrowserGlue.prototype = {
|
||||
Normandy.init();
|
||||
}
|
||||
|
||||
- SaveToPocket.init();
|
||||
-
|
||||
AboutHomeStartupCache.init();
|
||||
|
||||
Services.obs.notifyObservers(null, "browser-ui-startup-complete");
|
||||
diff --git a/browser/components/moz.build b/browser/components/moz.build
|
||||
index d16b27b1ea..a119166fa5 100644
|
||||
--- a/browser/components/moz.build
|
||||
+++ b/browser/components/moz.build
|
||||
@@ -42,7 +42,6 @@ DIRS += [
|
||||
"originattributes",
|
||||
"ion",
|
||||
"places",
|
||||
- "pocket",
|
||||
"preferences",
|
||||
"privatebrowsing",
|
||||
"prompts",
|
||||
19
patches/sed-patches/remove-internal-plugin-certs.patch
Normal file
19
patches/sed-patches/remove-internal-plugin-certs.patch
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
diff --git a/toolkit/mozapps/extensions/internal/XPIInstall.jsm b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
|
||||
index 784077b740..e035b3ba6d 100644
|
||||
--- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm
|
||||
+++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
|
||||
@@ -822,14 +822,6 @@ function getSignedStatus(aRv, aCert, aAddonID) {
|
||||
return AddonManager.SIGNEDSTATE_BROKEN;
|
||||
}
|
||||
|
||||
- if (aCert.organizationalUnit == "Mozilla Components") {
|
||||
- return AddonManager.SIGNEDSTATE_SYSTEM;
|
||||
- }
|
||||
-
|
||||
- if (aCert.organizationalUnit == "Mozilla Extensions") {
|
||||
- return AddonManager.SIGNEDSTATE_PRIVILEGED;
|
||||
- }
|
||||
-
|
||||
return /preliminary/i.test(aCert.organizationalUnit)
|
||||
? AddonManager.SIGNEDSTATE_PRELIMINARY
|
||||
: AddonManager.SIGNEDSTATE_SIGNED;
|
||||
55
patches/sed-patches/stop-undesired-requests.patch
Normal file
55
patches/sed-patches/stop-undesired-requests.patch
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js b/browser/components/newtab/data/content/activity-stream.bundle.js
|
||||
index 92f0652aec..696a99f7ef 100644
|
||||
--- a/browser/components/newtab/data/content/activity-stream.bundle.js
|
||||
+++ b/browser/components/newtab/data/content/activity-stream.bundle.js
|
||||
@@ -1841,7 +1841,7 @@ class ASRouterAdminInner extends react__WEBPACK_IMPORTED_MODULE_3___default.a.Pu
|
||||
label = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("span", null, "remote settings (", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("a", {
|
||||
className: "providerUrl",
|
||||
target: "_blank",
|
||||
- href: "https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/nimbus-desktop-experiments/records",
|
||||
+ href: "https://f.s.s.m.c.qjz9zk/v1/buckets/main/collections/nimbus-desktop-experiments/records",
|
||||
rel: "noopener noreferrer"
|
||||
}, "nimbus-desktop-experiments"), ")");
|
||||
}
|
||||
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
|
||||
index c7cde8917c..b398a22064 100644
|
||||
--- a/modules/libpref/init/all.js
|
||||
+++ b/modules/libpref/init/all.js
|
||||
@@ -2243,7 +2243,7 @@ pref("security.cert_pinning.hpkp.enabled", false);
|
||||
// Remote settings preferences
|
||||
// Note: if you change this, make sure to also review security.onecrl.maximum_staleness_in_seconds
|
||||
pref("services.settings.poll_interval", 86400); // 24H
|
||||
-pref("services.settings.server", "https://firefox.settings.services.mozilla.com/v1");
|
||||
+pref("services.settings.server", "https://f.s.s.m.c.qjz9zk/v1");
|
||||
pref("services.settings.default_bucket", "main");
|
||||
|
||||
// The percentage of clients who will report uptake telemetry as
|
||||
diff --git a/services/settings/Utils.jsm b/services/settings/Utils.jsm
|
||||
index 66df850904..1538a2ff0d 100644
|
||||
--- a/services/settings/Utils.jsm
|
||||
+++ b/services/settings/Utils.jsm
|
||||
@@ -60,7 +60,7 @@ var Utils = {
|
||||
);
|
||||
const isXpcshell = env.exists("XPCSHELL_TEST_PROFILE_DIR");
|
||||
return AppConstants.RELEASE_OR_BETA && !Cu.isInAutomation && !isXpcshell
|
||||
- ? "https://firefox.settings.services.mozilla.com/v1"
|
||||
+ ? "https://f.s.s.m.c.qjz9zk/v1"
|
||||
: gServerURL;
|
||||
},
|
||||
|
||||
diff --git a/toolkit/components/search/SearchUtils.jsm b/toolkit/components/search/SearchUtils.jsm
|
||||
index 8a3c6acb84..7408b3fd2f 100644
|
||||
--- a/toolkit/components/search/SearchUtils.jsm
|
||||
+++ b/toolkit/components/search/SearchUtils.jsm
|
||||
@@ -159,9 +159,9 @@ var SearchUtils = {
|
||||
|
||||
ENGINES_URLS: {
|
||||
"prod-main":
|
||||
- "https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/search-config/records",
|
||||
+ "https://f.s.s.m.c.qjz9zk/v1/buckets/main/collections/search-config/records",
|
||||
"prod-preview":
|
||||
- "https://firefox.settings.services.mozilla.com/v1/buckets/main-preview/collections/search-config/records",
|
||||
+ "https://f.s.s.m.c.qjz9zk/v1/buckets/main-preview/collections/search-config/records",
|
||||
"stage-main":
|
||||
"https://settings.stage.mozaws.net/v1/buckets/main/collections/search-config/records",
|
||||
"stage-preview":
|
||||
15
patches/tb-mozconfig-win10.patch
Normal file
15
patches/tb-mozconfig-win10.patch
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
diff --git a/.mozconfig b/.mozconfig
|
||||
index d71c858844e3..2d295de7df72 100755
|
||||
--- a/.mozconfig
|
||||
+++ b/.mozconfig
|
||||
@@ -16,8 +16,8 @@ export MOZILLA_OFFICIAL=1
|
||||
ac_add_options --enable-optimize
|
||||
ac_add_options --enable-official-branding
|
||||
|
||||
-# Let's support GTK3 for ESR60
|
||||
-ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
+## Let's support GTK3 for ESR60
|
||||
+#ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
|
||||
ac_add_options --disable-strip
|
||||
ac_add_options --disable-install-strip
|
||||
13
patches/urlbarprovider-interventions.patch
Normal file
13
patches/urlbarprovider-interventions.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/browser/components/urlbar/UrlbarProviderInterventions.jsm b/browser/components/urlbar/UrlbarProviderInterventions.jsm
|
||||
index e22886ce92..d46d8191f2 100644
|
||||
--- a/browser/components/urlbar/UrlbarProviderInterventions.jsm
|
||||
+++ b/browser/components/urlbar/UrlbarProviderInterventions.jsm
|
||||
@@ -451,7 +451,7 @@ class ProviderInterventions extends UrlbarProvider {
|
||||
]),
|
||||
});
|
||||
for (let [id, phrases] of Object.entries(DOCUMENTS)) {
|
||||
- queryScorer.addDocument({ id, phrases });
|
||||
+// queryScorer.addDocument({ id, phrases });
|
||||
}
|
||||
return queryScorer;
|
||||
});
|
||||
1
settings
Submodule
1
settings
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 1b9cc88ccf64993951fe28cf426cf883e37e1b4d
|
||||
24
util/upload-distfiles.sh
Normal file
24
util/upload-distfiles.sh
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
#!/bin/bash
|
||||
|
||||
pkgver=88.0
|
||||
private_token=$1
|
||||
if [ -z $private_token ]; then
|
||||
echo "Please specify the Gitlab PRIVATE TOKEN on the commandline."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
curl --request POST --header "PRIVATE-TOKEN: ${private_token}" --form "file=@librewolf-${pkgver}.en-US.win64-setup.exe" "https://gitlab.com/api/v4/projects/13852981/uploads"
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
curl --request POST --header "PRIVATE-TOKEN: ${private_token}" --form "file=@librewolf-${pkgver}.en-US.win64.zip" "https://gitlab.com/api/v4/projects/13852981/uploads"
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
curl --request POST --header "PRIVATE-TOKEN: ${private_token}" --form "file=@librewolf-${pkgver}.en-US.win64-permissive-nightly-setup.exe" "https://gitlab.com/api/v4/projects/13852981/uploads"
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
1
version.sh
Normal file
1
version.sh
Normal file
|
|
@ -0,0 +1 @@
|
|||
pkgver=88.0
|
||||
Loading…
Add table
Reference in a new issue