mozilla-mobile / fenix

⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android
https://github.com/mozilla-mobile/firefox-android
Mozilla Public License 2.0
6.48k stars 1.27k forks source link

about:config doesn't work in Firefox Release #7865

Closed jrmuizel closed 1 year ago

jrmuizel commented 4 years ago

This works in Nightly but not in release. This makes it very difficult to ask users to change settings for debugging purposes.

┆Issue is synchronized with this Jira Task

filips123 commented 4 years ago

I would also like about:config support in stable releases. Fennec has it, so lack of it could be considered as one step backwards (although I agree that Firefox Preview has a lot of other improvements).

Also, about:config is not only needed for "debugging purposes." There are a lot of other useful things that can depend on about:config. For example, changing some more advanced settings, enabling/disabling some APIs (could be also used for security/privacy reasons), as well as other things.

So I would consider about:config support as quite important feature which should be enabled in stable releases.

da2x commented 4 years ago

I found bz#1540065 from a year ago that says:

“We've decided to add a GeckoRuntimeSetting that will control whether or not about:config is exposed. Fenix will use this to enable about:config in all scenarios.”

So it sounds like it should be available on all release branches including stable.

boek commented 4 years ago

We currently have it enabled in Nightly. Keeping this open as something to consider in the future

andreicristianpetcu commented 4 years ago

about:config is really useful for the SUMO community since new features might break some sites. TLS versions, same site cookies and various other things can be turned off to pinpoint the cause of an issue. Average users tend to have release, not beta or nightly.

mcl21014 commented 4 years ago

about:config can be abused by some users, so maybe instead of punishing us all by removing the feature, show a more scary warning or something every time that cannot be permanently hidden. On one hand, you do not want less informed people creating bug tickets for experimental flags, but some people know what they're doing. I turn on privacy.resistfingerprinting to disable some tracking related to the browser header. I also disable the disk cache and set the memory cache capacity to -1, so it's dynamic since RAM is cheap as of late and I have a phone with 8GB RAM that is not being fully used. Also I increase the extension update interval, so I don't have to wait forever for an update to my extensions. Not much, but there's my usage case. And I prefer the stable branch. Even if the devs decide to not include it, maybe make it so we can easily build it ourselves with about:config. I can build and sideload APKs via ADB. Also I myself (many years ago) used to turn on entries I shouldn't, but I learned when everything crashed. Never blamed the devs or software. No reason to blame software for user error and remove a feature with that in mind.

techboyg5 commented 4 years ago

about:config can be abused by some users, so maybe instead of punishing us all by removing the feature, show a more scary warning or something every time that cannot be permanently hidden. On one hand, you do not want less informed people creating bug tickets for experimental flags, but some people know what they're doing. I turn on privacy.resistfingerprinting to disable some tracking related to the browser header. I also disable the disk cache and set the memory cache capacity to -1, so it's dynamic since RAM is cheap as of late and I have a phone with 8GB RAM that is not being fully used. Also I increase the extension update interval, so I don't have to wait forever for an update to my extensions. Not much, but there's my usage case. And I prefer the stable branch. Even if the devs decide to not include it, maybe make it so we can easily build it ourselves with about:config. I can build and sideload APKs via ADB. Also I myself (many years ago) used to turn on entries I shouldn't, but I learned when everything crashed. Never blamed the devs or software. No reason to blame software for user error and remove a feature with that in mind.

OK, try adding "This might void your warranty" warning.

stefankeys commented 4 years ago

about:config is pretty useful and makes firefox more customizable. I think that as long as there is an easy way to reset all the settings to default it shouldn't be a problem. I don't see why the option to disable the warning should be removed though.

techboyg5 commented 4 years ago

about:config is pretty useful and makes firefox more customizable. I think that as long as there is an easy way to reset all the settings to default it shouldn't be a problem. I don't see why the option to disable the warning should be removed though.

Well there isn't even a warning in the first place.

lindongbin commented 4 years ago

It's time to enable about:config on all versions.

filips123 commented 4 years ago

I created enhancement request on Bugzilla for GeckoView to display warning when opening about:config. With that warning (similar to desktop one), unexperienced users will be warned that changing preferences can break things so about:config could be enabled on all versions without too much danger to users.

