Re:Memory
by
apollosfire
·
· Score: 5, Informative
As reported before, Firefox does not have memory problems - it has a feature that is very memory intensive.
To disable this feature, do the following:
1. type about:config in you address bar
2. scroll down to browser.sessionhistory.max_total_viewers
3. set its value to 0 (zero)
Browser Speed
by
reporter
·
· Score: 3, Informative
He concludes, "So overall, Opera seems to be the fastest browser for windows. Firefox is not faster than Internet Explorer, except for scripting, but for standards support, security and features, it is a better choice. However, it is still not as fast as Opera, and Opera also offers a high level of standards support, security and features."
Wilton-Jones tested both version 1.0 and version 1.5 of Firefox. Does anyone have any thoughts on the performance of version 2.0?
Re:Browser Speed
by
Dlugar
·
· Score: 2, Informative
View: Toolbars: Customize
Then click on whichever toolbar ("control bar") you want to change, and change "Placement" to top/left/right/bottom/off. I have the tab bar at the top, then the address bar, and the status bar at the bottom. (No other toolbars visible. Since the address bar has forward/back/reload I don't like wasting screen real-estate with a "control bar".) Opera is probably the most configurable UI I've used--I guess you just have to know.
-- Computer Go: Writing Software to Play the Ancient Game of Go
Re:Browser Speed
by
jesser
·
· Score: 2, Informative
Firefox 2 won't have many performance improvements over Firefox 1.5, since Firefox 2 is a frontend release. Most of the speed improvements that have gone into the trunk since Firefox 1.5 won't be shipped to end-users until Firefox 3.
One major exception is the work on memory leaks. Firefox 1.5.0.x releases have been getting the simpler (less risky) leak fixes, and it looks like Firefox 2 will get most of the less simple memory leak fixes that are going into the trunk, including the nsIDOMGCParticipant work that fixes the large leaks with Gmail and most Greasemonkey scripts.
-- The shareholder is always right.
Re:Browser Speed
by
toddestan
·
· Score: 3, Informative
I guess it depends on what metric you want to use to measure speed. I've been using Opera for quite a while, and what really annoys me about just every other browser is how they like to redraw/reload the page when you use the back and forward buttons. Opera doesn't do that - rather the back and forward buttons are instant because Opera has the rendered page still in memory. Because of this, Opera overall seems a lot faster to me than the other browsers, despite the fact that is a bit slower to load, and it really isn't any faster when it comes to rendering pages.
CoralCDN - just in case
by
Anonymous Coward
·
· Score: 4, Informative
Re:Memory
by
Anonymous Coward
·
· Score: 1, Informative
And.. as reported before by countless users, that is not the problem.
I have had memory leaks since the 1.0 days, so this new enhanced session history thingy isn't the cause (and yes, I have actually tried it and it does not help one bit).
Even if it was the problem, why would I still have hundreds of megs being eaten when I have opened a new window and closed all other windows.. If this was the cause, Firefox should be destroying all the other sessions because I closed everything else out and opened a new window that has no session information, no tabs, and no back/forward buttons to click.
Please stop the spin.
Close button at same tab
by
omeg
·
· Score: 5, Informative
Okay, so now they placed the close tab button on the active tab itself. I've heard of that being planned. I, however, really don't like that myself. Does anyone know if it's possible to turn off? Because if not, I'm not switching.
There's no reason to not let the user be able to pick the old way of handling a UI functionality that a reasonable amount of people don't agree with.
Re:Close button at same tab
by
ElleyKitten
·
· Score: 5, Informative
Okay, so now they placed the close tab button on the active tab itself. I've heard of that being planned. I, however, really don't like that myself. Does anyone know if it's possible to turn off? Because if not, I'm not switching
There's an extension for the alpha already that turns it off.
I like extensions, but sometimes it seems like you have to have 80 of them just to get options that seem like they should be common sense.
-- "What is Internet Explorer 7? Are you saying we can't access the normal internet?" - I love tech support. Really.
Re:Public Download?
by
yogikoudou
·
· Score: 3, Informative
So install Leak Monitor. Then you can see the cause of the most severe memory leaks: poorly coded extentions.
Whenever you close a tab or window and a leak is detected, you'll get a message about it. I used it for a few days and discovered several minor extentions I'd been using were causing some very large leaks.
-- The road to tyranny has always been paved with claims of necessity.
Uh, Dunno about windows n stuff, but Firefox on X has major memory problems, like never freeing pixbufs it stores in the X server. Your "fix" does nothing to solve this.
And that would be wrong (otherwise extensions wouldn't be portable across platforms). All extensions are written in pure Javascript/XUL. The real nasty bit is that the Javascript can (and usually does) call back into the runtime using XPCOM, and as a result, the Javascript can generate memory leaks by allocating resources and not freeing them.
Extensions exist in a global context for the process. They can maintain a permanent reference to objects that are never used again, and should otherwise be freed. They may also create cyclic references, in which one or more objects contains references to each other. This creates a situation where the objects are not referenced by an accessible code path, and the reference count can never drop to zero. The result is a leak, and it is an inherint weakness simple of reference counting garbage collection.
Even web pages can create circular JavaScript references that result in leaks. FF isn't alone in this area either. IE has always been vulnerable to memory leaks via JavaScript, theirs are just confined to bad pages. However, FF 3 will have a cycle detector that identifies unused cyclic references and frees the objects. But that still won't fix sloppy extensions that hang on to large objects for no goood reason.
In my experience, Plugins are pretty bad too. They operate outside the scope of the garbage collection and often don't clean up after themselves. For instance, my installation of Acrobat eats up a large chunk memory just for loading, and doesn't let it go after I navigate away from the page. The PDF Download extension helps, but it isn't perfect.
Download link
by
b0rk+b0rk+b0rk
·
· Score: 3, Informative
Re:Questions . Features.
by
zlogic
·
· Score: 2, Informative
XUL is a layer, allowing Firefox and its extensions create widgets. All the widgets that are requested from XUL are rendered with the appropriate toolkit: GTK on Linux, MFC (I think) on Windows and Cocoa (not sure) on OS X. This allows Firefox to use the native toolkit on all platforms and allows extension to be used on any platform without rewriting anything.
Re:For new users
by
plover
·
· Score: 4, Informative
Currently, there is no way to close a tab without first selecting it.
I used to think this too, which is why I used to use the TabX extension. However, since at least Firefox 1.5 I've been able to "middle-click" a tab to close it (without giving it focus.) Once I learned that, TabX was gone.
Sorry to contradict, but you are incorrect. Extensions can be written in any any language that supports XPCOM bindings, and many are not portable across platforms.
Then I shall amend my statement for both you and the other poster. The vast *vast* majority of extensions are written in Javascript, with a few exceptions.
It just needs to maintain references to unused objects or create cyclic references.
Certainly, but I don't believe most extension leaks are caused by such things, as they're rather difficult to trigger in practice. As far as I'm aware, most leaks caused by extensions are due to interactions with the XPCOM layer.
Firefox does not have memory problems - it has a feature that is very memory intensive
So why does this "feature" remain the default?
To disable this feature, do the following: 1. type about:config in you address bar 2. scroll down to browser.sessionhistory.max_total_viewers 3. set its value to 0 (zero)
This is something less than obvious or user friendly. Unlike the advanced options that can simply be checked and unchecked in IE's "Internet Options."
Re:I just went trhough the changelog...
by
Lisandro
·
· Score: 5, Informative
Question is, does Opera do these features better or will Firefox?
It does. I like Firefox a lot, but i'm not blind - every single feature that it's available in both and works better in Opera. With a fraction of the memory usage, and much faster to boot. Much more stable too - i only had Opera hangning on me a couple of times (both on Windows and Linux) - when it happens, it promptly apologizes and offers you to open the windows you were browsing at the moment of the crash. Priceless!
Also, Oprera has a shitload of functionality not available on FF or not needing extensions (gesture browsing, searches in the url bar, etc...). Those are the reasons it has been my main browser of choice for years now.
Re:Memory
by
Mistshadow2k4
·
· Score: 4, Informative
Poorly coded extensions definitely are the biggest memory leak problem. I was using forecastfox for a while and Firefox was leaking like a rusty bucket, even with the sessionistory fix. One day, forecastfox popped up with the latest temperature over an hour after I'd closed Firefox. I uninstalled it right then and Firefox has been pretty well-behaved memory-wise ever since; I haven't seen it's memory usage go over 85 mb.
Also, this fix helps too:
1. Open Firefox and go to the Address Bar. Type in about:config and then press Enter.
2. Right Click in the page and select New -> Boolean.
3. In the box that pops up enter config.trim_on_minimize. Press Enter.
4. Now select True and then press Enter.
5. Restart Firefox.
-- I dream of a better world... one in which chickens can cross roads without their motives being questioned.
Re:I'll switch, but only ...
by
Jussi+K.+Kojootti
·
· Score: 2, Informative
Just a note to TBE users: Anyone using Tabbrowser extensions should stay silent when the next Firefox-is-a-memory-hog flame fest ensues -- it has been one of the worst culprits in that area...
For instance, my installation of Acrobat eats up a large chunk memory just for loading, and doesn't let it go after I navigate away from the page. The PDF Download extension helps, but it isn't perfect.
Try the Foxit PDF Reader http://www.foxitsoftware.com/pdf/rd_intro.php It loads instantly.
Re:I just went trhough the changelog...
by
jb.hl.com
·
· Score: 2, Informative
Sometimes, you do get what you pay for, and while Firefox is a great improvement over IE in many respects, it's been trailing Opera for several years IMHO.
FYI, Opera is free (as in beer for the pedants) now.
-- By summer it was all gone...now shesmovedon. --
Re:Did I miss this feature?
by
corrosive_nf
·
· Score: 5, Informative
Tools --> Options --> General. type your favorite urls in the homepage box seperated by |
And when you open firefox, the urls you put in the home page box will be tabbed.
Re:so I'll just keep asking...and getting no answe
by
The+One+KEA
·
· Score: 4, Informative
Darin Fisher did this on the trunk in bug 326273. The complexity of the repair, as you surmised, means that Firefox 3.0 will be the first consumer release to contain these changes.
Re:Memory-- collective? Contradictory?
by
bunratty
·
· Score: 3, Informative
Yes, there are memory leaks in Firefox. However, they are generally so subtle that you don't notice them until you've had Firefox open continuously for a week. The problems people are referring to as "Firefox memory leaks" are generally not memory leaks, or are leaks caused by extensions, not leaks that exists in Firefox itself.
-- What a fool believes, he sees, no wise man has the power to reason away.
You're having a serious problem with Firefox that the vast majority of Firefox users aren't seeing. I recommend completely uninstalling Firefox, reinstalling it, and creating a new profile. That will likely fix the problem.
-- What a fool believes, he sees, no wise man has the power to reason away.
You're having a serious problem with Firefox that the vast majority of Firefox users aren't seeing. I recommend completely uninstalling Firefox, reinstalling it, and creating a new profile. That will likely fix the problem.
Er... Everyone I've ever talked to who runs Firefox on linux has told me that they've got creeping memory leaks that will eat all of their RAM given time. None of them have been able to fix it through reinstallation shenanigans. Maybe the people you've been talking to just close their browser every half-hour so they never have a chance to run into problems? There's a memory leak, and it sucks. Badly.
Re:Memory
by
Anonymous Coward
·
· Score: 1, Informative
Certainly, but I don't believe most extension leaks are caused by such things, as they're rather difficult to trigger in practice. As far as I'm aware, most leaks caused by extensions are due to interactions with the XPCOM layer.
You would be correct.
XPCOM objects are reference counted. JavaScript objects are mark-and-sweep garbage collected.
The problem comes when an XPCOM object holds a reference to an XPConnect-wrapped JavaScript object. The XPConnect object holds a "root" reference to the JavaScript object. This means that the JavaScript object will never be GCed, and anything it references will never be GCed.
So, now, if you create a circular reference between a JavaScript object and an XPCOM object, the XPCOM object will mark the JavaScript object as a root object, preventing it from ever being released, and the JavaScript object will prevent the reference count of the XPCOM object from ever falling below 1.
Hence, neither will ever be collected.
What's a good way to create a circular reference between JavaScript objects and XPCOM objects? Generally speaking, adding JavaScript objects as event handlers, and having those JavaScript objects hold a reference to some XPCOM object. Screw it up, and you can easily have a JavaScript object added as an event handler hold a reference to the entire DOM tree (hold on to one DOM node, you have access to the entire tree - ie, the entire page).
So, yeah, it's easy for extensions to make a small mistake (mostly involving not being aware that JavaScript supports closures and making a closure that accedently contains a DOM object, and then forgetting to remove an event handler), and leak massive amounts of memory.
Re:Where are the rants?
by
ClamIAm
·
· Score: 2, Informative
Wow, why not try and read the thread, bud? Nearly every other top-level post is a complaint that X wasn't fixed or that feature Y isn't in this release. I realize it's easy to get a +5 by making a righteously indignant post. Unfortunately, your claims don't reflect reality in the least.
Re:Questions . Features.
by
_xeno_
·
· Score: 2, Informative
Nope. XUL is rendered using the same rendering engine that renders the webpages.
Simplest way to prove this is to install the DOM inspector and poke around the various XUL elements and corresponding CSS rules. Another way is to note the differences between how Firefox widgets work on Windows XP and how actual Windows XP widgets work.
First off, Firefox menus do not fade in and out like Windows menus do. When you open a menu, it's supposed to fade in. Selecting a menu options should cause the menu to fade out, with the selected menu options fading out slower than the rest of the menu. Firefox menus just appear and then vanish.
Next off, on the Options screen, group labels in Firefox are black. They should be blue (in the default blue Windows XP theme). Drop-down menus should slide down when clicked, they don't.
Under GNOME when I used it, Firefox screwed up the menus in one theme, but none of the others.
Anyway, XUL is rendered with the exact same engine that renders webpages. Mozilla just implemented some non-standard CSS rules that indicate that certain CSS blocks should be drawn like native widgets. But they most certainly are not rendered using native widgets.
-- You are in a maze of twisty little relative jumps, all alike.
Re:Here's something to fix
by
Anonymous Coward
·
· Score: 2, Informative
As the developer working to fix this particular bug, I can say that it will hopefully be fixed in Firefox 2, and that there are working patches to do this right now, but they currently suffer from some leaks and other issues. If you're lucky, you'll get to see this in beta 1.
Re:Mod Parent Up
by
DRM_is_Stupid
·
· Score: 2, Informative
Bookmarks can be sorted from the contextual menu, but now it only sorts one folder at a time. Firefox used to do global + recursive sorting, regardless of which folder the context menu came from. To many, this was an unexpected behaviour and too much of a change for an undoable edit, so the behaviour was modified.
As reported before, Firefox does not have memory problems - it has a feature that is very memory intensive. To disable this feature, do the following: 1. type about:config in you address bar 2. scroll down to browser.sessionhistory.max_total_viewers 3. set its value to 0 (zero)
He concludes, " So overall, Opera seems to be the fastest browser for windows. Firefox is not faster than Internet Explorer, except for scripting, but for standards support, security and features, it is a better choice. However, it is still not as fast as Opera, and Opera also offers a high level of standards support, security and features. "
Wilton-Jones tested both version 1.0 and version 1.5 of Firefox. Does anyone have any thoughts on the performance of version 2.0?
http://mozillalinks.blogspot.com.nyud.net:8090/
And.. as reported before by countless users, that is not the problem.
I have had memory leaks since the 1.0 days, so this new enhanced session history thingy isn't the cause (and yes, I have actually tried it and it does not help one bit).
Even if it was the problem, why would I still have hundreds of megs being eaten when I have opened a new window and closed all other windows.. If this was the cause, Firefox should be destroying all the other sessions because I closed everything else out and opened a new window that has no session information, no tabs, and no back/forward buttons to click.
Please stop the spin.
Okay, so now they placed the close tab button on the active tab itself. I've heard of that being planned. I, however, really don't like that myself. Does anyone know if it's possible to turn off? Because if not, I'm not switching.
There's no reason to not let the user be able to pick the old way of handling a UI functionality that a reasonable amount of people don't agree with.
Yes, get it here.
Whenever you close a tab or window and a leak is detected, you'll get a message about it. I used it for a few days and discovered several minor extentions I'd been using were causing some very large leaks.
The road to tyranny has always been paved with claims of necessity.
Can you read, or not? If you don't like that feature, then turn it off!
It's poetry with a beat behind it! And guns! They're like beatniks with automatic weapons.
Uh, Dunno about windows n stuff, but Firefox on X has major memory problems, like never freeing pixbufs it stores in the X server. Your "fix" does nothing to solve this.
A link's tooltip will show both the title of the link and the URL it links to. That's the way Opera's been doing it for ages.
Global warming is a cube.
And that would be wrong (otherwise extensions wouldn't be portable across platforms). All extensions are written in pure Javascript/XUL. The real nasty bit is that the Javascript can (and usually does) call back into the runtime using XPCOM, and as a result, the Javascript can generate memory leaks by allocating resources and not freeing them.
Extensions exist in a global context for the process. They can maintain a permanent reference to objects that are never used again, and should otherwise be freed. They may also create cyclic references, in which one or more objects contains references to each other. This creates a situation where the objects are not referenced by an accessible code path, and the reference count can never drop to zero. The result is a leak, and it is an inherint weakness simple of reference counting garbage collection.
Even web pages can create circular JavaScript references that result in leaks. FF isn't alone in this area either. IE has always been vulnerable to memory leaks via JavaScript, theirs are just confined to bad pages. However, FF 3 will have a cycle detector that identifies unused cyclic references and frees the objects. But that still won't fix sloppy extensions that hang on to large objects for no goood reason.
In my experience, Plugins are pretty bad too. They operate outside the scope of the garbage collection and often don't clean up after themselves. For instance, my installation of Acrobat eats up a large chunk memory just for loading, and doesn't let it go after I navigate away from the page. The PDF Download extension helps, but it isn't perfect.
http://ftp.mozilla.org/pub/mozilla.org/firefox/rel eases/bonecho/alpha2/
XUL is a layer, allowing Firefox and its extensions create widgets. All the widgets that are requested from XUL are rendered with the appropriate toolkit: GTK on Linux, MFC (I think) on Windows and Cocoa (not sure) on OS X. This allows Firefox to use the native toolkit on all platforms and allows extension to be used on any platform without rewriting anything.
I used to think this too, which is why I used to use the TabX extension. However, since at least Firefox 1.5 I've been able to "middle-click" a tab to close it (without giving it focus.) Once I learned that, TabX was gone.
John
Sorry to contradict, but you are incorrect. Extensions can be written in any any language that supports XPCOM bindings, and many are not portable across platforms.
Then I shall amend my statement for both you and the other poster. The vast *vast* majority of extensions are written in Javascript, with a few exceptions.
It just needs to maintain references to unused objects or create cyclic references.
Certainly, but I don't believe most extension leaks are caused by such things, as they're rather difficult to trigger in practice. As far as I'm aware, most leaks caused by extensions are due to interactions with the XPCOM layer.
So why does this "feature" remain the default?
To disable this feature, do the following: 1. type about:config in you address bar 2. scroll down to browser.sessionhistory.max_total_viewers 3. set its value to 0 (zero)
This is something less than obvious or user friendly. Unlike the advanced options that can simply be checked and unchecked in IE's "Internet Options."
Question is, does Opera do these features better or will Firefox?
It does. I like Firefox a lot, but i'm not blind - every single feature that it's available in both and works better in Opera. With a fraction of the memory usage, and much faster to boot. Much more stable too - i only had Opera hangning on me a couple of times (both on Windows and Linux) - when it happens, it promptly apologizes and offers you to open the windows you were browsing at the moment of the crash. Priceless!
Also, Oprera has a shitload of functionality not available on FF or not needing extensions (gesture browsing, searches in the url bar, etc...). Those are the reasons it has been my main browser of choice for years now.
Poorly coded extensions definitely are the biggest memory leak problem. I was using forecastfox for a while and Firefox was leaking like a rusty bucket, even with the sessionistory fix. One day, forecastfox popped up with the latest temperature over an hour after I'd closed Firefox. I uninstalled it right then and Firefox has been pretty well-behaved memory-wise ever since; I haven't seen it's memory usage go over 85 mb.
Also, this fix helps too:
1. Open Firefox and go to the Address Bar. Type in about:config and then press Enter.
2. Right Click in the page and select New -> Boolean.
3. In the box that pops up enter config.trim_on_minimize. Press Enter.
4. Now select True and then press Enter.
5. Restart Firefox.
I dream of a better world... one in which chickens can cross roads without their motives being questioned.
Just a note to TBE users: Anyone using Tabbrowser extensions should stay silent when the next Firefox-is-a-memory-hog flame fest ensues -- it has been one of the worst culprits in that area...
For instance, my installation of Acrobat eats up a large chunk memory just for loading, and doesn't let it go after I navigate away from the page. The PDF Download extension helps, but it isn't perfect. Try the Foxit PDF Reader http://www.foxitsoftware.com/pdf/rd_intro.php It loads instantly.
Slashdot Classic
Sometimes, you do get what you pay for, and while Firefox is a great improvement over IE in many respects, it's been trailing Opera for several years IMHO.
FYI, Opera is free (as in beer for the pedants) now.
By summer it was all gone...now shesmovedon. --
Tools --> Options --> General. type your favorite urls in the homepage box seperated by |
t p://www.fark.com
http://www.google.com/|http://www.slashdot.org|ht
And when you open firefox, the urls you put in the home page box will be tabbed.
Darin Fisher did this on the trunk in bug 326273. The complexity of the repair, as you surmised, means that Firefox 3.0 will be the first consumer release to contain these changes.
7 3
https://bugzilla.mozilla.org/show_bug.cgi?id=3262
SCREW THE ADS! http://adblock.mozdev.org/ Proud user of teh Fox of Fire - Registered Linux User #289618
Direct download links, as requested: ftp.mozilla.org/pub/mozilla.org/firefox/releases/b onecho/alpha1
See bug 252371.
Yes, there are memory leaks in Firefox. However, they are generally so subtle that you don't notice them until you've had Firefox open continuously for a week. The problems people are referring to as "Firefox memory leaks" are generally not memory leaks, or are leaks caused by extensions, not leaks that exists in Firefox itself.
What a fool believes, he sees, no wise man has the power to reason away.
You're having a serious problem with Firefox that the vast majority of Firefox users aren't seeing. I recommend completely uninstalling Firefox, reinstalling it, and creating a new profile. That will likely fix the problem.
What a fool believes, he sees, no wise man has the power to reason away.
From http://kb.mozillazine.org/Config.trim_on_minimize For windows only. Set as true to let Windows reclaim memory when fx is minimised (which may cause a delay when fx is restored).
And Fielding et al. made the HEAD method: and it was so.
You're having a serious problem with Firefox that the vast majority of Firefox users aren't seeing. I recommend completely uninstalling Firefox, reinstalling it, and creating a new profile. That will likely fix the problem.
Er... Everyone I've ever talked to who runs Firefox on linux has told me that they've got creeping memory leaks that will eat all of their RAM given time. None of them have been able to fix it through reinstallation shenanigans. Maybe the people you've been talking to just close their browser every half-hour so they never have a chance to run into problems? There's a memory leak, and it sucks. Badly.
Certainly, but I don't believe most extension leaks are caused by such things, as they're rather difficult to trigger in practice. As far as I'm aware, most leaks caused by extensions are due to interactions with the XPCOM layer.
You would be correct.
XPCOM objects are reference counted. JavaScript objects are mark-and-sweep garbage collected.
The problem comes when an XPCOM object holds a reference to an XPConnect-wrapped JavaScript object. The XPConnect object holds a "root" reference to the JavaScript object. This means that the JavaScript object will never be GCed, and anything it references will never be GCed.
So, now, if you create a circular reference between a JavaScript object and an XPCOM object, the XPCOM object will mark the JavaScript object as a root object, preventing it from ever being released, and the JavaScript object will prevent the reference count of the XPCOM object from ever falling below 1.
Hence, neither will ever be collected.
What's a good way to create a circular reference between JavaScript objects and XPCOM objects? Generally speaking, adding JavaScript objects as event handlers, and having those JavaScript objects hold a reference to some XPCOM object. Screw it up, and you can easily have a JavaScript object added as an event handler hold a reference to the entire DOM tree (hold on to one DOM node, you have access to the entire tree - ie, the entire page).
So, yeah, it's easy for extensions to make a small mistake (mostly involving not being aware that JavaScript supports closures and making a closure that accedently contains a DOM object, and then forgetting to remove an event handler), and leak massive amounts of memory.
Wow, why not try and read the thread, bud? Nearly every other top-level post is a complaint that X wasn't fixed or that feature Y isn't in this release. I realize it's easy to get a +5 by making a righteously indignant post. Unfortunately, your claims don't reflect reality in the least.
Nope. XUL is rendered using the same rendering engine that renders the webpages.
Simplest way to prove this is to install the DOM inspector and poke around the various XUL elements and corresponding CSS rules. Another way is to note the differences between how Firefox widgets work on Windows XP and how actual Windows XP widgets work.
First off, Firefox menus do not fade in and out like Windows menus do. When you open a menu, it's supposed to fade in. Selecting a menu options should cause the menu to fade out, with the selected menu options fading out slower than the rest of the menu. Firefox menus just appear and then vanish.
Next off, on the Options screen, group labels in Firefox are black. They should be blue (in the default blue Windows XP theme). Drop-down menus should slide down when clicked, they don't.
Under GNOME when I used it, Firefox screwed up the menus in one theme, but none of the others.
Anyway, XUL is rendered with the exact same engine that renders webpages. Mozilla just implemented some non-standard CSS rules that indicate that certain CSS blocks should be drawn like native widgets. But they most certainly are not rendered using native widgets.
You are in a maze of twisty little relative jumps, all alike.
As the developer working to fix this particular bug, I can say that it will hopefully be fixed in Firefox 2, and that there are working patches to do this right now, but they currently suffer from some leaks and other issues. If you're lucky, you'll get to see this in beta 1.
Bookmarks can be sorted from the contextual menu, but now it only sorts one folder at a time. Firefox used to do global + recursive sorting, regardless of which folder the context menu came from. To many, this was an unexpected behaviour and too much of a change for an undoable edit, so the behaviour was modified.