Ask me anything!

Have a question you always wanted to ask Moonchild but never did? Now's your chance!
From 2026-03-08 to 2026-03-15 I'll be open to any question by the community, after which I'll provide answers.

Go here to participate: https://forum.palemoon.org/viewtopic.php?f=66&t=33222

https://forum.italia.it/ (discourse)

For support with specific websites

Moderator: trava90

Forum rules
Please always mention the name/domain of the website in question in your topic title.
Please one website per topic thread (to help keep things organized). While behavior on different sites might at first glance seem similar, they are not necessarily caused by the same.

Please try to include any relevant output from the Toolkit Error Console or the Developer Tools Web Console using the following procedure:
  1. Clear any current output
  2. Navigate or refresh the page in question
  3. Copy and paste Errors or seemingly relevant Warnings into a single [ code ] block.
Lucio Chiappetti
Keeps coming back
Keeps coming back
Posts: 897
Joined: 2014-09-01, 15:11
Location: Milan Italy

https://forum.italia.it/ (discourse)

Post by Lucio Chiappetti » 2026-02-07, 12:06

Again problems with https://forum.italia.it/

After I applied the solutins supplied by adoxa in the now locked thread https://forum.palemoon.org/viewtopic.ph ... 52#p235687
it has been working until last week.

Now in my default condition (uBO) comes out blank. If I disable uBO one gets the "Unfortunately, your browser is unsupported. Please switch to a supported browser to view rich content, log in and reply." top banner.

Code: Select all

Timestamp: 07/02/26 13:07:27
Error: uncaught exception: Unsupported browser detected
Timestamp: 07/02/26 13:07:27
Error: ReferenceError: $ is not defined
Source File: https://forum.italia.it/theme-javascripts/512e7a1a244c9d9b03423c63b6ed5cf262ea023b.js?__ws=forum.italia.it
Line: 173\Timestamp: 07/02/26 13:07:27
Error: ReferenceError: $ is not defined
Source File: https://forum.italia.it/theme-javascripts/745566d9b902edc0c5a270d268ac8442136117fb.js?__ws=forum.italia.it
Line: 4
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)

User avatar
adoxa
Astronaut
Astronaut
Posts: 601
Joined: 2019-03-16, 13:26
Location: Qld, Aus.

Re: https://forum.italia.it/ (discourse)

Post by adoxa » 2026-02-08, 01:51

It wants FinalizationRegistry; here's the userscript used by Basilisk (albeit using window.FinalizationRegistry rather than just FinalizationRegistry).

Code: Select all

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
// ==UserScript==
// @name         FinalizationRegistry Polyfill (best-effort)
// @namespace    internal-userscripts
// @description  Provides a minimal FinalizationRegistry stub for environments without native support. This cannot observe garbage collection; callbacks run asynchronously after register (best-effort stub).
// @match        *://*/*
// @grant        none
// @run-at       document-start
// ==/UserScript==
(function () {
  "use strict";

  function noop() {}

  // This implementation cannot receive GC notifications. As a best-effort
  // approximation it runs the cleanup callback asynchronously for every
  // registration unless the entry is unregistered first.
  function PolyfillFinalizationRegistry(cleanupCallback) {
    if (typeof cleanupCallback !== "function") {
      throw new TypeError("cleanup callback must be a function");
    }
    this._cleanupCallback = cleanupCallback;
    this._entries = new Map();
    this._pending = false;
  }

  PolyfillFinalizationRegistry.prototype.register = function (target, heldValue, unregisterToken) {
    if (target == null || (typeof target !== "object" && typeof target !== "function")) {
      throw new TypeError("register target must be an object");
    }
    // Store by token if provided; fall back to target identity.
    const key = unregisterToken || target;
    this._entries.set(key, heldValue);

    // Best-effort: fire cleanup almost immediately to mimic GC completion.
    if (!this._pending) {
      this._pending = true;
      setTimeout(() => {
        this._pending = false;
        this._runCleanup(this._cleanupCallback);
      }, 0);
    }
  };

  PolyfillFinalizationRegistry.prototype.unregister = function (unregisterToken) {
    if (unregisterToken == null) {
      return false;
    }
    return this._entries.delete(unregisterToken);
  };

  PolyfillFinalizationRegistry.prototype._runCleanup = function (cb) {
    cb = cb || noop;
    const entries = Array.from(this._entries.values());
    this._entries.clear();
    for (const held of entries) {
      try {
        cb(held);
      } catch (e) {
        // Swallow to continue other callbacks.
      }
    }
  };

  PolyfillFinalizationRegistry.prototype.cleanupSome = function (callback) {
    this._runCleanup(callback || this._cleanupCallback);
  };

  // Expose the stub globally (override to guarantee presence).
  // eslint-disable-next-line no-global-assign
  window.FinalizationRegistry = PolyfillFinalizationRegistry;
  try {
    // Marker for debugging/verification.
    window.__internalUserscriptsFinalizationRegistryPolyfill = true;
  } catch (e) {}
})();

Lucio Chiappetti
Keeps coming back
Keeps coming back
Posts: 897
Joined: 2014-09-01, 15:11
Location: Milan Italy

Re: https://forum.italia.it/ (discourse)

Post by Lucio Chiappetti » 2026-02-08, 11:30

I hoped you would find a solution, but based on modify-http-response (you are the wizard).
Where should I put such userscript ?
(if it requires another addon I guess I'll use chrome ... I visit such site once per week)
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)

User avatar
adoxa
Astronaut
Astronaut
Posts: 601
Joined: 2019-03-16, 13:26
Location: Qld, Aus.

Re: https://forum.italia.it/ (discourse)

Post by adoxa » 2026-02-08, 14:11

I think it's technically possible to use it without another extension, but I'm not sure of the details; I've used Greasemonkey, or there's Guerilla Scripting. I could probably come up with a filter if you really want (looks like I've done it twice before...).