Persona is no longer an option for authentication on BMO. For more details see Persona Deprecated.
Last Comment Bug 208641 - Way to force reload of userContent.css at run time
: Way to force reload of userContent.css at run time
Status: NEW
Product: Core
Classification: Components
Component: CSS Parsing and Computation (show other bugs)
: Trunk
: All All
: -- enhancement with 31 votes (vote)
: ---
Assigned To: Nobody; OK to take it and work on it
: Jet Villegas (:jet)
: 319592 567736 (view as bug list)
Depends on: 179006
Blocks: 215462
  Show dependency treegraph
Reported: 2003-06-07 10:12 PDT by david.hagood
Modified: 2015-10-14 09:21 PDT (History)
37 users (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

A Patch for adding the menu entry and the JavaScript file (1.07 KB, patch)
2012-06-10 06:57 PDT, Simon Wilper
no flags Details | Diff | Splinter Review
sxw-tools.js JavaScript file for reloading the userContent.css (1.17 KB, application/octet-stream)
2012-06-10 06:58 PDT, Simon Wilper
no flags Details
The result (24.55 KB, image/png)
2012-06-10 06:58 PDT, Simon Wilper
no flags Details

Description david.hagood 2003-06-07 10:12:26 PDT
User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030507
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4b) Gecko/20030507

Frequently I update my userContent.css to override foolish webmasters who think
everybody in the world is running 800x600 - I add entries to force their
fixed-width tables to be full width.

When I finish editing my userContent.css file, I have to shut Mozilla down and
restart it to force a reload. It would be nice if there were a better way.

Either Mozilla could load userContent.css when a new window is created (so I
just open a new browser window and close the old), or Mozilla could check the
mtime on the file and load it when it sees the date change.

The ideal solution would be a tool that one could activate to allow you to pick
an item in the window, set the width, and then write the appropriate change to

That, or kill all the idiots who fix-width tables....

Reproducible: Always

Steps to Reproduce:
1. Launch Mozilla
2. Edit userContent.css

Actual Results:  
None - Mozilla won't read the file until restart

Expected Results:  
Mozilla ought to read the file when it changes.
Comment 1 Christopher Hoess (gone) 2003-06-07 11:55:19 PDT
->Style System
Comment 2 Aaron Peterson 2003-10-31 02:12:19 PST
I just submitted a bug that has to do with this.

I'm using Mozilla Firebird 0.7


Comment 3 Jesse Ruderman 2003-10-31 02:26:32 PST
See also bug 78072, same bug for bookmarks.html.
Comment 4 Aaron Peterson 2003-10-31 06:02:36 PST

If you are working on patches, it is sensible to turn off the XUL cache in your
Mozilla profile. This means you only have to reopen the relevant window, rather
than restart the entire application, to see UI changes. This is in the Debug |
Networking prefs panel. Also, if you are changing JavaScript, turn on JavaScript
strict warnings in the Debug prefs.

This bug may still be valid though..
I don't see anything that looks like an XUL cache in about:config on Firebird 0.7
filtering by cache brought up a boolean option  about disk cache... maybe that's
Comment 5 John Morrison 2003-10-31 15:38:14 PST
Well, I'm not sure how bookmarks and a particular web page got dragged into this
bug. But please don't toss 'XUL cache' into this bug too. That is for UI
developers and is not intended in any way to be an end-user feature. It's an
unstable mode, and pretty much unsupported. It's certainly not a "fix" for anything.

And now back to the original request in comment #0 for dbaron to ponder...
Comment 6 Aaron Peterson 2003-11-01 09:20:47 PST
sorry about saying XUL cache
I'm like a 1 year old learning how to talk here,

I was thinking that because it's the userContent.css file... and that is right
next to the userChrome.css file... that they might be loaded at start time, and
cached along with the other user interface stuff...

afterall xul means xml user interface language... and it needs the css to help
define how it is displayed... so why not cache it all together?

