question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Adapting & fixing core settings

See original GitHub issue

Following https://github.com/intika/Librefox/issues/34 many settings have to be defaulted to a different value while leaving the choice for the user… Here are some pro developer feedback for Librefox

Eloston

What do you think made ungoogled-chromium successful ?

“Success” is a pretty broad term. I will assume you define “success” based on the number of users, what users say about the project, and the kinds of bug reports this project receives. In that case, there are several points I can note (in no particular order of importance):

  • Continual desire to improve the project and oneself. I think this is the most important point. I mainly gather ideas based on feedback, experiences from this and past software projects, and experimenting with software in general. I also gather ideas by reading code and docs from Google, reading technical blog posts about software, and reading about new developments in software engineering.

  • Dedicating a lot of time to the project. Especially in the following areas:

  • Consistent attention to overall quality of documentation, code, and user experience (building the browser, using the browser, downloading pre-built binaries, reading documentation, etc.)

    • Responding to feedback on GitHub.
    • Considering all aspects of a bug, enhancement, request, question, etc.
    • Leaving a good impression on anyone who comes by. This happens in a number of ways, but a lot of this happened via the points I made above.
    • Contributors keep the momentum going. Particularly in updating Chromium versions.
    • The Chrome/Chromium userbase is large. The number of people concerned about privacy/security and Google’s role in privacy is also decently large. Having a number of people interested in a project like this helps a lot.
    • In the beginning (some time before the first spike of users), I went to a few different places to advertise this project. Then, I let other people spread the word. This works because of the number of interested users.

Also one thing, a lot of people asked me about mozilla trademark (Firefox) while i was disturbing a patched version it’s curious that uc did not face this problem, i guess google folks are more permissive.

This project is not widely known, and people aren’t confusing it with the trademarked Chrome and Chromium. If it becomes an issue, then I’ll be fine with changing it.

Do you have any advice/comments regarding the direction of my project ?

I don’t know much about Firefox, so I can’t give you any specific advice. Hopefully my comments on what made this project successful will help you too. Regardless, I am glad that my project has inspired you to create Librefox. I wish you luck with it!

Moonchild

  • Block third-party cookies: Can block some sites (Add it as a choice)
  • Completely disable the password manager how does this improve privacy, exactly, by forcing users to type their credentials every time? ( … )
  • Completely disables IPv6 support. ( … )
  • Completely disables all parts of the blocklist, including known broken gfx driver issues. This will expose users to many issues with known graphics driver problems ( … )
  • Completely disables integration with the add-ons site. (addon can still be installed its just that there is no integration - add it as a choice ?)
  • Completely disables extension updates (Add it as a choice)
  • Completely disables Windows jumplists, because… ( … )
  • Completely disables pre-loading of known HSTS domains; this opens the user up to first-time-visit spoofing. HSTS preloading is harmless, blocked because it’s supplied by Mozilla? ( … )
  • Completely disables OCSP, but enables OCSP stapling, which won’t work with disabled OCSP. ( … )
  • Conflicting prefs with result that at best a CRL fallback is used, and at worst no checking is performed at all and revoked certs are accepted as secure. Well done Librefox, you broke https authentication checks. ( … )
  • Not forced but default; WebGL and layers acceleration is force-enabled. This will break the browser on many more systems because of GFX issues (especially hybrid and mobile chips), especially if blocklist entries aren’t checked or used. ( … )
  • Completely disables webgl2 and forces webgl minimum-capability mode. This pretty much makes webgl useless. No reason to do this, since the (already enforced) fingerprinting protection already mitigates any potential webgl leaks. Fingerprinting protection doesn’t enforce minimum capability mode for a reason. ( … )
  • Disables clipboard events, breaking many sites that use JS to place data on the clipboard… ( … copy button still works)
  • Done with lockPref (Add it as a choice)
  • Considering there are plenty of duplicate entries in there you may find it frustrating that it doesn’t take unless you hunt down all copies of a setting ( … There is no duplicate but related settings).
  • IMHO it’s just another example of copy-pasta of insane configurations ( … Settings have been tested but any way)
  • It’s not even a rebuild, it’s just reconfigured ( … )
  • Check wolfbeast reply

