patrickjdempsey wrote:WOW
From the first page....ShareBird wrote:Let's suppose an user has installed 4 themes, theme 1 , theme 2, theme 3, theme 4.
All these themes will register, e.g., a skin provider for the browser package:
Theme 1:Code: Select all
skin browser theme_1 chrome/browser/
Theme 2:Code: Select all
skin browser theme_2 chrome/browser/
Etc...
Now, Firefox has registered 5 skin providers for the browser package:
The first best-fit skin is defined on user preferences at general.skins.selectedSkin preference. With this, Firefox will switch to the skin provider with this value as internal name.
So, I've registered a skin provider for the customskin package, right? But the only theme that has registered a skin for this package is already firebird.
When the user changes the value from general.skins.selectedSkin, Firefox will look for the respective register and, of course, will not find it. But it has already a skin provider registered for this package (the firebird skin) and will take it for all other themes.
Umm... has anyone else played with this pref? If you force it, it will swap themes, FULL THEMES on the fly... no restart... except that it carries over previous icon sets with it, at least in Firefox 3.6. I tried aaron's Smoke but it simply reset to the default theme. I think the only way to get it to line up styles and icons would be to have two basically identical themes with different names/GUID's which you could swap in succession. I'm more than a little bit flabbergasted about this. It means Firefox apparently has the ability to swap themes without restarts BUILT IN, the devs are just too stubborn to make the fixes required to do it. If someone could find their way around the images/styles misalignment this could possibly make a very small extension. I really don't think I was mad enough about Personas before.
ShareBird wrote:Try pressing Ctrl+N at one of the windows... the new window will fix the messes...
patrickjdempsey wrote:So if someone was make an extension that repurposed the Use Theme button in the Add-ons panel to force this pref and then had an action like Open In New Window for all tabs (like TabMixPlus's Duplicate in New Window) and then closed the previous Window, it would basicly act like a Restart, but much faster.
WildcatRay wrote:I see something similar. I use the Organize Status Bar extension. I have saved its about:config pref so that I do not have to manually organize things. But after pasting the saved data into the pref, I must open a new window to see the changes take affect.
patrickjdempsey wrote:This add-on: https://addons.mozilla.org/en-US/firefox/addon/45322 has a feature called "Reload Chrome" that allows you to reload the browser chrome without restarting Firefox or opening a new window. The downside is major though, it clears the tabs and gives you a completely fresh start. It may or may not be related to this project: http://github.com/dom0/reload-chrome which has the same exact effect but the code is simplified down to just the reload chrome aspect. Someone who understands XUL and JS more than me would probably be able to make something of it.
patrickjdempsey wrote:Opening the Customize window also redraws the chrome without loosing any tabs.
patrickjdempsey wrote:An update about the Customize window: Because it only draws the main toolbars, it will not fix the images for the tabs, scrollbars, or the statusbar. Opening a new window does clean everything up nicely though.
You can also switch to a Persona from a 3rd party theme and back without a restart by loading the default theme first, it's called "classic/1.0".
Lastly, I've found that hitting F-11 twice to go full-screen and come back redraws about the same amount of the chrome as Customize. Scrollbars only update if you click on them and tab icons update when you hover over them. It's a freaky effect, but not exactly what people would want. The fact that what does happen is so close to working suggests to me that it is totally possible to swap full themes without a restart. Restarts would be required for installs because of the way Firefox checks for compatibility and installs new packages at start-up. I'm very tempted to learn enough JS to write and extension that will do this. I need to study the Content folders and see how Firefox handles theme swaps to begin with I suppose.