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>
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>
This will not override the DNS provider for users who are currently using any of the effected/removed providers, so we would strongly recommend switching to one of the other built-in providers if possible
Signed-off-by: celenity <celenity@celenity.dev>
(This also ensures we only import our default XPInstall permissions once per-session, which should help improve performance and efficiency)
Signed-off-by: celenity <celenity@celenity.dev>
Mozilla doesn't seem to define all Android prefs/set them to their correct values at `all.js`/`geckoview-prefs.js` anymore - which has caused issues for us in the past (ex. with some of the Safe Browsing provider prefs)
So this ensures that we're using their correct/appropriate default values, though values set by Phoenix and values we define at `ironfox.cfg`/`ironfox.js` still take precedence over them
Signed-off-by: celenity <celenity@celenity.dev>
This implements a companion to GeckoSettingsBridge on the Gecko side, to manage the value and lock state of certain Gecko preferences based on the value of the corresponding Fenix UI setting
This approach is far cleaner and more flexible, will make it easier to add future settings, and also has usability/freedom and control benefits (For instance, if a user decides to enable JIT, they can now toggle the individual JITs as desired)
Also removes some redundancy in terms of setting our prefs as both "user" and "default"
Similar improvements will be added soon for GeckoRuntimeSettings prefs!
Signed-off-by: celenity <celenity@celenity.dev>