Closed
Bug 433858
Opened 17 years ago
Closed 17 years ago
Thunderbird crashes after selecting any of the OpenPGP menu items provided by Enigmail extension [@ nsScriptableRegion::nsScriptableRegion][@ ... - nsMenuX::ObserveAttributeChanged]
Categories
(Core :: Widget: Cocoa, defect, P2)
Tracking
()
RESOLVED
FIXED
People
(Reporter: Ludwig.Huegelschaefer, Assigned: jaas)
Details
(Keywords: crash, fixed1.9.1, Whiteboard: [tb3needs])
Crash Data
Attachments
(1 file, 1 obsolete file)
8.88 KB,
patch
|
mstange
:
review+
roc
:
superreview+
benjamin
:
approval1.9.1+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9pre) Gecko/2008051304 Minefield/3.0pre
Build Identifier: Thunderbird nightly (3.0a2 right now)
Thunderbird crashes after selecting any of the OpenPGP menu items provided by Enigmail extension.
Reproducible: Always
Steps to Reproduce:
1. Install Enigmail nightly for TB trunk (http://www.hammernoch.net/mozilla/enigmail-trunk-tb-darwin-x86-ppc-trunk.xpi)
2. Restart Thunderbird.
3. Click on any one of the OpenPGP Menu items.
Actual Results:
TB crashes. The following messages from TB appear in the console.log:
14.05.08 12:59:47 [0x0-0x34034].org.mozilla.thunderbird Warning: unrecognized command line flag -foreground
14.05.08 13:00:49 [0x0-0x34034].org.mozilla.thunderbird Registering Enigmail account manager extension.
14.05.08 13:00:49 [0x0-0x34034].org.mozilla.thunderbird Enigmail account manager extension registered.
14.05.08 13:01:20 thunderbird-bin[335] *** Assertion failure in -[GeckoNSMenu insertItem:atIndex:], /SourceCache/AppKit/AppKit-949.27/Menus.subproj/NSMenu.m:616
14.05.08 13:01:20 thunderbird-bin[335] Mozilla has caught an Obj-C exception [NSInternalInconsistencyException: Invalid parameter not satisfying: (index >= 0) && (index <= (_itemArray ? CFArrayGetCount((CFArrayRef)_itemArray) : 0))]
14.05.08 13:01:20 [0x0-0x34034].org.mozilla.thunderbird 2008-05-14 13:01:20.181 thunderbird-bin[335:10b] *** Assertion failure in -[GeckoNSMenu insertItem:atIndex:], /SourceCache/AppKit/AppKit-949.27/Menus.subproj/NSMenu.m:616
14.05.08 13:01:20 [0x0-0x34034].org.mozilla.thunderbird 2008-05-14 13:01:20.186 thunderbird-bin[335:10b] Mozilla has caught an Obj-C exception [NSInternalInconsistencyException: Invalid parameter not satisfying: (index >= 0) && (index <= (_itemArray ? CFArrayGetCount((CFArrayRef)_itemArray) : 0))]
Expected Results:
No crash. Enigmail should be working as normal.
TB trunk is running on OS X 10.5.2
Reporter | ||
Updated•17 years ago
|
Flags: blocking-thunderbird3.0a2?
Version: unspecified → Trunk
Comment 1•17 years ago
|
||
Please provide a breakpad report id with the details of this crash. For more info on breakpad please see here:
http://kb.mozillazine.org/Breakpad
Note this could be a problem with Enigmail and not Thunderbird. Until we see the crash stack it is hard to tell.
Comment 2•17 years ago
|
||
I've actually just tried this with Running Enigmail version 0.96a (20080515) on Mac OS X 10.5.2 with roughly today's build.
No crash.
Reporter | ||
Comment 3•17 years ago
|
||
Mark,
Is this what you're looking for?
http://crash-stats.mozilla.com/report/index/08f9fda3-2287-11dd-8d27-0013211cbf8a
http://kb.mozillazine.org/Breakpad is offline since I read your request.
Comment 4•17 years ago
|
||
> Is this what you're looking for?
Yes it is thanks. Unfortunately, its a bit of a pain because we've got no symbols for Mac crashes at the moment (bug 411171).
Any chance you could try with Shredder Alpha 1 (Thunderbird 3.0a1)? available from http://www.mozillamessaging.com/en-US/thunderbird/early_releases/
I know we have symbols with that one, and unless anyone else can reproduce it with a debug build, its going to be hard to debug.
Reporter | ||
Comment 5•17 years ago
|
||
Ok, I have reproduced it with 3.0a1:
http://crash-stats.mozilla.com/report/index/eecda7a1-22a9-11dd-ae1a-001cc4e2bf68
HTH
Comment 6•17 years ago
|
||
Frame Module Signature [Expand] Source
0 thunderbird-bin nsScriptableRegion::nsScriptableRegion
1 thunderbird-bin NS_HexToRGB
2 thunderbird-bin NS_HexToRGB
3 thunderbird-bin NS_HexToRGB
4 libxpcom_core.dylib _NS_InvokeByIndex_P
5 thunderbird-bin MOZ_Z_inflateEnd
6 thunderbird-bin MOZ_Z_inflateEnd
7 libmozjs.dylib js_Invoke
8 libmozjs.dylib JS_CompareValues
9 libmozjs.dylib js_Invoke
10 libmozjs.dylib js_Invoke
11 libmozjs.dylib JS_CallFunctionValue
12 thunderbird-bin NS_HexToRGB
13 thunderbird-bin NS_HexToRGB
14 thunderbird-bin nsScriptableRegion::nsScriptableRegion
15 thunderbird-bin nsScriptableRegion::nsScriptableRegion
16 thunderbird-bin NS_HexToRGB
17 thunderbird-bin NS_HexToRGB
18 thunderbird-bin NS_HexToRGB
19 thunderbird-bin NS_HexToRGB
20 thunderbird-bin nsScriptableRegion::nsScriptableRegion
21 thunderbird-bin nsScriptableRegion::nsScriptableRegion
22 thunderbird-bin nsScriptableRegion::nsScriptableRegion
23 HIToolbox DispatchEventToHandlers
24 HIToolbox SendEventToEventTargetInternal
25 HIToolbox SendEventToEventTargetWithOptions
26 HIToolbox SendMenuOpening
27 HIToolbox DrawTheMenu
28 HIToolbox MenuChanged
29 HIToolbox TrackMenuCommon
30 HIToolbox MenuSelectCore
31 HIToolbox _HandleMenuSelection2
32 AppKit _NSHandleCarbonMenuEvent
33 AppKit _DPSNextEvent
34 AppKit -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
35 AppKit -[NSApplication run]
36 thunderbird-bin nsScriptableRegion::nsScriptableRegion
37 thunderbird-bin nsScriptableRegion::nsScriptableRegion
38 thunderbird-bin XRE_main
39 thunderbird-bin __darwin_gcc3_preregister_frame_info
40 thunderbird-bin start
41 thunderbird-bin start
There's 9 crashes of this type so far for 3.0a1. Looks like some of this is to do with the enigmail extension.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: qawanted → helpwanted
Summary: Thunderbird crashes after selecting any of the OpenPGP menu items provided by Enigmail extension. → Thunderbird crashes after selecting any of the OpenPGP menu items provided by Enigmail extension [@ nsScriptableRegion::nsScriptableRegion]
it seems lack of symbols is known. ignore the stack trace comment 0 includes the interesting assertion which should be sufficient.
Assignee: nobody → joshmoz
Component: General → Widget: Cocoa
Flags: blocking-thunderbird3.0a2?
Product: Thunderbird → Core
QA Contact: general → cocoa
Comment 9•17 years ago
|
||
(In reply to comment #2)
> I've actually just tried this with Running Enigmail version 0.96a (20080515) on
> Mac OS X 10.5.2 with roughly today's build.
>
> No crash.
Steps to reproduce:
1. Go to OpenPGP > Preferences and click on "Display expert settings".
2. Close the dialog and try to access the OpenPGP menu
Reporter | ||
Comment 10•17 years ago
|
||
Crash-report is to be found here: http://crash-stats.mozilla.com/report/index/79342a7d-3970-11dd-ab41-0013211cbf8a
Comment 11•17 years ago
|
||
I would nominate this for blocking-thunderbird3 except that flag doesn't seem to be available here. Enigmail is a fairly popular extension, not to mention required if you want to use Thunderbird to participate in security bugs on Bugzilla in the near future, so it'd be a shame to ship with it broken.
Updated•17 years ago
|
Flags: blocking1.9.1?
Updated•17 years ago
|
Whiteboard: [tb3needs]
Reporter | ||
Comment 12•17 years ago
|
||
Since it's a long time from the original report I tested again. The bug is still reproducable. Details: http://crash-stats.mozilla.com/report/index/7e6a4db1-72b7-4e80-8612-4b21c2081203
Comment 13•17 years ago
|
||
still no symbols.
Signature thunderbird-bin@0x8b51f0
UUID 7e6a4db1-72b7-4e80-8612-4b21c2081203
Time 2008-12-03 00:20:43-08
Uptime 138
Last Crash 10262346 seconds before submission
Product Thunderbird
Version 3.0b2pre
Build ID 20081202110701
Branch 1.9.1
OS Mac OS X
OS Version 10.5.5 9F33
CPU ppc
CPU Info
Crash Reason EXC_BAD_ACCESS / KERN_PROTECTION_FAILURE
Crash Address 0x8b61f0
Comments Clicking "OpenPGP" menu item provided by enigmail with enabled "Display Expert settings". See bug https://bugzilla.mozilla.org/show_bug.cgi?id=433858
Crashing Thread
Frame Module Signature [Expand] Source
0 thunderbird-bin thunderbird-bin@0x8b51f0
1 thunderbird-bin thunderbird-bin@0x8b62a4
2 thunderbird-bin thunderbird-bin@0x7413f8
3 thunderbird-bin thunderbird-bin@0x72c938
4 thunderbird-bin thunderbird-bin@0x7113a8
5 thunderbird-bin thunderbird-bin@0x53be54
6 libmozjs.dylib js_Interpret js/src/jsinterp.cpp:5118
Comment 14•17 years ago
|
||
Adding gozer to the CC, as he can probably fill us in on the state of symbols in the crash-stats stuff...
Comment 15•17 years ago
|
||
until a certain bug is fixed, you must use a release to get Mac crash symbols - 3.0b1 will do.
here are two crashes with that top of stack fwiw.
bp-e085b8d5-59fa-4f80-8c60-e50bc2081204
"crashed trying to uploade an excel spreadsheet of contacts"
thunderbird-bin nsScriptableRegion::nsScriptableRegion
thunderbird-bin pixman_storeProcForPicture_accessors
libxpcom_core.dylib NS_InvokeByIndex_P
libxpcom_core.dylib NS_SetGlobalThreadObserver
libxpcom_core.dylib NS_SetGlobalThreadObserver
libxpcom_core.dylib NS_ProcessNextEvent_P
thunderbird-bin MOZ_Z_inflateEnd
thunderbird-bin nsScriptableRegion::nsScriptableRegion
thunderbird-bin nsScriptableRegion::nsScriptableRegion
thunderbird-bin NS_HexToRGB
thunderbird-bin NS_HexToRGB
libxpcom_core.dylib NS_InvokeByIndex_P
thunderbird-bin MOZ_Z_inflateEnd
thunderbird-bin MOZ_Z_inflateEnd
libmozjs.dylib js_Invoke mozilla/js/src/jsinvoke.c:1297
libmozjs.dylib js_Interpret mozilla/js/src/jsinterp.c:4852
libmozjs.dylib js_Invoke mozilla/js/src/jsinvoke.c:1313
libmozjs.dylib js_InternalInvoke mozilla/js/src/jsinvoke.c:1369
libmozjs.dylib JS_CallFunctionValue mozilla/js/src/jslong.c:5054
thunderbird-bin NS_HexToRGB
thunderbird-bin NS_HexToRGB
thunderbird-bin nsScriptableRegion::nsScriptableRegion
thunderbird-bin nsScriptableRegion::nsScriptableRegion
bp-7df6aba2-1c83-41fa-9d12-a14942081204
thunderbird-bin nsScriptableRegion::nsScriptableRegion
thunderbird-bin nsScriptableRegion::nsScriptableRegion
thunderbird-bin nsScriptableRegion::nsScriptableRegion
thunderbird-bin nsScriptableRegion::nsScriptableRegion
thunderbird-bin nsScriptableRegion::nsScriptableRegion
libxpcom_core.dylib NS_InvokeByIndex_P
thunderbird-bin MOZ_Z_inflateEnd
thunderbird-bin MOZ_Z_inflateEnd
libmozjs.dylib js_Invoke
libmozjs.dylib JS_CompareValues
libmozjs.dylib js_Invoke
thunderbird-bin MOZ_Z_inflateEnd
thunderbird-bin MOZ_Z_adler32
libxpcom_core.dylib NS_InvokeByIndex_P
libxpcom_core.dylib NS_InvokeByIndex_P
thunderbird-bin nsScriptableRegion::nsScriptableRegion
thunderbird-bin nsScriptableRegion::nsScriptableRegion
thunderbird-bin NS_HexToRGB
thunderbird-bin NS_HexToRGB
Reporter | ||
Comment 16•17 years ago
|
||
Will a debug build provide the symbols wanted?
Comment 17•17 years ago
|
||
Reporter | ||
Comment 18•17 years ago
|
||
Reporter | ||
Comment 19•17 years ago
|
||
0 thunderbird-bin nsPrintSession::Release
1 thunderbird-bin nsPrintSession::Release
2 thunderbird-bin NS_HexToRGB
3 thunderbird-bin NS_HexToRGB
4 thunderbird-bin NS_HexToRGB
5 thunderbird-bin MOZ_Z_inflateEnd
6 libmozjs.dylib js_Interpret js/src/jsinterp.cpp:5118
7 libmozjs.dylib js_Invoke js/src/jsinvoke.cpp:1331
8 libmozjs.dylib js_InternalInvoke js/src/jsinvoke.cpp:1388
9 libmozjs.dylib JS_CallFunctionValue js/src/jsapi.cpp:5242
10 thunderbird-bin NS_HexToRGB
11 thunderbird-bin NS_HexToRGB
12 thunderbird-bin nsScriptableRegion::nsScriptableRegion
13 thunderbird-bin nsScriptableRegion::nsScriptableRegion
14 thunderbird-bin NS_HexToRGB
15 thunderbird-bin NS_HexToRGB
16 thunderbird-bin NS_HexToRGB
17 thunderbird-bin NS_HexToRGB
18 thunderbird-bin nsPrintSession::Release
19 thunderbird-bin nsPrintSession::Release
20 thunderbird-bin nsPrintSession::Release
21 HIToolbox HIToolbox@0x7e28
22 HIToolbox HIToolbox@0x6fc0
23 HIToolbox HIToolbox@0x6ddc
24 HIToolbox HIToolbox@0x6277c
25 HIToolbox HIToolbox@0x622b4
26 HIToolbox HIToolbox@0x62048
27 HIToolbox HIToolbox@0x61100
28 HIToolbox HIToolbox@0x5c934
29 HIToolbox HIToolbox@0x5c49c
30 AppKit AppKit@0xc67b4
31 AppKit AppKit@0x3c2fc
32 AppKit AppKit@0x3b7d0
33 AppKit AppKit@0x3548c
34 thunderbird-bin nsScriptableRegion::nsScriptableRegion
35 thunderbird-bin nsScriptableRegion::nsScriptableRegion
36 thunderbird-bin XRE_main
37 thunderbird-bin __darwin_gcc3_preregister_frame_info
38 thunderbird-bin start
39 thunderbird-bin start
Comment 20•17 years ago
|
||
those builds aren't useful, yes please use a debug build --disable-strip
you can use either of:
--enable-debug
or
--enable-debugger-info-modules
Comment 21•17 years ago
|
||
is bp-4dc4c02f-be94-4eb0-9544-980db2081205 a variation? nsScriptableRegion is second in stack, and is Mac-only crasher.
nsCOMPtr_base::~nsCOMPtr_base
nsScriptableRegion::nsScriptableRegion
nsScriptableRegion::nsScriptableRegion
nsScriptableRegion::nsScriptableRegion
nsScriptableRegion::nsScriptableRegion
NS_NewGenericFactory
NS_GetComponentRegistrar_P
PL_DHashTableFinish
NS_GetComponentRegistrar_P
NS_ShutdownXPCOM_P
XRE_CreateAppData
XRE_main
__darwin_gcc3_preregister_frame_info
start
Reporter | ||
Comment 22•17 years ago
|
||
Have built Shredder and enigmail with
ac_add_options --enable-debug
Result:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.1b3pre)
Gecko/20081206 Shredder/3.0b2pre
(Source checkout was on 2008-12-04)
09.12.08 08:16:47 thunderbird-bin[294] Stack trace:
Looking up symbols in process 294 named: thunderbird-bin
__raiseError (in CoreFoundation) + 80
objc_exception_throw (in libobjc.A.dylib) + 72
+[NSException raise:format:] (in CoreFoundation) + 0
-[NSAssertionHandler
handleFailureInMethod:object:file:lineNumber:description:] (in
Foundation) + 120
-[NSMenu insertItem:atIndex:] (in AppKit) + 196
nsMenuX::ObserveAttributeChanged(nsIDocument*, nsIContent*, nsIAtom*)
(in libwidget_mac.dylib) (nsMenuX.mm:816)
nsNodeUtils::AttributeChanged(nsIContent*, int, nsIAtom*, int, unsigned
int) (in libgklayout.dylib) (nsNodeUtils.cpp:108)
nsXULElement::UnsetAttr(int, nsIAtom*, int) (in libgklayout.dylib)
(nsXULElement.cpp:1374)
nsGenericElement::RemoveAttribute(nsAString_internal const&) (in
libgklayout.dylib) (nsAttrName.h:236)
nsIDOMElement_RemoveAttribute(JSContext*, unsigned int, long*) (in
libxpconnect.dylib) (dom_quickstubs.cpp:2001)
js_Interpret (in libmozjs.dylib) (jsinterp.cpp:5127)
js_Invoke (in libmozjs.dylib) (jsinterp.cpp:1331)
js_InternalInvoke (in libmozjs.dylib) (jsinterp.cpp:1389)
JS_CallFunctionValue (in libmozjs.dylib) (jsapi.cpp:5243)
nsJSContext::CallEventHandler(nsISupports*, void*, void*, nsIArray*,
nsIVariant**) (in libgklayout.dylib) (nsJSEnvironment.cpp:1981)
nsJSEventListener::HandleEvent(nsIDOMEvent*) (in libgklayout.dylib)
(nsCOMPtr.h:777)
nsEventListenerManager::HandleEventSubType(nsListenerStruct*,
nsIDOMEventListener*, nsIDOMEvent*, nsPIDOMEventTarget*, unsigned int)
(in libgklayout.dylib) (nsEventListenerManager.cpp:1091)
nsEventListenerManager::HandleEvent(nsPresContext*, nsEvent*,
nsIDOMEvent**, nsPIDOMEventTarget*, unsigned int, nsEventStatus*) (in
libgklayout.dylib) (nsAutoPtr.h:955)
nsEventTargetChainItem::HandleEvent(nsEventChainPostVisitor&, unsigned
int, int) (in libgklayout.dylib) (nsCOMPtr.h:975)
nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor&,
unsigned int, nsDispatchingCallback*, int) (in libgklayout.dylib)
(nsEventDispatcher.cpp:302)
nsEventDispatcher::Dispatch(nsISupports*, nsPresContext*, nsEvent*,
nsIDOMEvent*, nsEventStatus*, nsDispatchingCallback*) (in
libgklayout.dylib) (nsEventDispatcher.cpp:518)
nsEventDispatcher::DispatchDOMEvent(nsISupports*, nsEvent*,
nsIDOMEvent*, nsPresContext*, nsEventStatus*) (in libgklayout.dylib)
(nsEventDispatcher.cpp:580)
nsMenuX::OnOpen() (in libwidget_mac.dylib) (nsMenuX.mm:574)
nsMenuX::MenuOpened(nsMenuEvent const&) (in libwidget_mac.dylib)
(nsMenuX.mm:332)
MyMenuEventHandler(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*)
(in libwidget_mac.dylib) (nsMenuX.mm:916)
DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*,
HandlerCallRec*) (in HIToolbox) + 1488
SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*,
HandlerCallRec*) (in HIToolbox) + 468
SendEventToEventTargetWithOptions (in HIToolbox) + 56
SendMenuOpening(MenuSelectData*, MenuData*, double, unsigned long,
__CFDictionary*, unsigned char, unsigned char*) (in HIToolbox) + 456
DrawTheMenu(MenuSelectData*, __CFArray**, unsigned char, unsigned char*)
(in HIToolbox) + 252
MenuChanged(MenuSelectData*, unsigned char, unsigned char) (in
HIToolbox) + 528
TrackMenuCommon(MenuSelectData&, unsigned char*) (in HIToolbox) + 1296
MenuSelectCore(MenuData*, Point, double, unsigned long, OpaqueMenuRef**,
unsigned short*) (in HIToolbox) + 232
_HandleMenuSelection2 (in HIToolbox) + 392
_NSHandleCarbonMenuEvent (in AppKit) + 192
_DPSNextEvent (in AppKit) + 1852
-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in
AppKit) + 116
-[NSApplication run] (in AppKit) + 740
nsAppShell::Run() (in libwidget_mac.dylib) (nsAppShell.mm:692)
nsAppStartup::Run() (in libtoolkitcomps.dylib) (nsAppStartup.cpp:193)
XRE_main (in XUL) (nsAppRunner.cpp:3266)
main (in thunderbird-bin) (nsMailApp.cpp:103)
_start (in thunderbird-bin) + 760
start (in thunderbird-bin) + 48
Hope that helps!
Summary: Thunderbird crashes after selecting any of the OpenPGP menu items provided by Enigmail extension [@ nsScriptableRegion::nsScriptableRegion] → Thunderbird crashes after selecting any of the OpenPGP menu items provided by Enigmail extension [@ nsScriptableRegion::nsScriptableRegion][@ ... - nsMenuX::ObserveAttributeChanged]
Assignee | ||
Comment 23•17 years ago
|
||
Throwing native menu items into our menus is definitely not supported by our native menu impl, which is completely DOM-based. Unfortunately it'll take some time to think out how we might allow for that, and any fix would almost certainly be high-risk, so blocking1.9.1-.
To confirm my hypothesis, can someone post a screenshot of the menu items provided by the Enigmail extension, including enough context to see what menu they are in?
Flags: blocking1.9.1? → blocking1.9.1-
Reporter | ||
Comment 24•17 years ago
|
||
Here is a screenshot of the OpenPGP menu provided by enigmail in standard view. This is possible to show with Shredder.
http://www.hammernoch.net/mozilla/Shredder_OpenPGP_menu_standard.jpg
If the enigmail preferences are set to show the extended view by checking "Display expert Settings", then Shredder crashes, as said. However, it's possible to show the extended view with enigmail extension in Thunderbird 2.0.0.18.
http://www.hammernoch.net/mozilla/Thunderbird2_OpenPGP_menu_extended.jpg
Comment 25•17 years ago
|
||
josh, afaict that stuff comes from this:
http://mxr-test.konigsberg.mozilla.org/addons/source/71/chrome/content/enigmail/enigmailMessengerOverlay.xul?mark=215-283#200
the advanced mode seems to be controlled by this:
http://mxr-test.konigsberg.mozilla.org/addons/source/71/chrome/content/enigmail/enigmailCommon.js?mark=1827-1828,1835-1836#1819
or some fairly similar variant. note that mxr-stage/mxr do not have addons available, so you'll need to be whitelisted.
Comment 26•17 years ago
|
||
Haven't seen this mentioned in the comments above, but this crash does not occur if the menu item is selected when a "compose message" window is open.
Comment 27•17 years ago
|
||
timeless: can you add the folks on this bug to the whitelist for konigsberg?
Patrik: What's the motivation for adding native menu items rather than just using normal DOM XUL stuff?
Comment 28•17 years ago
|
||
I'm not aware that I'm using native menu items. I'm creating the menu using the XUL overlay below -- isn't that a normal XUL menu?
<menubar id="mail-menubar">
<menu id="menu_Enigmail"
label="&enigmail.openpgp.label;"
accesskey="&enigmail.messengermenu.accesskey;"
insertbefore="tasksMenu">
<menupopup id="menu_EnigmailPopup"
onpopupshowing="EnigCollapseAdvanced(this, 'hidden', enigUpdateOptionsDisplay());">
....
EnigCollapseAdvanced() the following (I think simple) JavaScript function that does what I consider normal DOM functionality:
function EnigCollapseAdvanced(obj, attribute, dummy) {
DEBUG_LOG("enigmailCommon.js: EnigCollapseAdvanced: test\n");
var advancedUser = EnigGetPref("advancedUser");
var obj = obj.firstChild;
while (obj) {
if (obj.getAttribute("advanced") == "true") {
if (advancedUser) {
obj.removeAttribute(attribute);
}
else {
obj.setAttribute(attribute, "true");
}
}
else if (obj.getAttribute("advanced") == "reverse") {
if (advancedUser) {
obj.setAttribute(attribute, "true");
}
else {
obj.removeAttribute(attribute);
}
}
obj = obj.nextSibling;
}
}
Comment 29•17 years ago
|
||
sorry. i should have been clearer. afaict josh was totally wrong on that point.
Assignee | ||
Comment 30•17 years ago
|
||
Yup - I guessed that enigmail was putting native menu items in the menus and that apparently isn't true. I'll check this out again.
Comment 31•17 years ago
|
||
Renominating then, since this was minused based on a misconception (comment 23).
Flags: blocking1.9.1- → blocking1.9.1?
Assignee | ||
Comment 32•17 years ago
|
||
I built Shredder from comm-central and installed the trunk enigmail extension. All the OpenPGP menu items work fine for me, no crash on Mac OS X 10.5.
I need better repro steps. Is this crash perhaps 10.4 only? Does this crash only happen in Gecko 1.9.0-based builds and not Gecko 1.9.1? Do I have to have keys set up? Do I need an encrypted message or something like that?
Comment 33•17 years ago
|
||
I implemented a workaround which seems to be mostly (but apparently not always) fine: originally, the menu had some elements with hidden="true"; these were unhidden if the user enables the "Expert Settings" in the preferences window. A while ago (since the bug was minused) I changed the behavior to have no hidden menu entries at start and to hide the nessessary elements in EnigCollapseAdvanced(). I can easily revert the change to get a better reproducability again.
Assignee | ||
Comment 34•17 years ago
|
||
Can you post a zipped xpi file that uses the old behavior so I can reproduce?
Reporter | ||
Comment 35•17 years ago
|
||
Can't post it here, as it exceeds the size limit for non-patch files. You can download it here:
http://www.hammernoch.net/mozilla/enigmail-trunk-tb-darwin-x86-ppc-trunk_special.xpi
I have reverted enigmailMessengerOverlay.xul, so that Shredder crashes reproducibly when "Display Expert Settings" is enabled and OpenPGP menu is clicked. Other functions work as expected. It will work again, when "Display expert settings" is disabled again by changing
user_pref("extensions.enigmail.advancedUser", true);
from true to false in prefs.js.
HTH
Assignee | ||
Comment 36•17 years ago
|
||
Thanks for the xpi Ludwig. This fixes the problem, bad assumption about attribute change notifications.
Attachment #357020 -
Flags: review?(mstange)
Attachment #357020 -
Flags: review?(mstange)
Assignee | ||
Comment 37•17 years ago
|
||
Comment on attachment 357020 [details] [diff] [review]
fix v1.0
Hold off on review while I look into something.
Assignee | ||
Comment 38•17 years ago
|
||
This is a better fix, it allows the DOM to update the hidden state on a bunch of items and send notifications in any order, we'll update items in the correct order without crashing.
Attachment #357020 -
Attachment is obsolete: true
Attachment #357824 -
Flags: review?(mstange)
Updated•17 years ago
|
Keywords: helpwanted
Updated•17 years ago
|
Attachment #357824 -
Flags: review?(mstange) → review+
Attachment #357824 -
Flags: superreview?(roc)
Attachment #357824 -
Flags: superreview?(roc) → superreview+
Assignee | ||
Comment 39•17 years ago
|
||
pushed to mozilla-central
http://hg.mozilla.org/mozilla-central/rev/3a19996dfa53
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Attachment #357824 -
Flags: approval1.9.1?
Updated•17 years ago
|
Attachment #357824 -
Flags: approval1.9.1? → approval1.9.1+
Assignee | ||
Comment 40•17 years ago
|
||
pushed to mozilla-1.9.1
http://hg.mozilla.org/releases/mozilla-1.9.1/rev/36698047953c
Keywords: fixed1.9.1
Comment 41•17 years ago
|
||
Josh, is this this code untestable or is there a reason you didn't checkin a test for it? Seems like something we'd want tested well...
Flags: in-testsuite?
Comment 42•17 years ago
|
||
The patch contains a test, it's in widget/tests/native_menus_window.xul.
Flags: in-testsuite? → in-testsuite+
Comment 43•17 years ago
|
||
Ah, missed that. Thanks.
Updated•14 years ago
|
Crash Signature: [@ nsScriptableRegion::nsScriptableRegion]
[@ ... - nsMenuX::ObserveAttributeChanged]
You need to log in
before you can comment on or make changes to this bug.
Description
•