Also, can we get any confirmation from devs if they would consider enabling (and then enable) about:config on stable once that warning is added/displayed?

freebrowser1 commented 4 years ago

I agree: about:config should remain in final release of Firefox Fenix with a warning 'this voids your warranty' or something alike, like the desktop/laptop version. I entered a duplicate ticket not knowing this one already existed. https://github.com/mozilla-mobile/fenix/issues/12288

nbmrjuhneibkr commented 4 years ago

about:config has real use cases that have nothing to do with debugging. Users shouldn't be forced to use unstable builds to have access to these settings.

chris-blay commented 3 years ago

I'd like to configure layout.css.text-decoration-skip-ink.enabled = false for accessibility purposes in Fenix 79 (stable) but am currently unable to access about:config. Please help!

crisalis2 commented 3 years ago

I won't use Fenix if I can't access about:config, and no, I'm not using as a main browser a beta or nightly version where stability is not as good and telemetry is most likely enforced. Please reconsider this. Even Chrome has access to the flags.

cadeyrn commented 3 years ago

telemetry is most likely enforced

Telemetry is not enforced, of course…

crisalis2 commented 3 years ago

telemetry is most likely enforced

Telemetry is not enforced, of course…

Okay, I was under the impression that the main point of nightly builds was providing feedback and some telemetry wasn't optional (in the normal settings, some data collection options that do show in Beta don't show in Nightly).

Mugurell commented 3 years ago

Asking @vesta0 for if we want to enable this in the near future as there is already a contributor PR for it.

filips123 commented 3 years ago

Do you think you could merge that PR if about:config would display warning similar to one on desktop? I submitted revision to GeckoView to display warning but it is not merged yet due to problems with localisation.

Alternatively, maybe even better, could you enable general about:config access and editing but prevent editing specific preferences which are known to cause big or unrevertable problems with Firefox? Write access to that dangerous preferences could then be enabled with runtime config or other preference, but probably only on beta, nightly or custom builds, which would be useful for developers.

hwinnemoe commented 3 years ago

The problem I see here is that recovering from an about:config setting that breaks Firefox on Android in a way that about:config becomes inaccessible requires either:

One solution for this could be to inform the users to use sync to avoid data loss on the about:config warning page.

stephanemagnenat commented 3 years ago

An example problem with about:config removed: My Firefox Android just upgraded to the latest version, and it seems that I had some things forced through previously (GPU rendering related, about:support tells me), but now I have no way to set them back to default.

dessant commented 3 years ago

It may be better to warn users in a prominent way about data loss and link to a troubleshooting guide when they visit about:config, with information on how to enable Firefox Sync before tweaking, or clearing app data on major issues, than to take away a feature that has defined why many of us chose Firefox over other browsers.

As it currently stands, some of the Chromium forks on Android are more customizable and have better extension support than the new Firefox for Android, and I think this will only hurt user adoption, and the retention of existing users.

For me Firefox was always about user freedom, and about choosing to educate users rather that take their choices away, and I'm sad to have watched those values slip away over the last few years, to be replaced with the user-hostile mentality of Apple.

opusforlife2 commented 3 years ago

@hwinnemoe

The problem I see here is that recovering from an about:config setting that breaks Firefox on Android in a way that about:config becomes inaccessible requires either: root access or completely wiping/resetting the app and thus losing all non-synced data

I think the major hangup everyone seems to have with enabling it in release is what you say: "What happens if a user screws up?"

2080, if implemented, can handily solve this problem. The about:config warning page could advise the user to export their pure/untouched profile and keep it in a safe place as long as Fenix is installed.

Then, even if the user screws up so badly that Fenix crashes upon startup, you could prompt the user to restore a previously working saved profile.

2080 will also let users experiment with about:config prefs when debugging issues, by taking multiple (timestamped?) backups.

hwinnemoe commented 3 years ago

@opusforlife2 Yes, that would be another option if implemented :) I was limiting my proposal for data recovery to already existing functions like sync but this was not meant to be an exclusive solution. In any case, I think there should be some way for users to easily recover from about:config related issues and users should be made aware of data loss risks. How to tell that an about:config setting is the culprit for an issue might be much harder for non-tech users, though 🤔

opusforlife2 commented 3 years ago

What if there is a short toast (so it doesn't have to be interacted with) shown every time the user opens about:config that simply reminds users to "Take a backup of your profile just in case"?

filips123 commented 3 years ago

Then, even if the user screws up so badly that Fenix crashes upon startup, you could prompt the user to restore a previously working saved profile.

Yes, this would be good idea. However, it might be possible (I don't know how much breakage can changing wrong preferences cause) that even "recovery system" won't work. This should also be something to consider.

klint commented 3 years ago

Hi. Sorry to intrude in the conversation, but I just wanted to report that many negative comments on Google Play point to the lack of about:config (and also to the lack of comprehensive release notes and the lack of a comprehensive walkthrough in the new app, too disruptive and with popular features still absent -like "where have my downloads gone?" ;) -... but that is another story). What is the difference, if any, with the way Firefox Desktop handles the access to about:config? Users going to that extent are perfectly aware of the risks and ready to lose everything (as they are advanced users in general, you don't stumble on about:config unwillingly).

The only issue that I can see is from a maintainance perspective, as it could confuse the bug hunting during the rollout of this major new version.

filips123 commented 3 years ago

What is the difference, if any, with the way Firefox Desktop handles the access to about:config?

On desktop, there aren't many preferences which can completely break Firefox. And even if you manage to completely break something to the way Firefox does not start, you can always just reinstall it and keep profile, or just manually edit those preferences or fix broken things in your profile directory.

On Android, I think there are some preferences that need to be set in specific way to enable Fenix to work correctly with GeckoView. And if they are changed in wrong way, this could prevent it from being usable. Another problem is that you can't manually edit profile directory to fix it on Android without rooting the phone, so your only option would be app reinstall which means you lose all your data (if it is not synced).

Users going to that extent are perfectly aware of the risks and ready to lose everything (as they are advanced users in general, you don't stumble on about:config unwillingly).

Here, I think developers are mostly afraid of users who don't know what about:config actually is and what can it do, but just see some guide on internet "how to make Firefox more private" or "how to make Firefox faster" and then just blindly copy all things listed there. And most of those guides are made for desktop so some preferences that work perfectly fine there might cause big problems on Android.


So the solution is that users are aware of this and that they can easily fix problems. I think that this can be done in multiple steps/ways (and more of them should be used at the same time):

andreicristianpetcu commented 3 years ago

I dont't get why people in this thread, "power users", don't simply use beta? about:config works great in beta. Beta is a much better browser than stable. Stable is for non-technical relatives.

freebrowser1 commented 3 years ago

The problem I see here is that recovering from an about:config setting that breaks Firefox on Android in a way that about:config becomes inaccessible requires either:

* root access
* or completely wiping/resetting the app and thus losing all non-synced data

One solution for this could be to inform the users to use sync to avoid data loss on the about:config warning page.

So why can the profile not being imported from and exported to /sdcard what many other apps do ? That makes it simpler to restore to previous settings when 'about:config' goes wrong without needing root access what 99+ of the users do not have.

And, in general, why does Firefox need a special Android Fenix version ? Costs more maintenance and is more complex.

Why not continuing to use the same code base as the 'desktop' version with only some minor adaptations for Android like all Android versions of 68.x and below ? All about:config settings work and almost all 'desktop' plugins work flawlessly. Modern smartphones are just as powerful as desktops. That is the reason I stick with ESR 68.xx rather than the limited Fenix, which is just a partly undressed Firefox.

filips123 commented 3 years ago

So why can the profile not being imported from and exported to /sdcard what many other apps do ?

What if you don't have SD card?

And, in general, why does Firefox need a special Android Fenix version ? Costs more maintenance and is more complex.

What do you mean with this?

Why not continuing to use the same code base as the 'desktop' version with only some minor adaptations for Android like all Android versions of 68.x and below ?

Old Firefox for Android was done in some "hacky" way, was not very Android-native and harder to maintain. It also didn't have very good performance compared to Fenix. Fenix is done in Android-native way, is easier to embedd and easier to maintain.

Modern smartphones are just as powerful as desktops.

Not everyone has modern powerful smartphone.

klint commented 3 years ago

@dessant to clarify immediately, I'm not a Mozilla employee, I'm just a volunteer who helps responding to dissatisfied users on Google Play (they rant a lot these days), and I think that the Fenix official release was rolled out too soon (with some immediately visible bugs, some missing basic features, and quite a lack on communication towards users, leaving them with a fait accompli after a migration that they couldn't prevent and that is quite disruptive feature-wise). We are loosing long-time users for that reason, whereas we have a good product actually, just missing some last minute polish and solid communication. I hope the rollout will be suspended until the first identified issues have been corrected.

Yet imho all the cases you are describing should be tweakable from within the parameter menu in the end, not with some magic in the about:config section. This is more the way it is done on Firefox Destkop, if I'm not mistaken. Firefox Android for entreprises should receive a special treatment with ESRs and so on. Will there be an ESR program for Firefox Android as well? I'm not sure. And if not, I wouldn't dare using Firefox on Android as an entreprise :)

opusforlife2 commented 3 years ago

@filips123

What if you don't have SD card?

The user said "exported to /sdcard" which is just a path shortcut (symlink, if you know that term) to the internal storage, like to "storage/emulated/0" on many devices. Not an actual SD Card. Just the regular ol' internal storage you can see in file explorers. So, essentially, @freebrowser1 is repeating #2080.

On desktop, there aren't many preferences which can completely break Firefox. And even if you manage to completely break something to the way Firefox does not start, you can always just reinstall it and keep profile, or just manually edit those preferences or fix broken things in your profile directory.

On Android, I think there are some preferences that need to be set in specific way to enable Fenix to work correctly with GeckoView. And if they are changed in wrong way, this could prevent it from being usable. Another problem is that you can't manually edit profile directory to fix it on Android without rooting the phone, so your only option would be app reinstall which means you lose all your data (if it is not synced).

Absolutely. It is worth pointing out that about:config was made for desktop Firefox. It was never modified for use on Android. Fennec was using it as is.

If this is something that the Fenix team or a contributor is willing to take up, there would probably be certain prefs that exist on desktop, but shouldn't be shown or be modifiable on Fenix, and there might even be new prefs that would need to exist on Fenix, but not on desktop Firefox.

I just had another idea. We've already discovered Fenix has a Secret Settings menu. Why not put about:config as a sub-menu under Secret Settings and enable it in Release? XD

After all, Developer Settings on Android can be enabled by repeatedly tapping the Build number on all production devices. It's a method people will be used to.

stephanemagnenat commented 3 years ago

I like a lot the idea of @opusforlife2 to have a developer mode that one can enable by tapping. Based on experience, one can easily break Android using the developer menu, in particular due to bugs related to the developer options. So one can end up with an unusable Android device that requires factory reset using these options, which are available in all devices. So having a way to access options in Firefox that can "only" requires an app settings wipe in the worst case is really not that bad.

cadeyrn commented 3 years ago

I just had another idea. We've already discovered Fenix has a Secret Settings menu. Why not put about:config as a sub-menu under Secret Settings and enable it in Release?

So having a way to access options in Firefox that can "only" requires an app settings wipe in the worst case is really not that bad.

I disagree. It's not a protection at all. As operator of the by far largest Firefox support platform in the German speaking regions I know that people do everything without thinking that an arbitrary website writes. Even if the recommendations of the website are nonsense and even if they are intended for desktop users, people will still do it and also try on Android. If about:config is hidden behind a secret flag it won't change anything because then websites will explain how people can unlock this page on Android and people will just do it. And there is really no advantage to put this behind a secret flag because about:config is already "hidden and not discoverable". So either you don't know this page or you know it but then you probably also know the need to unlock this page in the secret settings. And even if not, then they will ask a search engine and have the answer after two seconds. If a user wants to use about:config the user will be able to use it if it's available. A secret setting to unlock it won't change anything.

freebrowser1 commented 3 years ago

I tried Firefox Beta from the Play Store 79.1.0 beta and there about:config does work ! I hope this works in the final version.

And an import / export should be very useful.

cadeyrn commented 3 years ago

I hope this works in the final version.

No, it doesn't. This is what this issue is about.

And an import / export should be very useful.

That's a different request and doesn't belong to this issue.

opusforlife2 commented 3 years ago

I disagree. It's not a protection at all.

Of course it is not. I suggested Secret Settings simply for the sake of UX and familiarity, and because it would look neat. :P Regarding protection from the dangers of about:config, I've already suggested #2080 above.

freebrowser1 commented 3 years ago

What are the dangers actually ? That the phone explodes ? If not, an adequate import / export setting can restore settings. And hiding it into 'Secret settings' might be an idea as well. But only advanced users use this. Most housewives and other end-users use the 'builtin' browser or Chrome if using a browser at all. And when it is so 'costly' or 'revenue depleting' to Mozilla, why not make a paid add on of this (and other advanced features) ? Many apps have paid add-ons.

filips123 commented 3 years ago

If not, an adequate import / export setting can restore settings.

Except if changing some settings could break import/export system... But if it can't, great.

And when it is so 'costly' or 'revenue depleting' to Mozilla, why not make a paid add on of this (and other advanced features) ?

No. Just no.

freebrowser1 commented 3 years ago

Well, I noticed now that all features of the 'desktop' Firefox, like about:config are in Fenix, but just artificially crippled by the developers ? What is the purpose of this and why don't the developers listen to the wishes of the users such as in this about:config case ? There is no 'danger' when using about:config, similar things (make an app unusable) can happen with any app or even Android OS itself. When somebody paralyzes Firefox (can also happen on 'Desktop'), the user can uninstall FF and reinstall a clean version.

jawz101 commented 3 years ago

I can see the stance of Mozilla but I also have these things to say about about:config

It needs documentation surfaced within its ui. Both users and Mozilla devs would benefit from this.

eg.

0 - enables
1 - disables
2- etc...

It also needs constraints on what values you can use

if the only values that are applicable are 0,1,2 why can I put a 99999999999999 in the field?

if an acceptable range is 0-15000, why should I be allowed to use 999999999999 at all?

Why can I set apz.max_velocity_inches_per_ms to 'apple'?

This is a bandaid rather than giving that screen more refinement.

prefs should be limited to only those applicable to the platform.

prefs stagnate in about:config. Devs surely focus on their on a niche component and cannot see the utility in why some config settings even exist. A lot of development went into pieces that never see the light of day.

gfx.color_management.enablev4 has been a feature that has been in Firefox for maybe a decade, adds additional color information to photos, yet just sits there.

privacy.first_party_isolate, privacy.resist_fingerprinting, security.mixed_content, etc. prefs are all beneficial to privacy but they aren't surfaced in the main options ui.

And finally, some things should simply be deprecated, locked, or hidden as configurable.

Do I really ever need to toggle network.websocket.allowInsecureFromHTTPS? Has anyone even done this once?

Scrutinizing about:config, as with any other component, would reveal benefits that are not just for the sake of dressing it up. It can land features someone already fleshed out, surface others in the settings ui, find active use cases, harden the browser, and find new cases for enterprise policies.

Check out about:policies#documentation in the address bar. about:policies is a way to toggle prefs to limit or standardize Firefox when deploying it to thousands of computers in a company. If there are pref changes that are commonly set with prefs not already available as a policy, you can introduce more options to this configuration mechanism for wider deployments (e.g. say I deploy Firefox in a kiosk mode that prevents customizing the toolbar and theming. That may be worth a policy option.)

ghost commented 3 years ago

The socks proxy feature is important in the about:config settings. So please do have a quick release:)

freebrowser1 commented 3 years ago

Anyway, why is Mozilla releasing an actually beta release which is not finished and advertized as 'official' and 'customizable' ? This version is not finished at all when it lacks about.config and most extensions. So it is far less customizable than FF 68.11. A software product like Firefox is for the users not for the developers, and here it appears the other way around.

And here I repeat the text of [mcl21014] which I got in my mail and I fully agree, but is probably modded away.

I deep down think it's insane that about:config is blocked in the stable for Android. Stable Chrome that ships with Android lets me go to chrome://flags, heed the warning, and break the browser if I want to. I have broken it with flags before, but guess what? I reverted them after reading documentation via another browser. So Firefox is taking an anti-user, anti-customization stance, and should think things over before shooting it's remaining users and itself in the foot. There's a much more unfiltered version of what I wanted to say. I mean no hatred of Firefox or anyone that works on it, but dang it we're not babies. I've used Firefox for some 12 years as my default and after every stupid move I want to switch to VIvaldi or something else. Take heed, developers, for ignoring users too much backfires as they switch and monetization goes down (from search deals). Mozilla is hurting now and with it's services not taking off it cannot afford to damage itself in various ways. Politicized snippets in the desktop browser are another example. Stick to making a browser and doing a good job of it. Not crippling features and dabbling with politics. It's for the best of the future of Mozilla corporation. Because corporations need revenue, derived from the consumer, to survive. I am upset for the case of the future of the company, and I don't even work there. Just please, go back to your roots and make money at the same time. Or thing will continue to worsen.

klint commented 3 years ago

A software product like Firefox is for the users not for the developers, and here it appears the other way around.

My 2 cts here: I understand your frustration (which I share to some extent), but it also can be that Mozilla is exactly doing what you stated in a first place: a software product for the users not for the developers :) Or maybe stated in another way: a product for the average user not for the power users (in an attempt to extend the user base?).

For it seems to me that about:config and very specific addons are not really critical to the regular users, while the already released addons are enough for this type of user.

So, regular users are being served first at the moment, and power users like you and me will just have to wait a little bit for their favorite features to be back. Please be patient, and you can still go back to FF 68 til then if the missing features are that critical to you. :)

helohe commented 3 years ago

you can still go back to FF 68 til then if the missing features are that critical to you. :)

