Aris-t2 / CustomJSforFx

custom scripts
GNU General Public License v3.0
236 stars 22 forks source link

Addon buttons appear to be unremovable. #79

Open mzso opened 1 year ago

mzso commented 1 year ago

Describe the issue: Recently I noticed that I can't move buttons. And I guess it can't be fixed via CSS, so I guess this is a better place for the issue. I guess it's a fairly recent change, but annoying. I just noticed that all the normal addon buttons were moved from the overflow menu to the toolbar. (I can still move icons from XPI addons and added uc.js files there)

Even worse I can't even hide any of them apparently, by moving them to the repository (or whatever it's called).

Also strangely (at least to me) just today I tried an addon, which isn't even recently updated, but it failed to show a button. Then after someone's hint I found that it appears in the Addons button's dropdown menu. Where I could pin it to appear on the toolbar. I never had to pin anything before.

What should have happened instead? Ability to move addon buttons to to the repository or the overflow menu. Hopefully this can be re-enabled. Particularly having all buttons eithe clutter the toolbar, or needing to find them in a huge cumbersome dropdown menu, that also includes disabled addons and others I never need to interact with.

Steps to reproduce the issue? Use addons which have buttons. Try to move them into the overflow menu.

Method used (M1, M2 or M3): xiaoxiaoflood's loader.

Screenshots (drag and drop images into this post): Nothing to show via screenshot

System information OS & OS version: Win10 OS theme: dark? DPI / HiDPI resolution: 150% Firefox or Thunderbird: Firefox Firefox/Thunderbird version: 109.0b9 devedition Firefox/Thunderbird theme: https://addons.mozilla.org/hu/firefox/addon/red-sunset-jen/ Settings this issue occurs with: I don't think, anything's relevant.

Aris-t2 commented 1 year ago

I think this behavior is part of the Manifest v3 change Mozilla implemented in Firefox109+. All other browsers offer something similar. It was not even necessary, because Firefox already had an menu for buttons implemented, the overflow menu.

But now add-on buttons have to be in an own menu or on toolbar. They can not be moved to the "old" overflow menu the way they used to.

JavaScript can move add-on buttons into overflow menu, when you add code manually to a script. You will have to inspect every item inside add-on menu to get the proper id. Afterwards a code like this will achieve the button movement:

(function() {

  document.getElementById("widget-overflow-fixed-list").appendChild(document.getElementById("ublock0_raymondhill_net-browser-action"));
  document.getElementById("widget-overflow-fixed-list").appendChild(document.getElementById("firefox_ghostery_com-browser-action"));
  document.getElementById("widget-overflow-fixed-list").appendChild(document.getElementById("_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"));
  document.getElementById("widget-overflow-fixed-list").appendChild(document.getElementById("enhancerforyoutube_maximerf_addons_mozilla_org-browser-action"));
  document.getElementById("widget-overflow-fixed-list").appendChild(document.getElementById("cookieautodelete_kennydo_com-browser-action"));
  document.getElementById("widget-overflow-fixed-list").appendChild(document.getElementById("jid1-bofifl9vbdl2zq_jetpack-browser-action"));

}());

image

image

Aris-t2 commented 1 year ago

Use this instead the above code:

(function() {

  document.getElementById("widget-overflow-fixed-list").appendChild(document.getElementById("unified-extensions-area"));

}());

It works on the fly and you do not have to look for extension IDs.

Aris-t2 commented 1 year ago

Here is a ready to use script for this: https://github.com/Aris-t2/CustomJSforFx/blob/master/scripts/addon_buttons_in_overflow_menu.uc.js

mzso commented 1 year ago

@Aris-t2 Thanks. So at first I wasn't sure what's supposed to happen. Then I realized that the script only works if I enable it when FF is running, on startup it only hides the unified extensions button. So I need to have it disabled and only enable it when FF is running.

At first I also thought that it would make the addon buttons movable to the overflow menu again. But I saw that it just placed all of them in the overflow menu. And I can only pin buttons that I need if the script is disabled when FF start, otherwise they are inaccessible, due to the missing addon button.

Aris-t2 commented 1 year ago

You can test the scripts modifications from here https://github.com/Aris-t2/CustomJSforFx/issues/80

The idea behind this was, that all add-on buttons are moved to the old overflow menu, if they are not on a toolbar.