Pants

  • Extensions update notice
  • Warn and provide a checklist (because of insane niche settings)
  • Provide the support for users to make changes and understand wtf just happened
  • Librefox is breaking shit left right and center - it’s too much mate! It’s a shell of a browser and it’s kinda dangerous.
  • The project needs to be differentiated (Currently it’s reinventing the wheel)
  • The “Dangerousness” of some settings
  • Added prefs from god knows where (We don’t add everything for a reason, so you’ll need to look at that as well)
  • There’s the lock pref stuff
  • Stripping important things out like Safe Browsing
  • Dropping recommending extensions
  • New users may be put at risk.
  • People can achieve what you’re done with a user.js - sure, I haven’t exactly followed what core FF changes you have done, but they aren’t needed IMO.
  • You have to assume that anyone who uses your product has no knowledge or skills 😃
  • Wiki full of things like important stuff to check when first getting it. recommended extensions.
  • You have a lot of work in front of you, and I can’t help but feel you had no idea that this will suck the life out of you, and consume all your time. I don’t want you to die intika , I like ya. kiss
  • Don’t listen to some of the rabid commentators on your repo. Just because that’s how they like it, doesn’t mean it’s a good default (I have read some ludicrous ideas from some of them already).

Also, already looked at, but need to re review for new version

/* ALREADY COVERED: by master pref extensions.pocket.enabled ***/
    extensions.pocket.api                                                ""
    extensions.pocket.oAuthConsumerKey                                   ""
    extensions.pocket.site                                               ""
/* INFO URLS ETC: require user interaction (e.g Help>Submit Feedback) ***/
    app.feedback.baseURL                                                 ""
    app.releaseNotesURL                                                  ""
    browser.contentblocking.reportBreakage.url                           ""
    datareporting.healthreport.infoURL                                   ""
    toolkit.crashreporter.infoURL                                        ""
    toolkit.telemetry.infoURL                                            ""
    privacy.trackingprotection.introURL                                  ""
/* DEFAULT IS SAME
   this is generally a bad idea: if FF disables something due to a security concern, the
   end user who doesn't keep up to date with changes 
   (IF you do them) is now fucked over) ***/
    browser.offline-apps.notify                                          true
    browser.safebrowsing.passwords.enabled                               false
    html5.offmainthread                                                  true
    security.sri.enable                                                  true
    security.ssl3.ecdhe_ecdsa_aes_128_gcm_sha256                         true
    security.ssl3.ecdhe_ecdsa_aes_256_sha                                true
    security.ssl3.ecdhe_ecdsa_chacha20_poly1305_sha256                   true
    security.ssl3.ecdhe_rsa_aes_128_gcm_sha256                           true
    security.ssl3.ecdhe_rsa_aes_256_sha                                  true
    security.ssl3.ecdhe_rsa_chacha20_poly1305_sha256                     true
/* NOT PRIVACY etc related ***/
[i] browser.download.animateNotifications                                false
    browser.tabs.closeTabByDblclick                                      true
/* covered by dom.enable_performance (& also RFP) ***/
    dom.enable_performance_navigation_timing                             false
/* is only exposed to chrome 
   ( https://trac.torproject.org/projects/tor/ticket/27268#comment:2 ) ***/
    dom.mozTCPSocket.enabled                                             false
/* only used in a single test ***/
    browser.formfill.expire_days                                         0
/* specifically removed because people don't understand it 
   (and we don't want to encourage Tor over FF) ***/
[i] network.dns.blockDotOnion                                            true

Issue Analytics

  • State:open
  • Created 5 years ago
  • Comments:8

github_iconTop GitHub Comments

3reactions
wolfbeastcommented, Dec 28, 2018