Downgrading unfortunately does not seem to be that easy, especially on non-rooted phones. Just trying to install an older version of the apk did not work for me. I meanwhile forked the repository though and changed to get the about config back, may compile it myself and install it, that should work for now.

freebrowser1 commented 3 years ago

A software product like Firefox is for the users not for the developers, and here it appears the other way around.

My 2 cts here: I understand your frustration (which I share to some extent), but it also can be that Mozilla is exactly doing what you stated in a first place: a software product for the users not for the developers :) Or maybe stated in another way: a product for the average user not for the power users (in an attempt to extend the user base?).

For it seems to me that about:config and very specific addons are not really critical to the regular users, while the already released addons are enough for this type of user.

Is there ever made a poll ?

So, regular users are being served first at the moment, and power users like you and me will just have to wait a little bit for their favorite features to be back. Please be patient, and you can still go back to FF 68 til then if the missing features are that critical to you. :)

These addons and about:config are not so specific as Mozilla thinks. Read the surge of negative comments on the Play Store. https://play.google.com/store/apps/details?id=org.mozilla.firefox&hl=en&showAllReviews=true

And a FF with all add-ons and about:config still works for the regular user who don't use this. This is another proof that this Fenix is far from ready and still in beta stage.

And, otherwise, release a Firefox 'light' (which is actually this Fenix release) for 'regular' users and an updated 79 or 80 'pro' with the same code base as the macOS / Windows / Linux edition just like FF 68 for Android. But most 'regular' smartphone users use the builtin browser (usually Chrome) if they use a browser at all instead of 'dedicated' apps.

freebrowser1 commented 3 years ago

Why so many thumbs down ?

cadeyrn commented 3 years ago

Why so many thumbs down ?

Probably because your comments are disrespectful to the developers and not constructive or helpful at all. You should think more about your words… It's possible to express your agreement to a proposal in other ways. And deliberately quoting deleted content is really not okay…

jawz101 commented 3 years ago

Why so many thumbs down ?

Probably because your comments are disrespectful to the developers and not constructive or helpful at all. You should think more about your words… It's possible to express your agreement to a proposal in other ways. And deliberately quoting deleted content is really not okay…

They weren't disrespectful. I can think of a lot of ways to be disrespectful

cadeyrn commented 3 years ago

They weren't disrespectful.

I don't know if you're kidding but to say that the product is "not finished at all" or "Firefox is taking an anti-user, anti-customization stance" is very disrespectful to the developers and not helpful in any way.