Last Comment Bug 580868 - Status Bar Icons No Longer Display
: Status Bar Icons No Longer Display
Status: RESOLVED FIXED
:
Product: SeaMonkey
Classification: Client Software
Component: General (show other bugs)
: Trunk
: All All
: P2 major with 1 vote (vote)
: seamonkey2.1a3
Assigned To: neil@parkwaycc.co.uk
:
Mentors:
Depends on:
Blocks: 579672
  Show dependency treegraph
 
Reported: 2010-07-21 20:20 PDT by therube
Modified: 2010-12-23 01:56 PST (History)
13 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
a3+


Attachments
Screenshot with various extension status bar icons displaying. (17.74 KB, image/png)
2010-07-21 20:24 PDT, therube
no flags Details
Screenshot with (3rd-party) extensions Status Bar icons missing. (23.46 KB, image/png)
2010-07-21 20:26 PDT, therube
no flags Details
Possible patch (673 bytes, patch)
2010-07-28 03:43 PDT, neil@parkwaycc.co.uk
no flags Details | Diff | Splinter Review
Updated for review comments (2.16 KB, patch)
2010-07-29 12:17 PDT, neil@parkwaycc.co.uk
gavin.sharp: review+
gavin.sharp: approval2.0+
Details | Diff | Splinter Review

Description therube 2010-07-21 20:20:43 PDT
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
Comment 1 therube 2010-07-21 20:24:04 PDT
Created attachment 459285 [details]
Screenshot with various extension status bar icons displaying.
Comment 2 therube 2010-07-21 20:26:45 PDT
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.)
Comment 3 therube 2010-07-21 20:33:22 PDT
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/
Comment 4 Igor Velkov 2010-07-21 20:34:06 PDT
same for win xp
Comment 5 therube 2010-07-21 21:08:09 PDT
> 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.
Comment 6 therube 2010-07-21 21:26:09 PDT
Oops, gave you a wrong range in #1.

http://hg.mozilla.org/mozilla-central/pushloghtml?startdate=2010-07-20&enddate=2010-07-22b
Comment 7 Robert Roessler 2010-07-25 11:42:37 PDT
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).
Comment 8 Justin Wood (:Callek) (Away until Aug 29) 2010-07-26 22:45:15 PDT
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.
Comment 9 Justin Wood (:Callek) (Away until Aug 29) 2010-07-26 23:30:00 PDT
[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.
Comment 10 Misak Khachatryan 2010-07-27 01:53:19 PDT
Now i remember that i see this problem after applying Personas patch.
Comment 11 neil@parkwaycc.co.uk 2010-07-27 03:56:25 PDT
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.
Comment 12 neil@parkwaycc.co.uk 2010-07-27 04:31:36 PDT
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.
Comment 13 Robert Kaiser 2010-07-27 05:27:03 PDT
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.
Comment 14 neil@parkwaycc.co.uk 2010-07-28 03:43:41 PDT
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!
Comment 15 neil@parkwaycc.co.uk 2010-07-29 12:17:29 PDT
Created attachment 461299 [details] [diff] [review]
Updated for review comments

i.e. using load instead of pageshow, which fires first anyway.
Comment 16 neil@parkwaycc.co.uk 2010-07-29 12:18:50 PDT
Comment on attachment 460829 [details] [diff] [review]
Possible patch

Sigh, missed a checkbox...
Comment 17 neil@parkwaycc.co.uk 2010-07-30 01:27:36 PDT
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 18 :Gavin Sharp [email: gavin@gavinsharp.com] 2010-07-30 09:21:24 PDT
Comment on attachment 461299 [details] [diff] [review]
Updated for review comments

a2.0=me
Comment 19 neil@parkwaycc.co.uk 2010-08-01 16:06:21 PDT
Pushed changeset 89b995bca723 to mozilla-central.
Comment 20 Misak Khachatryan 2010-08-02 03:21:39 PDT
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" ...
Comment 21 Philip Chee 2010-08-02 03:40:20 PDT
> Pushed changeset 89b995bca723 to mozilla-central.
ITYM:
http://hg.mozilla.org/mozilla-central/rev/e5e95e3947c3
Comment 22 neil@parkwaycc.co.uk 2010-08-02 03:40:30 PDT
Sorry, copy/paste error, I meant changeset e5e95e3947c3
Comment 23 Misak Khachatryan 2010-08-02 03:58:28 PDT
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
Comment 24 Igor Velkov 2010-08-02 08:55:17 PDT
Mozilla/5.0 (Windows; Windows NT 5.1; rv:2.0b3pre) Gecko/20100802 SeaMonkey/2.1a3pre - Build ID: 20100802005711

Icons still missing
Comment 25 Robert Kaiser 2010-08-02 09:25:58 PDT
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...
Comment 26 Igor Velkov 2010-08-02 09:45:01 PDT
I have NoScript installed but disabled when I post 1st message. Now I deinstall it.
No changes.
No one addons icon in statusbar.
Comment 27 Igor Velkov 2010-08-02 09:58:18 PDT
Same for Mozilla/5.0 (X11; Linux i686; rv:2.0b3pre) Gecko/20100802 SeaMonkey/2.1a3pre - Build ID: 20100802013443
Comment 28 Sven Grull 2010-08-02 10:39:07 PDT
(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.
Comment 29 therube 2010-08-02 12:52:36 PDT
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
Comment 30 neil@parkwaycc.co.uk 2010-08-02 14:19:11 PDT
I posted an explanation in the mozilla.dev.extensions newsgroup:

news://news.mozilla.org:119/g56dnTkfUJt7rsrRnZ2dnUVZ_jWdnZ2d@mozilla.org
Comment 31 Philip Chee 2010-08-02 21:33:54 PDT
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.
Comment 32 neil@parkwaycc.co.uk 2010-08-03 00:28:24 PDT
(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.
Comment 33 Philip Chee 2010-12-23 01:56:25 PST
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].

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