17.74 KB, image/png
23.46 KB, image/png
2.16 KB, patch
|Details | Diff | Splinter Review|
User-Agent: Mozilla/5.0 (Windows; Windows NT 6.1; rv:2.0b3pre) Gecko/20100721 SeaMonkey/2.1a3pre Build Identifier: Mozilla/5.0 (Windows; Windows NT 6.1; rv:2.0b3pre) Gecko/20100721 SeaMonkey/2.1a3pre (Appears that third-party) extensions that placed icons on the Status Bar no longer display. Reproducible: Always Steps to Reproduce: 1. Install an extension that places an icon on the Status Bar Actual Results: No icon displays. Expected Results: The icon should display. Theme appears not to be an issue. Regression between 7/20 & 7/21. http://hg.mozilla.org/mozilla-central/pushloghtml?startdate=2010-07-20&enddate=2010-07-21 The extensions are there & do look to work. They display in about:addons, context menu's work, shortcut keys work, you can open Properties ... NoScript: https://addons.mozilla.org/en-US/seamonkey/addon/722/ Actually you will need the latest #dev version here: http://noscript.net/getit#devel Adblock Plus: https://addons.mozilla.org/en-US/seamonkey/addon/1865/ Both NoScript & ABP have (options) to place icons on the Status Bar. NoScript Options -> Appearance -> Status bar icon ABP Preference -> Options -> Show in status bar Neither (now) display. Separately, though likely related, NoScript may display a "Status bar label", which would (normally) sit just above the Status Bar, that no longer displays. (I believe that regression was a bit earlier. Will have to check.) Minefield does not show these issues. Mozilla/5.0 (Windows; Windows NT 6.1; rv:2.0b3pre) Gecko/20100721 Minefield/4.0b3pre
Created attachment 459287 [details] Screenshot with (3rd-party) extensions Status Bar icons missing. (The two screenshots were actually from different Profiles. Nevertheless, the premiss is valid.)
Oh, just some other extensions that also no longer show (other then those mentioned already): NoSquint: http://xsidebar.mozdev.org/modifiedmisc.html#nosquint AutoCopy: https://addons.mozilla.org/en-US/firefox/addon/383/ JSView: https://addons.mozilla.org/en-US/firefox/addon/2076/
same for win xp
> Separately, though likely related, NoScript may display a "Status bar label" Ignore that comment. Most likely a NoScript issue with the Trunk. I'll pursue it there.
Oops, gave you a wrong range in #1. http://hg.mozilla.org/mozilla-central/pushloghtml?startdate=2010-07-20&enddate=2010-07-22b
I see this behavior (losing my NoScript icon) on my Win7-64 installation of Mozilla/5.0 (Windows; Windows NT 6.1; WOW64; rv:2.0b3pre) Gecko/20100724 SeaMonkey/2.1a3pre. Breaking the ability of extensions to communicate / interact with the user by using the status bar is not a good thing (obviously).
Ok, partially investigated. I first did not see this on 2.1a2 then realized I had to turn on ABP's status icon from its preferences. Once done I *do* see the icon in 2.1a2 and *not* in my self-built nightly. I will be investigating/disecting further to see exactly where the bug lies (I'm not certain if its our side, or something the ABP developer and others need to fix on their end, but I wish to find out so at the worse case we can tell them what to do). Assigning to myself, at least while I investigate.
[All testing for me done on Windows] Nightly for July 20 = Has Icon Built from http://hg.mozilla.org/mozilla-central/rev/c71dba463f85 and Built from http://hg.mozilla.org/comm-centra/rev/ee1f364c20a5 Nightly for July 21 = No Icon Built from http://hg.mozilla.org/mozilla-central/rev/584d7e1b6854 62a9693b8d4b and Built from http://hg.mozilla.org/comm-central/rev/62a9693b8d4b Regression ranges: c-c: http://hg.mozilla.org/comm-central/pushloghtml?fromchange=ee1f364c20a5&tochange=62a9693b8d4b m-c: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=c71dba463f85&tochange=584d7e1b6854 The range seems to indicate this could be KaiRo's fault.
Now i remember that i see this problem after applying Personas patch.
Early on in the creation of the window (before dynamic overlays load), a reference is made to the status bar element. This causes dynamic overlays to fail to overlay the status bar. The failure appears to be related to the XBL binding on the status bar since if I comment out its content then the overlay succeeds. The details of the reference are included below but this is a potential future issue as accessing the status bar element from inline script in navigator.js causes previous builds to fail in a similar way. Inline script in charsetOverlay.js accesses the documentElement in order to work out which charset load listener to add. This then triggers the constructor for general.xml#root-element which looks for a lightweightthemesattribute and if so loads the lightweight theme consumer which retrives the status bar element so that it can set some attributes and styles on it.
So, accessing the element triggers the XBL binding early, nut since overlays don't notify, the overlaid elements never make it into the XBL children. The easy way to verify this is to view the status bar element in DOM Inspector with and without anonymous nodes.
How does Firefox make it succeed? For the moment, they still have a status bar after all, and it works with lwthemes and 3rd-party overlays.
Created attachment 460829 [details] [diff] [review] Possible patch The easiest solution from my point of view is to defer charset menu init until we get an event that it might be interested in. We then attach the real event handler, so if the event was for the wrong target then too bad, but at least we didn't miss an event for the correct target. Note to self: this is a -w patch, don't check it in!
Created attachment 461299 [details] [diff] [review] Updated for review comments i.e. using load instead of pageshow, which fires first anyway.
Comment on attachment 460829 [details] [diff] [review] Possible patch Sigh, missed a checkbox...
Comment on attachment 461299 [details] [diff] [review] Updated for review comments This stops charsetOverlay.js from touching elements and causing XBL binding to happen at an unsafe time (i.e. before layout has started).
Comment on attachment 461299 [details] [diff] [review] Updated for review comments a2.0=me
Pushed changeset 89b995bca723 to mozilla-central.
I'm still have this problem in my linux build. Also changeset 89b995bca723 description says "Bug 522770 followup to fix shared build bustage r=khuey" ...
> Pushed changeset 89b995bca723 to mozilla-central. ITYM: http://hg.mozilla.org/mozilla-central/rev/e5e95e3947c3
Sorry, copy/paste error, I meant changeset e5e95e3947c3
Well, my NoScript and AdBlock Plus statusbar icons still missing. Fedora 13 Build identifier: Mozilla/5.0 (X11; Linux i686; rv:2.0b3pre) Gecko/20100802 NOT Firefox/3.5.5 SeaMonkey/2.1a3pre about:buildconfig Source Built from http://hg.mozilla.org/mozilla-central/rev/a4d86c3a3494 Build platform target i686-pc-linux-gnu Build tools Compiler Version Compiler flags gcc gcc version 4.4.4 20100630 (Red Hat 4.4.4-10) (GCC) -Wall -W -Wno-unused -Wpointer-arith -Wcast-align -W -pedantic -Wno-long-long -fno-strict-aliasing -pthread -pipe -DNDEBUG -DTRIMMED -Os -freorder-blocks -fomit-frame-pointer c++ gcc version 4.4.4 20100630 (Red Hat 4.4.4-10) (GCC) -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-variadic-macros -Werror=return-type -pedantic -Wno-long-long -fno-strict-aliasing -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -Os -freorder-blocks -fomit-frame-pointer Configure arguments --enable-application=suite --enable-optimize --disable-debug --disable-crashreporter --enable-application=suite --enable-optimize --disable-debug --disable-crashreporter --enable-application=../suite --disable-official-branding --with-branding=../suite/branding/nightly --cache-file=.././config.cache --srcdir=/home/misak/workspace/src/mozilla
Mozilla/5.0 (Windows; Windows NT 5.1; rv:2.0b3pre) Gecko/20100802 SeaMonkey/2.1a3pre - Build ID: 20100802005711 Icons still missing
Do you have NoScript installed by chance? It looks like that add-on has a bug that triggers the same behavior, possibly doing the same that charsetOverlay did until it was fixed here...
I have NoScript installed but disabled when I post 1st message. Now I deinstall it. No changes. No one addons icon in statusbar.
Same for Mozilla/5.0 (X11; Linux i686; rv:2.0b3pre) Gecko/20100802 SeaMonkey/2.1a3pre - Build ID: 20100802013443
(In reply to comment #26) > I have NoScript installed but disabled when I post 1st message. Now I deinstall > it. If you also have installed Adblock Plus you need to disable it too. After disabling both add-ons the status bar icons are shown again.
Adblock Plus, alone, should be working. Appears that /at least/ two extensions are now known to cause icons to (again) disappear; NoScript & xsidebar. NoScript thread: http://forums.informaction.com/viewtopic.php?f=10&t=4786
I posted an explanation in the mozilla.dev.extensions newsgroup: news://news.mozilla.org:119/g56dnTkfUJt7rsrRnZ2dnUVZ_jWdnZ2d@mozilla.org
I've fixed the problem in xSidebar and pushed out another 1.2alpha: http://downloads.mozdev.org/xsidebar/xsidebar-1.unstable.xpi But the problem also exists with random other extensions e.g. nightly tester tools. Interestingly enough with the Organize Statusbars extension installed and having moved at least one statusbar button to a non default location, all the buttons now show up. This was initially why I never saw the problem having had OSB installed for a long time.
(In reply to comment #31) > Interestingly enough with the Organize Statusbars extension installed and > having moved at least one statusbar button to a non default location, all the > buttons now show up. This was initially why I never saw the problem having > had OSB installed for a long time. Either ordinal attributes or DOM manipulations probably cause XBL to rebuild the statusbar logical child list thus working around the problem.
Just a FYI bug 554279 fixed a similar problem with toolbar initialization and fixed it by moving the code in the toolbar constructor to a readystate event listener. See attachment 497706 [details] [diff] [review].