Improving Firefox Responsiveness on macOS

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • darwin-xnu

    Discontinued Legacy mirror of Darwin Kernel. Replaced by https://github.com/apple-oss-distributions/xnu

  • There's quite a bit of macOS that's open source. The author links to source code in Firefox, and that source code has links to Apple's source code:

    > // For information about the following undocumented flags and functions see

    > // https://github.com/apple/darwin-xnu/blob/main/bsd/sys/ulock.... and

    > // https://github.com/apple/darwin-libplatform/blob/main/privat...

  • profiler

    Firefox Profiler — Web app for Firefox performance analysis

  • To quote some relevant comments on other threads here:

    > If you could grab a profile of the problem with the Firefox profiler and file a bug it would be greatly appreciated. From the sounds of it it's probably an edge-case we're not aware of where Firefox performs very poorly. The problem with this kind of things in Mozilla is that we're often blind until someone brings up the issue and notifies us.

    https://news.ycombinator.com/item?id=33156379

    > Here are instructions of using the profiler with just a few clicks: https://profiler.firefox.com/

    https://news.ycombinator.com/item?id=33156317

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • WebKit

    Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.

  • You're confusing general purpose locks with special-purpose ones used in the memory allocator. Firefox has its own GP locks, you can find them here: https://searchfox.org/mozilla-central/search?q=&path=xpcom%2...*

    However those are not suitable for use in the memory allocator, and neither are WebKit's. WebKit uses os_unfair_lock within its memory allocator:

    https://github.com/WebKit/WebKit/blob/520379e30f3b2b6d4de995...

    And so does Chromium:

    https://source.chromium.org/chromium/chromium/src/+/main:bas...

  • libplatform

  • Last commit was earlier this year for a Monterey release: https://github.com/apple-oss-distributions/xnu. The next one will almost certainly be for the first build of Ventura. Here is the header for the (private) function os_unfair_lock_lock_with_options: https://github.com/apple-oss-distributions/libplatform/blob/.... Synchronization primitives happen to be one of the things Apple is pretty good about releasing the source to.

  • TabMixPlus

    New Tab mix plus for modern Firefox

  • I finally got time to try https://github.com/onemen/TabMixPlus and it worked! Thank you for the suggestion.

  • FlameGraph

    Stack trace visualizer

  • When was the last time you needed to read assembly code to debug a kernel-level issue in FOSS software? There's a lot of software you can use to profile the entire kernel and userspace[0], or explore the stack trace[1] of your software. If you're not using those and instead debugging your software by counting SIMD calls in the Ghidra editor, you're wasting an unconscionable amount of time.

    [0] http://www.sysprof.com/

    [1] https://github.com/brendangregg/FlameGraph

  • darwin-libplatform

    Discontinued Legacy mirror of Darwin Platform Library. Replaced by https://github.com/apple-oss-distributions/libplatform

  • There's quite a bit of macOS that's open source. The author links to source code in Firefox, and that source code has links to Apple's source code:

    > // For information about the following undocumented flags and functions see

    > // https://github.com/apple/darwin-xnu/blob/main/bsd/sys/ulock.... and

    > // https://github.com/apple/darwin-libplatform/blob/main/privat...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • uBlock

    uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.

  • Do you mean uBlock Origin is no longer being maintained?

    https://github.com/gorhill/uBlock/releases shows many recent releases?

  • firefox-ios

    Firefox for iOS

  • I'm fine with calling Blink based browsers "Chrome skins" and WebKit based browsers "Safari skins" but only if we all understand that "skin" isn't just a cosmetic thing. Firefox on iOS has its own features, settings, history, bookmarks, sync system, and other stuff that can create real, noticeable differences. Even if you assume "skin" means just the UI behavior, wouldn't it make sense that there could be a Firefox-specific bug with the URL bar?

    To answer the GP's question, this does seem to be a known issue that might be improved with a future update to the Places database: https://github.com/mozilla-mobile/firefox-ios/issues/11775

  • iceweasel

    Official repositories at https://hg.mozilla.org.

  • simple-tab-groups

    Create, modify and quick change tab groups. Inspired by the Tab Groups app :)

  • Are there reasons that the "Simple Tab Groups" extension isn't suitable for you? It seems to be well-maintained, cleverly uses Firefox's "hide tabs" API to keep a single window behind-the-scenes, and has integration with lots of other features like Firefox's containers. I think it's an indirect descendent of the old Tab Groups extension when it was spun out of Firefox.

    https://github.com/drive4ik/simple-tab-groups

  • xnu

  • Last commit was earlier this year for a Monterey release: https://github.com/apple-oss-distributions/xnu. The next one will almost certainly be for the first build of Ventura. Here is the header for the (private) function os_unfair_lock_lock_with_options: https://github.com/apple-oss-distributions/libplatform/blob/.... Synchronization primitives happen to be one of the things Apple is pretty good about releasing the source to.

  • paxmod

    🕊️ Firefox add-on for multi-row tabs and site-dependent tab colors

  • extension-save-to-pocket

    Save to Pocket is a browser extension that is used to save pages to a connected Pocket account

  • It has been "owned up" to: https://github.com/Pocket/extension-save-to-pocket/issues/75...

  • ladybird

    Discontinued The Ladybird web browser

  • Google is dominating, pushing through Android and via Googles-Webservices and Microsoft is using it now. A reason to worry because developing new web-engine requires an big effort. For instance Microsoft only allows usage of Microsoft Teams Web with a webbrowser based upon Blink. So were back in 2002?

    WebKit features also WebKit2Gtk (Epiphany) and Qt5-webkit (Otter) with native integration. They use the native toolkits, which is an advantage! Interaction with the open-source community around WebKit seems rather good and the engine is integrated by others. Gecko seem not to be integrated by others, but by forks only? You remember when Chrome was considered slick and fast? Originally Google used the native toolkit on every platform but know they use an own solution on every platform, like Firefox.

    Maybe there is a new kid on the block:

    https://github.com/SerenityOS/ladybird

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts