Closed Bug 81917 Opened 24 years ago Closed 24 years ago

nsIWebBrowserChrome::setStatus() doesn't work as documented

Categories

(SeaMonkey :: UI Design, defect, P3)

x86
Windows 2000
defect

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 99009
mozilla1.2alpha

People

(Reporter: rbs, Assigned: paulkchen)

References

()

Details

From within layout, to display a message on the status bar onMouseOver, when I try to use: setStatus(nsIWebBrowserChrome::STATUS_SCRIPT, aStatusMessage) it doesn't work. However, it works if I change the call to instead use the flag 'STATUS_LINK'. The code under consideration is below: http://lxr.mozilla.org/seamonkey/source/layout/mathml/base/src/nsMathMLmactionFr ame.cpp#362 Am I missing something else that has to be done to display a message on a content that is not necessarily a link?
Target Milestone: --- → mozilla0.9.2
Target Milestone: mozilla0.9.2 → mozilla0.9.3
I traced (by hand) the path through which this call goes and I don't see anything to prevent JS statis text from being handled correctly. Chrome object you're calling is implemented here: http://lxr.mozilla.org/seamonkey/source/xpfe/appshell/src/nsContentTreeOwner.cpp #311 When called it handles STATUS_SCRIPT by calling SetJSStatus on an nsIXULBrowserWindow object associated with the window. This is a Javascript object implemented here: http://lxr.mozilla.org/seamonkey/source/xpfe/browser/resources/content/nsBrowser StatusHandler.js#85 As far as I can tell this should work as intended. If you have a reproducable test case, I can try step debugging through to confirm or disprove this.
STEPS TO REPRODUCE: 1) With a MathML-enabled build, visit /layout/mathml/tests/various.xml (http://lxr.mozilla.org/seamonkey/source/layout/mathml/tests/various.xml) Follow the indication about mousing over on that page. -> Observe that you see the status message (this is because I changed the code to use STATUS_LINK). 2) a) Edit the corresponding source file (nsMathMLmactionFrame.cpp) and change STATUS_LINK back to STATUS_SCRIPT. b) Re-compile /layout/ for the change to take effect. c) re-visit /layout/mathml/tests/various.xml -> the status messages don't show up anymore.
Assignee: adamlock → pchen
Component: Embedding: Docshell → XP Apps
QA Contact: adamlock → sairuh
I stepped through and it is going the route I thought it was so docshell is in the clear. However, when it reaches setJSStatus in nsBrowserStatusHandler.js, it fails at the final hurdle. After copying the text value to a jsStatus member, it it calls updateStatusField(). Source for method is below: http://lxr.mozilla.org/seamonkey/source/xpfe/browser/resources/content/nsBrowserStatusHandler.js#113 At the top of this method you will see a strange looking assignment that assigns what text to display depending on values in various members in this order of precedence: overLink (link hovering) status (general loading status text) jsStatus jsDefaultStatus defaultStatus As you can see, jsStatus is 3rd highest priority being general loading info stored in "status". The "status" is set to "Read http://foo/various.xml" so the "jsStatus" is never displayed. The simple fix would be to put "status" below "jsStatus", but this might have knock on effects. Reassigning to XP Apps for consideration to whether swapping the order would be okay.
CC'ing Jag
I think you can safely move jsStatus before status. rbs, can you test that and see if it addresses your needs? Could you also see if there's any negative impact on the status text during "normal" browsing activities?
nav triage team: Marking mozilla1.0
Target Milestone: mozilla0.9.3 → mozilla1.0
marking p3
Status: NEW → ASSIGNED
Priority: -- → P3
marking mozilla1.2
Target Milestone: mozilla1.0 → mozilla1.2
Noted that the fix for bug 99009 implemented the suggestion made here. *** This bug has been marked as a duplicate of 99009 ***
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → DUPLICATE
v
Status: RESOLVED → VERIFIED
Product: Core → Mozilla Application Suite
You need to log in before you can comment on or make changes to this bug.