There is some sort of cache going on here... and it would be nice to keep it
cached... except for when we want to change it.  So... an ability to refresh the
 cache (whatever type it may be) with a button click, would be far more pleasing
than restarting the whole browser, or disabling caching completely.

and note, the bookmarks.html file is also in the profile directory... which is
right next to the chrome directory... which has the userContent.css file in it

and diffs
are two things that spring to my mind after browsing XUL css and mozilla
documents for about a week.

So, bookmarks and a "specific web page" (really an example site of an impossible
to read when zoomed in page). could be fixed by making a few preferences be
reloaded at the push of a button(good compromise hack)... or automatically(tough
hack) or periodically(bad hack)

I don't care if this gets embeded into the trunk, as long as it is available as
an extension...

push button to reload profile

is how I would redescribe this browser enhansement..
Comment 7 Henrik Gemal 2005-05-26 04:42:10 PDT
Where in the code is the userContent.css actually loaded? I think the best way
to fix this bug is for an extension to be able to reload the userContent.css
file. So an API to reload the file. This way we could let it be up to an
extension to do the work of reloading and telling the user the file was reloaded etc
Comment 8 Henrik Gemal 2005-05-26 06:24:32 PDT
(In reply to comment #7)
> Where in the code is the userContent.css actually loaded?

I dont think "LoadSheetFile" is available to an extension, rite?
Comment 9 Maxx 2005-08-05 14:24:58 PDT
I agree that's it *particularly* annoying to restart your browser (Mozilla or
Firefox, don't care) EACH time you add or modify a little rule in the

What could I/we do ?
Comment 10 Adam Guthrie 2005-12-08 11:52:54 PST
*** Bug 319592 has been marked as a duplicate of this bug. ***
Comment 11 Marc Bejarano 2005-12-08 13:46:41 PST
(In reply to comment #9)
> What could I/we do ?

until you or somebody else fixes the issue, you can use the stylish extension currently based at

works like a charm

Comment 12 Wikiwide 2010-01-16 22:03:50 PST
Do I need to build an XPCOM component to reload userchrome.css/usercontent.css at runtime?

Or there is a JavaScript function available for doing it?

An extension could be done for it - or ChromEdit or Quickrestart extended to include this feature.

Best regards.
Comment 13 Nick 2010-01-21 20:52:12 PST
I think applying user styles at runtime is a quite worthy demand. Being a user of custom styles means a lot of testing. To do a restart for every new line of code is an uncomfortable practice. JavaScript can do the style change on the fly, very nicely, for example like this:

/*start CSS service*/

var sss = Components.classes[";1"]
var ios = Components.classes[";1"]

/* remove old sheet*/

var u = ios.newURI("PATH TO OLD STYLE SHEET", null, null);
if(sss.sheetRegistered(u, sss.USER_SHEET))
  sss.unregisterSheet(u, sss.USER_SHEET);

/* register new sheet */
var uri = ios.newURI("PATH TO NEW STYLE SHEET", null, null);
if(!sss.sheetRegistered(uri, sss.USER_SHEET))
 sss.loadAndRegisterSheet(uri, sss.USER_SHEET);

Not very difficult to do, actually, if you have worked with Firefox code before. Only left to think of where the current sheet is (most possibly a chrome:// url), and where the new style sheet is (most likely a file:// url, which maybe needs to be loaded into chrome or into memory)... And because it is of no sense to apply the style continuously (this will make us apply lines which are not finished), then we must have a toolbar button / menu command for style update.

Either switch off userChrome and userContent functionality in Firefox completely, or implement it in a way that is easy to use. At last, you must have made it for end users, not for developers, and many of them will find it more comfortable to apply styles without a restart.
Comment 14 Wikiwide 2010-03-08 13:36:34 PST
>Either switch off userChrome and userContent functionality in Firefox
>completely, or implement it in a way that is easy to use.

I prefer the second choice. What is the path to userContent.css? Together with your code it would be the basis for a simple toolbar button, reloading userContent.css at user's wish without restart.

In fact, WebMail Ad Blocker was created partly due to currently uncomfortable implementation of userContent.css: I don't use it because I have long ago used userContent.css for removing advertisements in my mail.
Comment 15 Smokey Ardisson (offline for a while; not following bugs - do not email) 2010-05-24 04:48:53 PDT
*** Bug 567736 has been marked as a duplicate of this bug. ***
Comment 16 Ronan Jouchet 2011-05-20 10:37:59 PDT
Note: Chrome also has user stylesheets (through the --enable-user-stylesheet startup option) and detects changes made to <profiledir>/User StyleSheets/Custom.css, meaning you just have to edit and save this file and Chrome will apply the contained css on the fly without restart.

It that may interest people frequently facing this bug (I personnally test my custom css in Chrome, then import it into Firefox), and I think it is a good implementation that could serve as a model for whoever tries to fix this bug in Firefox.
Comment 17 Simon Wilper 2012-06-10 06:56:13 PDT

since I started playing around with userContent.css it really got annoying restarting firefox each time I made a change.

With Nick's post (thank you!) I got some inspiration to add a Menu-Entry "Reload User Style" that triggers the re-register of the stylesheet. I assume a firefox with a flat chrome directory (not zip compressed) so that you can patch the browser.xul right away (see attached patch).

Then add the file "sxw-tools.js" (also attached) to the very same directory the browser.xul resides in, restart firefox and you should be presented with a new menu entry as to be seen in the attached screenshot.
Comment 18 Simon Wilper 2012-06-10 06:57:10 PDT
Created attachment 631741 [details] [diff] [review]
A Patch for adding the menu entry and the JavaScript file
Comment 19 Simon Wilper 2012-06-10 06:58:16 PDT
Created attachment 631742 [details]
sxw-tools.js JavaScript file for reloading the userContent.css
Comment 20 Simon Wilper 2012-06-10 06:58:43 PDT
Created attachment 631743 [details]
The result
Comment 21 M8R-kf8x4n 2013-07-03 19:54:06 PDT
I love when devs spend (10) years ignoring a feature request instead of taking an hour to implement it.
Comment 22 Chris Lord [:cwiiis] 2013-07-04 03:38:40 PDT
(In reply to M8R-kf8x4n from comment #21)
> I love when devs spend (10) years ignoring a feature request instead of
> taking an hour to implement it.

This is not a helpful comment.

Perhaps you could try to find a good owner for this bug (via inspecting Mercurial logs and talking to people on IRC), or perhaps you could help fix the bug yourself and have someone review your work?

This is not an area of the browser I know at all (I work on mobile), so this represents significantly more than an hour's work for me, but perhaps there exists someone that could fix this in an hour.

Given there are hundreds of thousands of bugs and considerably fewer developers to look at them, I can assure you that no bugs are actively being ignored.
Comment 23 olaf 2013-07-04 09:59:02 PDT
This feature request (and in fact userContent.css as a whole) has been obsoleted by the Stylish extension long ago. Someone in charge could close this bug WONTFIX.
Comment 24 ivan 2013-07-04 10:02:06 PDT
I actually like userContent.css and prefer to keep all of my styles in one file instead of Stylish's sqlite database.  I know there's User Style Manager as well, but I see no need for a separate add-on for this basic functionality.
Comment 25 Felix Miata 2013-07-04 10:10:10 PDT
(In reply to ivan from comment #24)
>  I see no need for a separate add-on for this basic functionality.

...functionality which is built into competing web browsers.
Comment 26 Marc-Aurèle DARCHE 2015-01-19 06:20:59 PST
I don't want to use an extension for this either. userContent.css reload should be achieved through the Firefox developer console (aka command line) (Shift-F2)
Comment 27 2015-04-27 19:37:39 PDT
Stylish stops being a viable solution for this once you start adding images, since it's not able to load them from the user chrome directory.

Note You need to log in before you can comment on or make changes to this bug.