Closed
Bug 433858
Opened 16 years ago
Closed 15 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•16 years ago
|
Flags: blocking-thunderbird3.0a2?
Version: unspecified → Trunk
Comment 1•16 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•16 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•16 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•16 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•16 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•16 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•16 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•16 years ago
|
||
Crash-report is to be found here: http://crash-stats.mozilla.com/report/index/79342a7d-3970-11dd-ab41-0013211cbf8a
Comment 11•16 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•16 years ago
|
Flags: blocking1.9.1?
Updated•16 years ago
|
Whiteboard: [tb3needs]
Reporter | ||
Comment 12•16 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•16 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•16 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•16 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•16 years ago
|
||
Will a debug build provide the symbols wanted?
Comment 17•16 years ago
|
||
pick http://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/3.0b1-candidates/build2/thunderbird-3.0b1.en-US.mac.dmg
Reporter | ||
Comment 18•16 years ago
|
||
Thanks Wayne! Crashes, got symbols: http://crash-stats.mozilla.com/report/list?product=Thunderbird&branch=1.9.1&version=Thunderbird%3A3.0b1&platform=mac&query_search=signature&query_type=contains&query=&date=&range_value=1&range_unit=days&do_query=1&signature=nsPrintSession%3A%3ARelease()
Reporter | ||
Comment 19•16 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•16 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•16 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•16 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•16 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•16 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•16 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•16 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•15 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•15 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•15 years ago
|
||
sorry. i should have been clearer. afaict josh was totally wrong on that point.
Assignee | ||
Comment 30•15 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•15 years ago
|
||
Renominating then, since this was minused based on a misconception (comment 23).
Flags: blocking1.9.1- → blocking1.9.1?
Assignee | ||
Comment 32•15 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•15 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•15 years ago
|
||
Can you post a zipped xpi file that uses the old behavior so I can reproduce?
Reporter | ||
Comment 35•15 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•15 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•15 years ago
|
||
Comment on attachment 357020 [details] [diff] [review] fix v1.0 Hold off on review while I look into something.
Assignee | ||
Comment 38•15 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•15 years ago
|
Keywords: helpwanted
Updated•15 years ago
|
Attachment #357824 -
Flags: review?(mstange) → review+
Attachment #357824 -
Flags: superreview?(roc)
Attachment #357824 -
Flags: superreview?(roc) → superreview+
Assignee | ||
Comment 39•15 years ago
|
||
pushed to mozilla-central http://hg.mozilla.org/mozilla-central/rev/3a19996dfa53
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Attachment #357824 -
Flags: approval1.9.1?
Updated•15 years ago
|
Attachment #357824 -
Flags: approval1.9.1? → approval1.9.1+
Assignee | ||
Comment 40•15 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•15 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•15 years ago
|
||
The patch contains a test, it's in widget/tests/native_menus_window.xul.
Flags: in-testsuite? → in-testsuite+
Comment 43•15 years ago
|
||
Ah, missed that. Thanks.
Updated•13 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
•