Skip to content
⌘+K

Build System Patches

Patches in this category focus on altering the build system by removing unnecessary dependencies, fixing build issues, or optimizing the build flow to ensure successful compilation and better reproducibility.

Android Components - Allow overriding the build date

Section titled “Android Components - Allow overriding the build date”

Allows devs to override the build date.

Reason
To ensure consistent build dates for all variants of IronFox.
Effect
Ensures that the build dates are consistent for all variants of IronFox, in order to prevent unexpected version code issues.

Provides support for core IronFox functionality.

Reason
To provide support for core functionality and IronFox-specific resources.
Effect
Ensures that core IronFox changes are always/properly applied as expected.

Provides support for core IronFox functionality.

Reason
To provide support for core functionality and IronFox-specific resources.
Effect
Ensures that core IronFox changes are always/properly applied as expected.

Enables legacy Android packaging unconditionally to reduce the size of our APKsets.

Reason
To reduce the size of our APKsets from ~2 GB to ~1 GB.
Effect
Reduces the size of APKsets to ensure they can be downloaded and properly uploaded to stores like Accrescent.

Gecko - Ensure builds always reflect our (latest) changes

Section titled “Gecko - Ensure builds always reflect our (latest) changes”

Ensures that builds of GeckoView binaries always reflect our (latest) changes.

Reason
To ensure that our GeckoView binaries are always packaged as intended.
Effect
Ensures that our GeckoView binaries are always packaged as intended.

Prevents building and configuring unnecessary/unwanted example/sample libraries, and ensures that only necessary projects are configured at build-time.

Reason
Allows for faster builds, with less overhead.
Effect
Reduces build-time, and reduces the complexity of the overall build process.

Ensures that we build and publish the release variant of GeckoView.

Reason
To ensure that we build and publish the release variant of GeckoView.
Effect
Ensures that we build and publish the release (non-debug) variant of GeckoView.

Adds support for native manifests to GeckoView.

Reason
Adds support for native manifests to GeckoView, in order to configure/harden uBlock Origin.
Effect
Users are provided with a strengthened/enhanced config for uBlock Origin out of the box.

Adds support for enterprise policies to GeckoView, so that it can be leveraged for advanced configuration.

Reason
Allows for additional control/configuration of the browsing behavior.
Effect
Allows users to take advantage of additional customizations, and helps to provide a superior browsing experience.

Adds support for Firefox’s AutoConfig functionality to GeckoView, so that it can be leveraged for advanced configuration.

Reason
Allows for additional control/configuration of the browsing behavior.
Effect
Allows users to take advantage of additional customizations, and helps to provide a superior browsing experience.

Adds support for setting environment variables via Firefox’s AutoConfig functionality.

Reason
Allows for advanced configuration of browsing behavior.
Effect
Provides more control and allows for more advanced browser configuration.

Adds support for using a locally built nimbus-fml binary, instead of fetching a prebuilt artifact from Mozilla.

Reason
Reduces dependency on Mozilla infrastructure and improves build reproducibility.
Effect
Provides more control over build dependencies with fewer connections to Mozilla servers.

Locks Gecko preferences controlled by GeckoRuntimeSettings to ensure they stay in sync with Fenix’s UI settings.

Reason
To avoid bugs/unexpected behavior from UI settings not matching with related Gecko preferences, and to prevent from users from attempting to change these preferences directly from about:config (as doing so simply results in the pref resetting on the next browser launch).
Effect
Gecko preferences remain in sync with their corresponding UI setting(s), users are provided with a more stable browsing experience, and users can avoid having their preferences unintentionally reset (when set from about:config directly).

Locks Gecko preferences controlled by GeckoRuntimeSettings to ensure they stay in sync with Fenix’s UI settings.

Reason
To avoid bugs/unexpected behavior from UI settings not matching with related Gecko preferences, and to prevent from users from attempting to change these preferences directly from about:config (as doing so simply results in the pref resetting on the next browser launch).
Effect
Gecko preferences remain in sync with their corresponding UI setting(s), users are provided with a more stable browsing experience, and users can avoid having their preferences unintentionally reset (when set from about:config directly).