[Ext] userChromeJS 2.0 [2015-08-02]

Announce and Discuss the Latest Theme and Extension Releases.

User avatar
Posts: 146
Joined: January 17th, 2008, 8:03 am
Location: Somewhere in Space

Post Posted May 13th, 2017, 2:00 am

Hi alta88.
Will the userchromejs.2.0.xpi add-on survive the transition to webextension
or is it destined to die? Are there any news about this?
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
OS: Windows 7 Home Premium - My Versions Info

Posts: 980
Joined: January 28th, 2006, 3:08 pm

Post Posted May 14th, 2017, 12:06 pm

I haven't looked into it, but from what I understand it won't/can't be as privileged as it is currently. It can likely be made to execute snippets of code but not on chrome or using xpcom apis, ie I doubt it can add an xul statusbar to the dom, etc. so won't be hugely useful. And the xul overlay part is surely dead. For web page manipulation, whatever GreaseMonkey can do is an alternative. I'm also unlikely to take the time to figure it out/convert it, sorry.

The current state of thinking is well described by the door slam on the old bug to implement natively a userChrome.js type file:

Posts: 2450
Joined: February 3rd, 2009, 6:29 pm

Post Posted May 14th, 2017, 5:44 pm

The config file may still work in Firefox 57. You can use the mozilla.cfg file as an alternative to the userChrome.js file.

Customizing Firefox – Advanced Autoconfig Files ... fig-files/

Demo mozilla.cfg file ... 2/demo.cfg

Observer Notifications ... ifications

Deploying Firefox in an enterprise environment ... deployment

Posts: 980
Joined: January 28th, 2006, 3:08 pm

Post Posted May 15th, 2017, 7:15 am

Thanks morat, .cfg is indeed a way to bypass being an xul overlay. However,
1) a web extension would need to write to this file, this ability could be removed in the future.
2) the code executed in .cfg could be limited to just the pref setting/locking for which the file was originally intended.

Posts: 4
Joined: October 23rd, 2017, 1:23 pm

Post Posted October 23rd, 2017, 1:36 pm

Hi everybody.

In a german forum we are talking about the subject: ... 7#p1053287

We make script loading possible with the config file and a folder with three files.

The config file:

Code: Select all

const Cu = Components.utils;

try {


  if (!Services.appinfo.inSafeMode) {
    let path = OS.Constants.Path.libDir;
    var ucjsDirPath = OS.Path.join(path, "userChromeJS");
    path = OS.Path.join(ucjsDirPath, "main.js");
    let mainFileURI = OS.Path.toFileURI(path);
    Services.scriptloader.loadSubScript(mainFileURI, this, "UTF-8");

} catch(e) {

Two files of the folder contain the JS code from the extension with some modifications. The third file is the readme. The folder is named "userChromeJS" and you can download it zipped here: ... 5500264989

Unpack it and then put it into the installation directory.
Take a look at the readme, a new function for imported scripts is added.

Have fun! :)

Return to Extension/Theme Releases

Who is online

Users browsing this forum: No registered users and 3 guests