These are constant values (defined at `ironfox.configure`) which can be used anywhere... specifically:
- In Gecko (via the `IFConstants.sys.mjs` module)
- In `ironfox.cfg` (via the equivalent prefs set at `ironfox.js` and `phoenix-overrides.cfg`)
- In any Kotlin/Java project (via the `org.ironfoxoss.core.IFConstants` components)
So this allows us to define these values in one place, and be able to use them anywhere. It also ensures the values always match across all projects.
Signed-off-by: celenity <celenity@celenity.dev>
Notably:
- Cleaned up/refined checksum handling
- Updating checksums now doesn't force remove already installed dependencies (deps are now always downloaded in a separate temporarily directory when updating checksums)
- Sources are now automatically backed up and restored upon download errors (if already installed)
- We no longer try to perform post-actions if necessary (ex. when the user cancels the download or if checksum validation fails)
- Minor formatting
Signed-off-by: celenity <celenity@celenity.dev>
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>