@Thorin-Oakenpants I actually only lifted out the ones that are severely breaking - I didn’t comment on any that would be a good choice for this product with some breakage, but as you said yourself it breaks left right and center, as well as a number of things that aren’t directly exposed to the user but do break under the hood (e.g. OCSP and blocklisting). I don’t think most of what is done is insane, but some things that are done are clearly wrong either out of ignorance or because things haven’t really been thought through before changing the settings. Some things should simply not be forced differently because all they do is break stuff with no benefit.

@intika : I understand you want to prevent calling home as much as possible, so from my own experience and the same desire for Pale Moon, here are some things to consider to improve without adding more exposure to mozilla:

  • Re-enable HSTS preloading. This list is hard-coded in the build and won’t download anything from Mozilla. It does have a validity period as well so even if your builds fall behind there is no danger as the internal preload list will be discarded.
  • Re-enable the blocklist to prevent known dangerous and broken combinations in the graphics and plugins sections.
  • Either disable Kinto blocklist updates or host them yourself. Disabling the updates will have it fall back to the binary-supplied list which is still better than no list at all.
  • Enable OCSP and OCSP stapling. Most web servers with https support stapling, so there won’t be the perceived privacy issue of contacting OCSP servers in that case. Where OCSP direct requests are used, it’s generally not enough data to profile anything (since it will verify a certificate only once per https session), and to be fair OCSP servers are already too loaded to have tracking added to them (often so much that OCSP server connections prove unreliable from end-user machines in a lot of cases)
  • Enable IPv6. Or give the user a clear choice when installing it which protocols to enable. While IPv4 is still much more prevalent for home connections, there is a slow but steady adoption of IPv6, so Librefox should be ready to accept it when it becomes available.
  • Enable the password manager, but strongly suggest a sufficiently-long master password to be used. (10 or more characters)
  • Enable Windows jumplists. At most this would be a local privacy concern, which is in the ream of user choice (they can use Private Browsing to ensure local privacy if needed), and it’s a long-standing OS-integration feature that many people use to varying degrees.

Other things are entirely at your discretion and a balance between functionality and privacy. It’ll be up to you to determine where you want Librefox to stand in that case.

1reaction
Thorin-Oakenpantscommented, Dec 28, 2018

an example

Enable IPv6

After 3.5 years of NOT disabling ip6 … I did (in the ghacks user.js). I did this after user feedback. I also including setup tags, etc … and we weighed up the pros and cons - it doesn’t break anything AFAIK, and most people worldwide can;t even use it … and it something that should be handled on a network level …

but it is a privacy/tracking risk, and it can compromise VPNs (when not set up correctly), etyc … but that information is in our single point of reference … the user.js itself … knowledge is power

so we flipped it, after really* thinking about it, after consulting users, and built in fallbacks for end users

^^ this is what the llibrefox project faces. Its not easy throwing 200 or 300 changes to prefs (a lot are enforcing defaults) … I have about 90 odd (out of 450+ in FF60+) that break something - whether that be UI behavior or web sites or performance … and the permutations of 90 items is astronomical … which is why its so important to outlay expectations, provide info and an easy way to get to it and decipher it, etc

I’ll stop now … time for something else

Read more comments on GitHub >

github_iconTop Results From Across the Web

How To Enable All Cores in Windows
Core Settings In Windows 10 · Type 'msconfig' into the Windows Search Box and hit Enter. · Select the Boot tab and then...
Read more >
How to Fix That Core Shot in Your Skis or Snowboard
Without proper airflow, your goggles will fog—pack an extra needle and floss in your repair kit so you can adjust as needed.
Read more >
Adjusting settings for Avast Antivirus Core Shields
Adjust sensitivity​​ To change the sensitivity of your Core Shields: Open the settings screen for all Core Shields. Click and hold the green ......
Read more >
How to Overclock Your Unlocked Intel® Core™ Processor
In addition to adjusting frequencies, the overclocking process might require that you raise select voltages, and adjust other performance settings on the ...
Read more >
Avoid system overloads in Logic Pro
You can adjust EXS24 Virtual Memory settings to optimize its performance. In the EXS24 Parameter window, click the Options button, then select ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found