Nota Mental: Ordenar alfabéticamente las extensiones en el menú unificado de Firefox

Ordenar alfabéticamente las extensiones en el menú unificado de Firefox

Mozilla introdujo en la versión 109 del navegador Firefox el controvertido Botón de extensiones unificadas, el cual aloja un menú similar al encontrado en las no tan recientes versiones de los navegadores basados en Chromium. Pero a diferencia de éste, no es ni tan estético ni mucho menos configurable.

Como se vaya instalando, se van acumulando

El trasfondo de este nuevo menú viene en parte por la adopción del polémico Manifest V3 (Manifiesto Versión 3), en el que el equipo de Mozilla señala en su blog oficial:

El panel de botones mostrará las extensiones instaladas y habilitadas del usuario y su estado de permiso actual. Además de administrar los permisos del host, el panel también permite que el usuario administre, elimine o informe la extensión. Las extensiones con acciones del navegador se comportarán de manera similar en la barra de herramientas que en el panel.

Por lo tanto, no es un mero capricho de Mozilla este nuevo botón (fijo en la barra de herramientas de la interfaz), sino que es apenas un intento apresurado para adaptarse a este Manifest V3, que se trata de una actualización en la estructura del empaquetado de las extensiones.

¿Por qué Mozilla adopta esta propuesta impuesta por Google para con Chrome y otros navegadores basados en Chromium? En resumen, y desde un punto de vista silvestre, sin mucho detalle técnico, para no quedarse por fuera en cuanto al desarrollo y avance de tecnologías basadas en la web, y sobre todo, para que los desarrolladores de extensiones no se vean forzados a realizar tareas tediosas al momento de programar para uno u otro navegador.

El menú de extensiones unificados, interesante pero todavía le falta mucho por pulir
El menú de extensiones unificados, interesante pero todavía le falta mucho por pulir.

Sin embargo, siendo esta su primera aparición, este menú es tonto más que tosco, ya que no ofrece (de momento) una opción para ordenar las extensiones que instalemos con el tiempo, ni mucho menos posee un orden natural, es decir, de forma alfabética. Y sí, es molesto, sobre todo si se tiene una cantidad considerable de extensiones instaladas.

Esta petición, de ordenar las extensiones automáticamente de forma alfabética no es nuevo, data de mucho tiempo (de hecho, el año pasado propuse nuevamente esta idea en los foros de Mozilla Connect). Y es algo totalmente natural en navegadores basados en Chromium.

¿En verdad no hay una forma para ordenar las extensiones?

Como un navegador normal, no. Como un navegador en proceso de desarrollo, sí.

Por lo menos, en la versión 109 de Firefox, algo viable es deshabilitar el botón unificado vía about:config, luego manualmente personalizar el menú de desbordamiento de las extensiones (o el panel donde se alojan las extensiones ocultas en la barra de herramientas), aunque en la versión 111 dejó ser posible jugar con esta configuración. Sin embargo, hay otro método, un poco más simple (siempre y cuando, copiando y pegando código).

Spoiler Alert: Hay que reiniciar el navegador, y cada vez que se instala una nueva extensión, hay que repetir el proceso... hasta que Mozilla busque una mejor forma para personalizar dicho menú.

¡A personalizar, pues!

En tres simples pasos es posible ordenar las extensiones de forma alfabética en el menú de extensiones unificadas
En tres simples pasos es posible ordenar las extensiones de forma alfabética en el menú de extensiones unificadas.

Desde r/Firefox recojo este código JavaScript publicado en GitHub, y del cual rescato sólo la parte que me interesa (que es simplemente la del orden alfabético).

  1. Abrimos la pestaña de Complementos y temas de Firefox, bien sea escribiendo about:addons en la barra de direcciones, o desde el menú principal, o presionando la combinación de teclas Ctrl + Shift + A.
  2. Abrimos la Consola Web del navegador, presionando la tecla F12 o la combinación de teclas Ctrl + Shift + K.
  3. A continuación copiamos el siguiente código JavaScript y lo pegamos en la Consola Web:
javascript: AddonManager.getAddonsByTypes(["extension"]).then((addons) => {
  var order = [];
  addons
    .sort((a, b) => {
      return a.name.localeCompare(b.name);
    })
    .forEach((addon) => {
      if (!(addon.isBuiltin || addon.isSystem)) {
        order.push(
          `"${addon.id.toLowerCase().replace(/[{}@.]/g, "_")}-browser-action"`
        );
      }
    });
  var oVal = Services.prefs.getStringPref("browser.uiCustomization.state");
  var nVal = oVal.replace(
    /(^.*,"unified-extensions-area":\[)[^\]]*(\],.*$)/,
    "$1" + order.join(",") + "$2"
  );
  Services.prefs.setStringPref("browser.uiCustomization.state", nVal);
  console.log(
    `// old\n// Services.prefs.setStringPref("browser.uiCustomization.state", "${oVal.replace(
      /(["\\])/g,
      "\\$1"
    )}");\n\n// new\nServices.prefs.setStringPref("browser.uiCustomization.state", "${nVal.replace(
      /(["\\])/g,
      "\\$1"
    )}");\n`
  );
  console.log(
    `// about:config pref "browser.uiCustomization.state" changed, old/new values are shown above, ** please restart Firefox to apply **`
  );
});

Al finalizar el proceso se nos pedirá que reiniciemos Firefox.

El resultado final (por ahora)

El menú visiblemente ordenado de forma alfabética... hasta que instale otra extensión y deba repetir el proceso
El menú visiblemente ordenado de forma alfabética... hasta que instale otra extensión y deba repetir el proceso.

Así queda el menú de extensiones unificadas, siempre y cuando no instale nuevas extensiones (que lo dudo), y en espera, de algún día (no muy lejano) en la que el equipo de Firefox ofrezca una configuración más que apropiada para todo tipo de usuario.

Previous Post
No Comment
Add Comment
comment url