This provides support for a mechanism to easily configure and override Fenix UI preferences, similar to how we override Gecko preferences with `ironfox.cfg` - the prefs and values we're setting specifically can be seen at `IFPrefs.kt`
This significantly lowers the burden of maintenance (especially since we also override Nimbus directly as well), as we no longer need to make a patch just to modify a setting value...
(We're also setting the preference keys directly from the R.string values - so if a preference is removed or changed in the future, we'll know, as it'll cause the build to fail)
Signed-off-by: celenity <celenity@celenity.dev>
These were experimental/never used in production, and thanks to our latest changes/fixes for handling of Gecko prefs, aren't needed at all anymore regardless
Signed-off-by: celenity <celenity@celenity.dev>
This should fix a lot of bugs/issues experienced by users, and should help improve performance as well
Also adds functions (at the IFPrefUtils module) to support and allow for better management of Gecko preferences
Signed-off-by: celenity <celenity@celenity.dev>
Notably, this means that:
- It's now possible to build components individually
- This should especially be useful for ex. CI, so we can avoid timeouts and improve build speed by building certain components simultaneously
- It's now possible to rebuild only a specific project and its consumers (instead of always having to build everything...)
- ex. If I make a change to Gecko, I can just use `rebuild-gecko`, which only builds Gecko and its consumers (GeckoView, AC, and Fenix), instead of trying to build everything unconditionally
The default build behavior (ex. if no argument is specified) still remains the same
This also adds checks to ensure that the build script fails fast if important variables are not properly set/configured
Also includes some minor tweaks, such as a renaming of a couple of the CI jobs for clarity, and the addition of an `IRONFOX_TEMP` variable to indicate the temporary build directory
Signed-off-by: celenity <celenity@celenity.dev>
Notably:
- Splits ciphers into separate categories for ones that should be applied to TLS 1.3 and ones that should be applied to non-TLS 1.3 connections (because curl requires/uses two separate options for this, so this ensures it handles/sets them properly)
- Removes options that do not apply to HTTP(S) requests
- Enables parallel downloads
- Prevents curl from automatically converting POST requests to GET requests upon certain redirects
- Sets curl to retry upon all errors (will fail after 5 tries)
Signed-off-by: celenity <celenity@celenity.dev>