Closed
Bug 321981
Opened 19 years ago
Closed 19 years ago
(nsContextMenu.js) Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService).getBoolPref is not a function
Categories
(SeaMonkey :: UI Design, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: philip.chee, Assigned: iannbugzilla)
References
Details
(4 keywords, Whiteboard: [need testcase])
Attachments
(1 file)
(deleted),
patch
|
neil
:
review+
jag+mozilla
:
superreview+
csthomas
:
approval-seamonkey1.0+
Biesinger
:
approval-seamonkey1.1a+
|
Details | Diff | Splinter Review |
Error: Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService).getBoolPref is not a function
Source File: chrome://communicator/content/nsContextMenu.js Line: 283
How to reproduce:
Build an extension.
Import as overlay: contentAreaContextOverlay.xul
This pulls in nsContextMenu.js.
Attempt to use the contextmenu from extension.
This is LXR's view of the file:
<http://lxr.mozilla.org/seamonkey/source/xpfe/communicator/resources/content/nsContextMenu.js#281>
At around line 283 we have something like:
this.autoDownload = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService)
.getBoolPref("browser.download.autoDownload");
According to XULPlanet, getBoolPref is a method of nsIPrefBranch, not nsIPrefService.
According to BONSAI this was checked in as part of bug 7840.
See: <https://bugzilla.mozilla.org/attachment.cgi?id=167914>
It appears that the same error from the checkin at <http://lxr.mozilla.org/seamonkey/source/extensions/p3p/resources/content/p3pSummary.js#200> was fixed, but not this.
Not sure how this slipped through, reporter could you check this fixes your issue?
Assignee: guifeatures → iann_bugzilla
Status: NEW → ASSIGNED
Attachment #207256 -
Flags: superreview?
Attachment #207256 -
Flags: review?(neil.parkwaycc.co.uk)
Attachment #207256 -
Flags: superreview? → superreview?(jag)
Updated•19 years ago
|
Attachment #207256 -
Flags: superreview?(jag) → superreview+
Reporter | ||
Comment 2•19 years ago
|
||
> reporter could you check this fixes your issue?
I can confirm that fishing the nsContextMenu.js out of the jar file, modifying it and putting back the modified file fixes this error.
Question: why isn't this bug triggered when called from navigator.xul with exactly the same context menu and nsContextMenu.js?
By the way, should "this.autoDownload" also be in:
<http://lxr.mozilla.org/seamonkey/source/mail/base/content/nsContextMenu.js#237>
Comment 3•19 years ago
|
||
(In reply to comment #2)
>Question: why isn't this bug triggered when called from navigator.xul with
>exactly the same context menu and nsContextMenu.js?
Basically JavaScript interacts indirectly with C++ objects via an xpconnect wrapper which maintains a cache of the available methods. However each window also maintains a list of active wrappers. This means that if you retrieve a C++ object while its wrapper is still active the wrapper is reused. In this case the wrapper that the context menu retrieves in the navigator window happens to reuse the gPref variable that navigator.js created, whereas your extension's window has no cached wrapper to identify the availability of the getBoolPref method.
Comment 4•19 years ago
|
||
Comment on attachment 207256 [details] [diff] [review]
Simple fix (d'oh) v0.1 (Checked in trunk/branch 1.8 & 1.8.0)
/me thinks jag could easily have given r+sr on this
Attachment #207256 -
Flags: review?(neil.parkwaycc.co.uk) → review+
Comment on attachment 207256 [details] [diff] [review]
Simple fix (d'oh) v0.1 (Checked in trunk/branch 1.8 & 1.8.0)
Probably best this goes into 1.0 and 1.1, so requesting approval
Attachment #207256 -
Flags: approval-seamonkey1.1?
Attachment #207256 -
Flags: approval-seamonkey1.0?
Comment 6•19 years ago
|
||
Comment on attachment 207256 [details] [diff] [review]
Simple fix (d'oh) v0.1 (Checked in trunk/branch 1.8 & 1.8.0)
a=me for 1.0 and 1.1; 1.0 needs a second approval
Attachment #207256 -
Flags: approval-seamonkey1.1? → approval-seamonkey1.1+
Comment on attachment 207256 [details] [diff] [review]
Simple fix (d'oh) v0.1 (Checked in trunk/branch 1.8 & 1.8.0)
second a=me
Attachment #207256 -
Flags: approval-seamonkey1.0? → approval-seamonkey1.0+
Comment on attachment 207256 [details] [diff] [review]
Simple fix (d'oh) v0.1 (Checked in trunk/branch 1.8 & 1.8.0)
Checking in (trunk)
nsContextMenu.js;
new revision: 1.112; previous revision: 1.111
done
Checking in (branch 1.8)
nsContextMenu.js;
new revision: 1.108.2.4; previous revision: 1.108.2.3
done
Checking in (branch 1.8.0)
nsContextMenu.js;
new revision: 1.108.2.2.2.2; previous revision: 1.108.2.2.2.1
done
Attachment #207256 -
Attachment description: Simple fix (d'oh) v0.1 → Simple fix (d'oh) v0.1 (Checked in trunk/branch 1.8 & 1.8.0)
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Keywords: fixed1.8.0.1,
fixed1.8.1
Resolution: --- → FIXED
Whiteboard: fixed-seamonkey1.0
Updated•19 years ago
|
Whiteboard: fixed-seamonkey1.0 → fixed-seamonkey1.0 [need testcase]
Updated•19 years ago
|
Keywords: fixed-seamonkey1.0
Whiteboard: fixed-seamonkey1.0 [need testcase] → [need testcase]
Updated•18 years ago
|
Keywords: fixed-seamonkey1.1a
You need to log in
before you can comment on or make changes to this bug.
Description
•