Last Comment Bug 362685 - Growl Integration for Mac OS X (nsIAlertsService)
: Growl Integration for Mac OS X (nsIAlertsService)
Status: RESOLVED FIXED
:
Product: Firefox
Classification: Client Software
Component: Shell Integration (show other bugs)
: Trunk
: PowerPC Mac OS X
: -- normal with 2 votes (vote)
: ---
Assigned To: Shawn Wilsher :sdwilsh
:
: Robert Strong [:rstrong] (use needinfo to contact me)
Mentors:
http://growl.info/documentation/devel...
Depends on: 378785 380603
Blocks: 282185 308552 378527 378818
  Show dependency treegraph
 
Reported: 2006-12-03 15:44 PST by Shawn Wilsher :sdwilsh
Modified: 2007-05-14 15:01 PDT (History)
21 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
v0.1 (15.88 KB, patch)
2006-12-07 18:47 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v0.2 (27.33 KB, patch)
2006-12-10 11:49 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v0.3 (29.20 KB, patch)
2006-12-14 10:01 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v0.4 (30.96 KB, patch)
2007-01-04 19:38 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v0.5 (31.09 KB, patch)
2007-01-04 21:42 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
1.0 (32.55 KB, patch)
2007-01-05 15:34 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v1.1 (32.93 KB, patch)
2007-02-02 15:48 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v2.0 (307.17 KB, patch)
2007-02-28 17:13 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v2.0 backtrace (2.63 KB, text/plain)
2007-02-28 17:31 PST, Shawn Wilsher :sdwilsh
no flags Details
v2.1 (155.32 KB, patch)
2007-02-28 18:24 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v2.2 (34.92 KB, patch)
2007-03-02 10:16 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v2.3 (31.34 KB, patch)
2007-03-09 15:58 PST, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v2.4 (33.98 KB, patch)
2007-03-23 16:55 PDT, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v2.5 (37.94 KB, patch)
2007-04-05 08:09 PDT, Shawn Wilsher :sdwilsh
mozcbarrett: review+
Details | Diff | Splinter Review
v2.6 (38.12 KB, patch)
2007-04-23 12:57 PDT, Shawn Wilsher :sdwilsh
asaf: review+
Details | Diff | Splinter Review
v2.7 (37.96 KB, patch)
2007-04-23 17:32 PDT, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
Growl Code v1.0 (122.44 KB, patch)
2007-04-23 17:37 PDT, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
Growl Code v1.1 (127.96 KB, patch)
2007-04-23 18:16 PDT, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
v2.8 (37.97 KB, patch)
2007-04-23 18:30 PDT, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review
Growl Code v1.2 (127.82 KB, patch)
2007-04-24 06:57 PDT, Shawn Wilsher :sdwilsh
no flags Details | Diff | Splinter Review

Description Shawn Wilsher :sdwilsh 2006-12-03 15:44:33 PST
Implement nsIAlertsService for Mac OS X using Growl, a third-party notification system for Mac OS X.

This will be using the sdk without the installer (as per discussions with mconnor).
Comment 1 Håkan Waara 2006-12-03 16:31:08 PST
nsIAlertsService sounds like something that has to do with dialogs. How about nsINotificationService or something like that?  Also, is it supposed to be eventually implemented by other platforms or will stay strictly OS X?
Comment 2 Håkan Waara 2006-12-03 16:32:20 PST
Grr, right after comitting the comment, I saw the the service already exists. Ignore me...
Comment 3 Shawn Wilsher :sdwilsh 2006-12-05 20:24:35 PST
So, I need to convert an nsAString to an NSString, and I found a nice file that provides a function to do that for me, but I have no idea how to include it for building purposes.  The file is here:
http://landfill.mozilla.org/mxr-test/seamonkey/source/embedding/browser/cocoa/src/NSString+Utils.h

Suggestions? (either how to not use the file, or how to include it in the build process)
Comment 4 Håkan Waara 2006-12-06 04:48:45 PST
(In reply to comment #3)

Until we have helper methods for this in xpcom (there's a bug filed, though I can't find it), you can simply do [NSString stringWithCharacters:aString.BeginReading() length:aString.Length()]
Comment 5 Shawn Wilsher :sdwilsh 2006-12-06 05:00:09 PST
(In reply to comment #4)
> (In reply to comment #3)
> 
> Until we have helper methods for this in xpcom (there's a bug filed, though I
> can't find it), you can simply do [NSString
> stringWithCharacters:aString.BeginReading() length:aString.Length()]

That was the first thing I tried actually, but BeginReading() and/or (can't recall) .Length don't seem to be defined for nsAString.  I saw your code in which you used nsAutoString and it worked though.  Perhaps I'm missing a header or something.
Comment 6 Shawn Wilsher :sdwilsh 2006-12-07 18:47:23 PST
Created attachment 247921 [details] [diff] [review]
v0.1

Initial work.

This only uses the title and text of the alert, but it shows it can work.  The best way to test this is to make sure "browser.download.manager.showAlertOnComplete" is set to true, then download a file that takes a little while to complete.

Requirements:
You must have the growl framework installed, and located in "/Library/Frameworks/Growl.framework".  You can get it here:
http://growl.info/downloads_developers.php

I can only test this on 10.4.

Comments are welcomed.
Comment 7 Shawn Wilsher :sdwilsh 2006-12-10 11:49:23 PST
Created attachment 248178 [details] [diff] [review]
v0.2

Alright, so this adds support for images, but it crashes the browser.  I'm not really sure why at the moment, but I threw in some printf statements (in patch), and I get the following output before the crash:

Registered with Growl
Send to the Loader
Dispatching With Image

So, it looks to me like I might not be doing something correct with Growl, but I'm not really sure.  Any thoughts?
Comment 8 Håkan Waara 2006-12-10 13:26:42 PST
Comment on attachment 248178 [details] [diff] [review]
v0.2


>+- (id) initWithTitle:(NSString*)aTitle
>+                text:(NSString*)aText
>+           clickable:(BOOL)aClickable
>+              cookie:(NSString*)aCookie
>+            observer:(nsIObserver*)aListener
>+{
>+  mAlertTitle     = aTitle;
>+  mAlertText      = aText;
>+  mAlertClickable = aClickable;
>+  mAlertCookie    = aCookie;
>+  mAlertListener  = aClickable ? aListener : nil;

You're most likely crashing because you're not retaining these. The objects are since long gone (and the pointers are bogus) when they are passed to Growl.

Also, while I'm commenting this method, I'd advice to use the standard init pattern:

if ((self = [super init])) {
  // init stuff here
}
return self;
Comment 9 Shawn Wilsher :sdwilsh 2006-12-14 10:01:15 PST
Created attachment 248670 [details] [diff] [review]
v0.3

...almost

I've got an issue with the observers still not working.  I'm discussing this on the growl discussion list (the functions are not being called for some strange reason).

I also know I should be weak_linking the framework, which I don't do and I'm not really sure how to go about doing that with our build system.  My include hack probably isn't correct though.

Other that those issues, this patch is basically done, so if someone wants to do a pseudo-review, that'd be greatly appreciated.
Comment 10 Shawn Wilsher :sdwilsh 2007-01-04 19:38:40 PST
Created attachment 250538 [details] [diff] [review]
v0.4

h'ok

So, this now adds the framework (which you have to supply for now in toolkit/components/alerts/src/mac/) into the application bundle like we have to.

Still have an issue with growl telling me I don't supply a registration dictionary, even though I do.  I'm still working on resolving that with the growl people.

We'll also be building a custom framework of growl that only includes the stuff we need to reduce file size.  I've already discussed this with the Growl people, and we'll be keeping a repository over there for it (which I think I volunteered myself to maintain).

I would really like to start getting some review-like feedback on what I have, as I'm sure what I'm doing isn't quite ideal everywhere.
Comment 11 Shawn Wilsher :sdwilsh 2007-01-04 21:42:57 PST
Created attachment 250551 [details] [diff] [review]
v0.5

Hey, it works!  Well, click and timed out listeners don't, but I'm not really sure why.  Looking into with the Growl people (looks like my code is right, they just aren't being called).

Turns out GrowlDelegate is used inside the framework, so I changed my class to mozGrowlDelegate.
Comment 12 Shawn Wilsher :sdwilsh 2007-01-05 15:34:06 PST
Created attachment 250647 [details] [diff] [review]
1.0

mconnor told me to get a review from josh for this, and bsmedberg for the build stuff.

bsmedberg - I'm fairly certain you won't like how I did some of the build stuff (notably the Frameworks directory in the application package).  Please provide a suggestion if you don't like how I did it, because that was my best guess at what to do :)

This registers itself with growl, and dispatches the notification like it should.  It will also does what nsAlertsService does on windows/linux with the observers passed to it.
Comment 13 Josh Aas 2007-01-05 18:13:18 PST
Comment on attachment 250647 [details] [diff] [review]
1.0

Does this involve putting the growl framework into our tree and shipping it in our app bundle?
Comment 14 Shawn Wilsher :sdwilsh 2007-01-05 18:16:44 PST
(In reply to comment #13)
> (From update of attachment 250647 [details] [diff] [review])
> Does this involve putting the growl framework into our tree and shipping it in
> our app bundle?

yes, and sadly we do not have a choice currently (long winded discussion on irc).
Comment 15 Håkan Waara 2007-01-06 03:50:41 PST
(In reply to comment #14)
> (In reply to comment #13)
> > (From update of attachment 250647 [details] [diff] [review] [details])
> > Does this involve putting the growl framework into our tree and shipping it in
> > our app bundle?
> 
> yes, and sadly we do not have a choice currently (long winded discussion on
> irc).
> 

The question (that hopefully has been asked before) is, is that possible to do without growl being tri-licensed?
Comment 16 Shawn Wilsher :sdwilsh 2007-01-06 08:04:05 PST
(In reply to comment #15)
> The question (that hopefully has been asked before) is, is that possible to do
> without growl being tri-licensed?

Type in 'about:license' into the URL bar and you'll see we ship stuff that isn't tri-licensed already.
Comment 17 Shawn Wilsher :sdwilsh 2007-01-16 12:59:00 PST
So, I was lying in bed last night, and I realized that I leak observers if Growl isn't installed.  :(

That's a known issue with the current patch, but I'd like the rest of the code reviewed still.
Comment 18 Shawn Wilsher :sdwilsh 2007-02-02 15:48:13 PST
Created attachment 253799 [details] [diff] [review]
v1.1

Ok, fixes leak and we are back to the framework.  My efforts of using a statically linked version of the growl application bridge resulted in a the browser crashing,  and since nobody could determine what was going on, I went back with this.

This fixes that memory leak I talked about too.
Comment 19 Josh Aas 2007-02-07 00:28:06 PST
Comment on attachment 253799 [details] [diff] [review]
v1.1

I am firmly against supporting growl via this approach. I do not want another third-party bundle in our tree/apps (the other being JEP).

I don't think supporting growl is important enough to warrant the pain that this is going to cause. If I am told that we must support growl somehow then I will review with an eye towards alternative solutions first.

Sorry!
Comment 20 Chris Forsythe 2007-02-07 05:26:17 PST
(In reply to comment #19)
> (From update of attachment 253799 [details] [diff] [review])
> the pain that this is going to cause.

What pain?
Comment 21 Josh Aas 2007-02-07 10:21:13 PST
- we have to drop new code every time growl updates
- we have to coordinate with your OS support schedule (what happens when growl drops 10.3 support and we don't?)
- we have to release updates every time something goes majorly wrong in the third party code
- we have no idea what the growl project's standards are for code quality and support

The Mozilla project and the Growl project basically have nothing in common in terms of our needs, desires, or organization. I see this potentially becoming a problem in the future when we need the growl project to do things to keep our story clean and straight and growl doesn't want to do it.

This is less of a problem with JEP since we are the only major consumer of JEP and we work closely with the sole developer. Also, JEP is absolutely necessary while the need for growl is very debatable.
Comment 22 Rod Fleischer 2007-02-07 10:46:43 PST
Forgive me if my question is naive, but couldn't you add all the necessary hooks to just utilize Growl without including Growl in your distribution?  If Growl isn't installed just pop up a window and say "You need to download and install Growl first, go here and get it."

This wouldn't be terribly different from most of the other apps that use Growl (e.g. Adium).  Adium ships Growl with its distribution (or so I recall) but doesn't actually install it, that requires user intervention.  Growl notifications in Adium are also not enabled by default.  The GUI just tells you to install it when you go to enable a feature that requires it, if you don't already have it installed.  You could even just link to the website instead of shipping their image.

"The Mozilla project and the Growl project basically have nothing in common in
terms of our needs, desires, or organization."

Only the large (and growing) number of Mac users who would really like to see the two interoperate.  You have those in common, they should count for something.

Personally, I would really, really like to see Growl support in Fx and Tb.  There are probably tons of other Mac users who love Growl and Mozilla and want to see the two play nice also.  This sounds like more of a policy problem than a technological one.  Please (pretty please?) find a way to implement this that works for you, don't just give up on it.
Comment 23 Shawn Wilsher :sdwilsh 2007-02-28 17:13:19 PST
Created attachment 256861 [details] [diff] [review]
v2.0

static build - this crashes however, but sayrer is going to take a look.
Comment 24 Shawn Wilsher :sdwilsh 2007-02-28 17:31:26 PST
Created attachment 256867 [details]
v2.0 backtrace
Comment 25 Shawn Wilsher :sdwilsh 2007-02-28 18:24:25 PST
Created attachment 256875 [details] [diff] [review]
v2.1

whoops, bad patch
Comment 26 Robert Sayre 2007-03-01 17:57:53 PST
looks like something in growl misbehaving to me... in this stack the JS frame's script name was overwritten as "NSModalPanelRunLoopMode".

Date/Time:      2007-03-01 20:53:40.077 -0500
OS Version:     10.4.8 (Build 8L2127)
Report Version: 4

Command: firefox-bin
Path:    /Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/firefox-bin
Parent:  launchd [1]

Version: 3.0a3pre (3.0a3pre)

PID:    9157
Thread: 0

Exception:  EXC_BREAKPOINT (0x0006)
Code[0]:    0x00000002
Code[1]:    0x00000000


Thread 0 Crashed:
0   libmozjs.dylib           	0x010d2cd3 JS_Assert + 66 (jsutil.c:63)
1   libmozjs.dylib           	0x0105ba7a js_AllocStack + 354 (jsinterp.c:346)
2   libxpconnect.dylib       	0x2c981fd9 nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) + 1905 (xpcwrappedjsclass.cpp:1176)
3   libxpconnect.dylib       	0x2c97b809 nsXPCWrappedJS::CallMethod(unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) + 97 (xpcwrappedjs.cpp:571)
4   libxpcom_core.dylib      	0x0135c2a0 PrepareAndDispatch(nsXPTCStubBase*, unsigned, unsigned*) + 662 (xptcstubs_unixish_x86.cpp:93)
5   libxpcom_core.dylib      	0x0135c2fe nsXPTCStubBase::Stub3() + 52 (xptcstubsdef.inc:5)
6   libxpcom_core.dylib      	0x0134e813 nsTimerImpl::Fire() + 925 (nsTimerImpl.cpp:387)
7   libxpcom_core.dylib      	0x0134e99f nsTimerEvent::Run() + 191 (nsTimerImpl.cpp:458)
8   libxpcom_core.dylib      	0x0134aa56 nsThread::ProcessNextEvent(int, int*) + 556 (nsThread.cpp:483)
9   libxpcom_core.dylib      	0x012f34ef NS_ProcessPendingEvents_P(nsIThread*, unsigned) + 145 (nsThreadUtils.cpp:179)
10  libwidget_mac.dylib      	0x2be57ae9 nsBaseAppShell::NativeEventCallback() + 83 (nsBaseAppShell.cpp:115)
11  libwidget_mac.dylib      	0x2be3c6bf nsAppShell::ProcessGeckoEvents() + 253 (nsAppShell.mm:209)
12  libwidget_mac.dylib      	0x2be3c801 -[AppShellDelegate handlePortMessage:] + 107 (nsAppShell.mm:420)
13  com.apple.Foundation     	0x92646a4c __NSFireMachPort + 307
14  com.apple.CoreFoundation 	0x90839773 __CFMachPortPerform + 136
15  com.apple.CoreFoundation 	0x90829a14 CFRunLoopRunSpecific + 2904
16  com.apple.CoreFoundation 	0x90828eb5 CFRunLoopRunInMode + 61
17  com.apple.HIToolbox      	0x92dcdb90 RunCurrentEventLoopInMode + 285
18  com.apple.HIToolbox      	0x92dcd1ce ReceiveNextEventCommon + 184
19  com.apple.HIToolbox      	0x92dcd0ee BlockUntilNextEventMatchingListInMode + 81
20  com.apple.AppKit         	0x9326f465 _DPSNextEvent + 572
21  com.apple.AppKit         	0x9326f056 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 137
22  com.apple.AppKit         	0x93268ddb -[NSApplication run] + 512
23  libwidget_mac.dylib      	0x2be3bd2e nsAppShell::Run() + 146 (nsAppShell.mm:327)
24  libtoolkitcomps.dylib    	0x2a62f709 nsAppStartup::Run() + 147 (nsAppStartup.cpp:171)
25  XUL                      	0x0020fe68 XRE_main + 9632 (nsAppRunner.cpp:2846)
26  org.mozilla.firefox      	0x00002eec main + 40 (nsBrowserApp.cpp:62)
27  org.mozilla.firefox      	0x00002852 _start + 216
28  org.mozilla.firefox      	0x00002779 start + 41

Thread 1:
0   libSystem.B.dylib        	0x90019d3c select + 12
1   libnspr4.dylib           	0x005cd154 _pr_poll_with_poll + 1333 (ptio.c:3882)
2   libnspr4.dylib           	0x005cd3c2 PR_Poll + 31 (ptio.c:4286)
3   libnecko.dylib           	0x26274877 nsSocketTransportService::Poll(int, unsigned*) + 223 (nsSocketTransportService2.cpp:329)
4   libnecko.dylib           	0x26275669 nsSocketTransportService::DoPollIteration(int) + 803 (nsSocketTransportService2.cpp:604)
5   libnecko.dylib           	0x262758b5 nsSocketTransportService::OnProcessNextEvent(nsIThreadInternal*, int, unsigned) + 61 (nsSocketTransportService2.cpp:483)
6   libxpcom_core.dylib      	0x0134a952 nsThread::ProcessNextEvent(int, int*) + 296 (nsThread.cpp:472)
7   libxpcom_core.dylib      	0x012f338e NS_ProcessNextEvent_P(nsIThread*, int) + 130 (nsThreadUtils.cpp:225)
8   libnecko.dylib           	0x262751bf nsSocketTransportService::Run() + 281 (nsSocketTransportService2.cpp:513)
9   libxpcom_core.dylib      	0x0134aa56 nsThread::ProcessNextEvent(int, int*) + 556 (nsThread.cpp:483)
10  libxpcom_core.dylib      	0x012f338e NS_ProcessNextEvent_P(nsIThread*, int) + 130 (nsThreadUtils.cpp:225)
11  libxpcom_core.dylib      	0x0134ac24 nsThread::ThreadFunc(void*) + 262 (nsThread.cpp:250)
12  libnspr4.dylib           	0x005ce943 _pt_root + 313 (ptthread.c:223)
13  libSystem.B.dylib        	0x90023d87 _pthread_body + 84

Thread 2:
0   libSystem.B.dylib        	0x90048a47 semaphore_timedwait_signal_trap + 7
1   libnspr4.dylib           	0x005c78f2 pt_TimedWait + 338 (ptsynch.c:280)
2   libnspr4.dylib           	0x005c7e0a PR_WaitCondVar + 369 (ptsynch.c:407)
3   libxpcom_core.dylib      	0x0134f8e2 TimerThread::Run() + 616 (TimerThread.cpp:322)
4   libxpcom_core.dylib      	0x0134aa56 nsThread::ProcessNextEvent(int, int*) + 556 (nsThread.cpp:483)
5   libxpcom_core.dylib      	0x012f338e NS_ProcessNextEvent_P(nsIThread*, int) + 130 (nsThreadUtils.cpp:225)
6   libxpcom_core.dylib      	0x0134ac24 nsThread::ThreadFunc(void*) + 262 (nsThread.cpp:250)
7   libnspr4.dylib           	0x005ce943 _pt_root + 313 (ptthread.c:223)
8   libSystem.B.dylib        	0x90023d87 _pthread_body + 84

Thread 3:
0   libSystem.B.dylib        	0x90024427 semaphore_wait_signal_trap + 7
1   libnspr4.dylib           	0x005c7de5 PR_WaitCondVar + 332 (ptsynch.c:405)
2   libstoragecomps.dylib    	0x2a2904a4 ProcessAsyncMessages() + 172 (mozStorageAsyncIO.cpp:1513)
3   libstoragecomps.dylib    	0x2a2f0182 AsyncWriteThread::Run() + 80 (mozStorageAsyncIO.cpp:475)
4   libxpcom_core.dylib      	0x0134aa56 nsThread::ProcessNextEvent(int, int*) + 556 (nsThread.cpp:483)
5   libxpcom_core.dylib      	0x012f338e NS_ProcessNextEvent_P(nsIThread*, int) + 130 (nsThreadUtils.cpp:225)
6   libxpcom_core.dylib      	0x0134ac24 nsThread::ThreadFunc(void*) + 262 (nsThread.cpp:250)
7   libnspr4.dylib           	0x005ce943 _pt_root + 313 (ptthread.c:223)
8   libSystem.B.dylib        	0x90023d87 _pthread_body + 84

Thread 4:
0   libSystem.B.dylib        	0x90048a47 semaphore_timedwait_signal_trap + 7
1   libnspr4.dylib           	0x005c78f2 pt_TimedWait + 338 (ptsynch.c:280)
2   libnspr4.dylib           	0x005c7e0a PR_WaitCondVar + 369 (ptsynch.c:407)
3   libpipnss.dylib          	0x281ccd57 nsSSLThread::Run() + 293 (nsSSLThread.cpp:925)
4   libpipnss.dylib          	0x281cb17f nsPSMBackgroundThread::nsThreadRunner(void*) + 27 (nsPSMBackgroundThread.cpp:45)
5   libnspr4.dylib           	0x005ce943 _pt_root + 313 (ptthread.c:223)
6   libSystem.B.dylib        	0x90023d87 _pthread_body + 84

Thread 5:
0   libSystem.B.dylib        	0x90048a47 semaphore_timedwait_signal_trap + 7
1   libnspr4.dylib           	0x005c78f2 pt_TimedWait + 338 (ptsynch.c:280)
2   libnspr4.dylib           	0x005c7e0a PR_WaitCondVar + 369 (ptsynch.c:407)
3   libpipnss.dylib          	0x281cd68b nsCertVerificationThread::Run() + 81 (nsCertVerificationThread.cpp:139)
4   libpipnss.dylib          	0x281cb17f nsPSMBackgroundThread::nsThreadRunner(void*) + 27 (nsPSMBackgroundThread.cpp:45)
5   libnspr4.dylib           	0x005ce943 _pt_root + 313 (ptthread.c:223)
6   libSystem.B.dylib        	0x90023d87 _pthread_body + 84

Thread 6:
0   libSystem.B.dylib        	0x90024427 semaphore_wait_signal_trap + 7
1   libnspr4.dylib           	0x005c7de5 PR_WaitCondVar + 332 (ptsynch.c:405)
2   libnspr4.dylib           	0x005c851f PR_Wait + 264 (ptsynch.c:584)
3   libxpcom_core.dylib      	0x013a5aaf nsAutoMonitor::Wait(unsigned) + 27 (nsAutoLock.h:322)
4   libxpcom_core.dylib      	0x01349189 nsEventQueue::GetEvent(int, nsIRunnable**) + 133 (nsEventQueue.cpp:86)
5   libxpcom_core.dylib      	0x013b36d2 nsThread::nsChainedEventQueue::GetEvent(int, nsIRunnable**) + 34 (nsThread.h:110)
6   libxpcom_core.dylib      	0x0134a9bc nsThread::ProcessNextEvent(int, int*) + 402 (nsThread.cpp:473)
7   libxpcom_core.dylib      	0x012f338e NS_ProcessNextEvent_P(nsIThread*, int) + 130 (nsThreadUtils.cpp:225)
8   libxpcom_core.dylib      	0x0134ac24 nsThread::ThreadFunc(void*) + 262 (nsThread.cpp:250)
9   libnspr4.dylib           	0x005ce943 _pt_root + 313 (ptthread.c:223)
10  libSystem.B.dylib        	0x90023d87 _pthread_body + 84

Thread 0 crashed with X86 Thread State (32-bit):
  eax: 0x00000078    ebx: 0x010d2c9d ecx: 0xa0001e60 edx: 0x00000000
  edi: 0x2c97b7a8    esi: 0x2c981868 ebp: 0xbfffd558 esp: 0xbfffd530
   ss: 0x0000001f    efl: 0x00000282 eip: 0x010d2cd3  cs: 0x00000017
   ds: 0x0000001f     es: 0x0000001f  fs: 0x00000000  gs: 0x00000037

Binary Images Description:
    0x1000 -     0x2fff org.mozilla.firefox 3.0a3pre	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/firefox-bin
    0x6000 -     0x7fff libxpcom.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libxpcom.dylib
   0x10000 -    0x15fff libplds4.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libplds4.dylib
   0x1f000 -    0x25fff libplc4.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libplc4.dylib
  0x205000 -   0x253fff XUL 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/XUL
  0x5a6000 -   0x5ddfff libnspr4.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libnspr4.dylib
  0x6ee000 -   0x6f3fff libauth.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libauth.dylib
  0x769000 -   0x77cfff libmozz.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libmozz.dylib
  0x798000 -   0x79dfff libcommandlines.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libcommandlines.dylib
 0x1008000 -  0x10fdfff libmozjs.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libmozjs.dylib
 0x12e6000 -  0x13c4fff libxpcom_core.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libxpcom_core.dylib
 0x204d000 -  0x205dfff libbrowserdirprovider.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libbrowserdirprovider.dylib
 0x2205000 -  0x2218fff libappcomps.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libappcomps.dylib
 0x2380000 -  0x238bfff libautoconfig.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libautoconfig.dylib
 0x246f000 -  0x248cfff libcaps.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libcaps.dylib
 0x2637000 -  0x2648fff libchardet.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libchardet.dylib
 0x275e000 -  0x276bfff libintlapp.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libintlapp.dylib
 0xb008000 -  0xb04bfff libbrowsercomps.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libbrowsercomps.dylib
 0xb3cd000 -  0xb3e6fff libchrome.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libchrome.dylib
 0xb55d000 -  0xb57afff libcomposer.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libcomposer.dylib
 0xb811000 -  0xb81efff libcookie.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libcookie.dylib
 0xb90b000 -  0xb98cfff libdocshell.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libdocshell.dylib
 0xc2a0000 -  0xc38cfff libeditor.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libeditor.dylib
 0xd91e000 -  0xd930fff libgkgfx.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libgkgfx.dylib
 0xda1b000 -  0xda6bfff libembedcomponents.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libembedcomponents.dylib
 0xe07a000 -  0xe093fff libgkgfxthebes.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libgkgfxthebes.dylib
 0xe340000 -  0xe3aafff libthebes.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libthebes.dylib
 0xe63a000 -  0xee5bfff libgklayout.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libgklayout.dylib
0x24f08000 - 0x24f45fff libgkplugin.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libgkplugin.dylib
0x25348000 - 0x253b1fff libhtmlpars.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libhtmlpars.dylib
0x25837000 - 0x2586afff libi18n.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libi18n.dylib
0x25ae0000 - 0x25aeafff libimgicon.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libimgicon.dylib
0x25bb4000 - 0x25c04fff libimglib2.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libimglib2.dylib
0x25f58000 - 0x25f71fff libjar50.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libjar50.dylib
0x26114000 - 0x2612cfff libjsd.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libjsd.dylib
0x261e1000 - 0x261e2fff libmozfind.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libmozfind.dylib
0x2620d000 - 0x26212fff libMyService.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libMyService.dylib
0x26242000 - 0x26357fff libnecko.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libnecko.dylib
0x2787a000 - 0x278a3fff libnsappshell.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libnsappshell.dylib
0x27caf000 - 0x27cc8fff liboji.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/liboji.dylib
0x27f65000 - 0x27f7efff libjsj.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libjsj.dylib
0x28056000 - 0x2805afff libpermissions.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libpermissions.dylib
0x280d8000 - 0x280e4fff libpipboot.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libpipboot.dylib
0x281c9000 - 0x28245fff libpipnss.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libpipnss.dylib
0x289b3000 - 0x289d7fff libsmime3.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libsmime3.dylib
0x28aeb000 - 0x28b21fff libssl3.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libssl3.dylib
0x28bef000 - 0x28c72fff libnss3.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libnss3.dylib
0x28e6a000 - 0x28eccfff libsoftokn3.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libsoftokn3.dylib
0x28fcf000 - 0x28fd8fff libpippki.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libpippki.dylib
0x29099000 - 0x29109fff libplaces.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libplaces.dylib
0x29897000 - 0x298aafff libpref.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libpref.dylib
0x299c4000 - 0x299fefff librdf.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/librdf.dylib
0x29d73000 - 0x29d9bfff libsatchel.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libsatchel.dylib
0x2a073000 - 0x2a08ffff libspellchecker.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libspellchecker.dylib
0x2a28d000 - 0x2a2f4fff libstoragecomps.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libstoragecomps.dylib
0x2a505000 - 0x2a50afff libtestdynamic.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libtestdynamic.dylib
0x2a53a000 - 0x2a545fff libtkautocomplete.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libtkautocomplete.dylib
0x2a62d000 - 0x2a667fff libtoolkitcomps.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libtoolkitcomps.dylib
0x2aa98000 - 0x2aa9efff libtxmgr.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libtxmgr.dylib
0x2aad4000 - 0x2ab97fff libuconv.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libuconv.dylib
0x2ae80000 - 0x2ae8afff libucvmath.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libucvmath.dylib
0x2af21000 - 0x2af33fff libuniversalchardet.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libuniversalchardet.dylib
0x2af86000 - 0x2afacfff libwebbrwsr.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libwebbrwsr.dylib
0x2b39f000 - 0x2b444fff libwebsrvcs.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libwebsrvcs.dylib
0x2be28000 - 0x2be8cfff libwidget_mac.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libwidget_mac.dylib
0x2c75a000 - 0x2c760fff libwindowds.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libwindowds.dylib
0x2c7bd000 - 0x2c7d1fff libwsproxytest.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libwsproxytest.dylib
0x2c86c000 - 0x2c874fff libxmlextras.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libxmlextras.dylib
0x2c8fc000 - 0x2c903fff libxpcomsample.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libxpcomsample.dylib
0x2c949000 - 0x2c9c1fff libxpconnect.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libxpconnect.dylib
0x2d481000 - 0x2d492fff libxpctest.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libxpctest.dylib
0x2d576000 - 0x2d5c6fff libxpinstall.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/components/libxpinstall.dylib
0x31cd3000 - 0x31cd4fff com.apple.textencoding.unicode 2.1	/System/Library/TextEncodings/Unicode Encodings.bundle/Contents/MacOS/Unicode Encodings
0x3448e000 - 0x344c2fff libnssckbi.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libnssckbi.dylib
0x34895000 - 0x348fefff libfreebl3.dylib 	/Users/sayrer/firefox/mozilla/fb-debug/dist/MinefieldDebug.app/Contents/MacOS/libfreebl3.dylib
0x8fe00000 - 0x8fe49fff dyld 46.9	/usr/lib/dyld
0x90000000 - 0x9016ffff libSystem.B.dylib 	/usr/lib/libSystem.B.dylib
0x901bf000 - 0x901c1fff libmathCommon.A.dylib 	/usr/lib/system/libmathCommon.A.dylib
0x901c3000 - 0x901fffff com.apple.CoreText 1.1.1 (???)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/CoreText
0x90226000 - 0x902fcfff ATS 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x9031c000 - 0x90770fff com.apple.CoreGraphics 1.258.38 (???)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x90807000 - 0x908cffff com.apple.CoreFoundation 6.4.6 (368.27)	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x9090d000 - 0x9090dfff com.apple.CoreServices 10.4 (???)	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x9090f000 - 0x90a02fff libicucore.A.dylib 	/usr/lib/libicucore.A.dylib
0x90a52000 - 0x90ad1fff libobjc.A.dylib 	/usr/lib/libobjc.A.dylib
0x90afa000 - 0x90b5efff libstdc++.6.dylib 	/usr/lib/libstdc++.6.dylib
0x90bcd000 - 0x90bd4fff libgcc_s.1.dylib 	/usr/lib/libgcc_s.1.dylib
0x90bd9000 - 0x90c4cfff com.apple.framework.IOKit 1.4.6 (???)	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x90c61000 - 0x90c73fff libauto.dylib 	/usr/lib/libauto.dylib
0x90c79000 - 0x90f1ffff com.apple.CoreServices.CarbonCore 682.15	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x90f62000 - 0x90fcafff com.apple.CoreServices.OSServices 4.1	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x91002000 - 0x91040fff com.apple.CFNetwork 129.19	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x91053000 - 0x91063fff com.apple.WebServices 1.1.3 (1.1.0)	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/WebServicesCore.framework/Versions/A/WebServicesCore
0x9106e000 - 0x910ecfff com.apple.SearchKit 1.0.5	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x91121000 - 0x9113ffff com.apple.Metadata 10.4.4 (121.36)	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x9114b000 - 0x91159fff libz.1.dylib 	/usr/lib/libz.1.dylib
0x9115c000 - 0x912fbfff com.apple.security 4.5.2 (29774)	/System/Library/Frameworks/Security.framework/Versions/A/Security
0x913f9000 - 0x91401fff com.apple.DiskArbitration 2.1.1	/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x91408000 - 0x9142efff com.apple.SystemConfiguration 1.8.6	/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x91440000 - 0x91447fff libbsm.dylib 	/usr/lib/libbsm.dylib
0x9144b000 - 0x914c4fff com.apple.audio.CoreAudio 3.0.4	/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x91512000 - 0x91512fff com.apple.ApplicationServices 10.4 (???)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x91514000 - 0x9153ffff com.apple.AE 314 (313)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x91552000 - 0x91626fff com.apple.ColorSync 4.4.8	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x91661000 - 0x916defff com.apple.print.framework.PrintCore 4.6 (177.13)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x9170b000 - 0x917b4fff com.apple.QD 3.10.21 (???)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x917da000 - 0x91825fff com.apple.HIServices 1.5.2 (???)	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x91844000 - 0x9185afff com.apple.LangAnalysis 1.6.3	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
0x91866000 - 0x91880fff com.apple.FindByContent 1.5	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/FindByContent.framework/Versions/A/FindByContent
0x9188a000 - 0x918c7fff com.apple.LaunchServices 181	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x918db000 - 0x918e7fff com.apple.speech.synthesis.framework 3.5	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x918ee000 - 0x91929fff com.apple.ImageIO.framework 1.5.0	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x9193b000 - 0x919edfff libcrypto.0.9.7.dylib 	/usr/lib/libcrypto.0.9.7.dylib
0x91a33000 - 0x91a49fff libcups.2.dylib 	/usr/lib/libcups.2.dylib
0x91a4e000 - 0x91a6cfff libJPEG.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x91a71000 - 0x91acffff libJP2.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
0x91ae1000 - 0x91ae5fff libGIF.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x91ae7000 - 0x91b64fff libRaw.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRaw.dylib
0x91b68000 - 0x91ba5fff libTIFF.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x91bab000 - 0x91bc5fff libPng.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x91bca000 - 0x91bccfff libRadiance.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x91bce000 - 0x91bcefff com.apple.Accelerate 1.3.1 (Accelerate 1.3.1)	/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x91bd0000 - 0x91c5efff com.apple.vImage 2.5	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x91c65000 - 0x91c65fff com.apple.Accelerate.vecLib 3.3.1 (vecLib 3.3.1)	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x91c67000 - 0x91cc0fff libvMisc.dylib 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x91cc9000 - 0x91cedfff libvDSP.dylib 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x91cf5000 - 0x920fefff libBLAS.dylib 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x92138000 - 0x924ecfff libLAPACK.dylib 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x92519000 - 0x92597fff com.apple.DesktopServices 1.3.5	/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
0x925d8000 - 0x92808fff com.apple.Foundation 6.4.7 (567.28)	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x92914000 - 0x929f2fff libxml2.2.dylib 	/usr/lib/libxml2.2.dylib
0x92a0f000 - 0x92afcfff libiconv.2.dylib 	/usr/lib/libiconv.2.dylib
0x92b0c000 - 0x92b23fff libGL.dylib 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x92b2e000 - 0x92b86fff libGLU.dylib 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x92b9a000 - 0x92b9afff com.apple.Carbon 10.4 (???)	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x92b9c000 - 0x92bacfff com.apple.ImageCapture 3.0.4	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x92bba000 - 0x92bc2fff com.apple.speech.recognition.framework 3.6	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x92bc8000 - 0x92bcdfff com.apple.securityhi 2.0.1 (24742)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
0x92bd3000 - 0x92c64fff com.apple.ink.framework 101.2.1 (71)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
0x92c78000 - 0x92c7bfff com.apple.help 1.0.3 (32.1)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
0x92c7e000 - 0x92c9bfff com.apple.openscripting 1.2.5 (???)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x92cab000 - 0x92cb1fff com.apple.print.framework.Print 5.2 (192.4)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x92cb7000 - 0x92d1afff com.apple.htmlrendering 66.1 (1.1.3)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering
0x92d3e000 - 0x92d7ffff com.apple.NavigationServices 3.4.4 (3.4.3)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationServices.framework/Versions/A/NavigationServices
0x92da6000 - 0x92db3fff com.apple.audio.SoundManager 3.9.1	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/CarbonSound
0x92dba000 - 0x92dbffff com.apple.CommonPanels 1.2.3 (73)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
0x92dc4000 - 0x930b6fff com.apple.HIToolbox 1.4.8 (???)	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x931bb000 - 0x931c6fff com.apple.opengl 1.4.12	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x93256000 - 0x93256fff com.apple.Cocoa 6.4 (???)	/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x93258000 - 0x9390efff com.apple.AppKit 6.4.8 (824.42)	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x93c8f000 - 0x93d09fff com.apple.CoreData 90	/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x93d42000 - 0x93e03fff com.apple.audio.toolbox.AudioToolbox 1.4.3	/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x93e43000 - 0x93e43fff com.apple.audio.units.AudioUnit 1.4.2	/System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
0x93e45000 - 0x94017fff com.apple.QuartzCore 1.4.9	/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x94068000 - 0x940a9fff libsqlite3.0.dylib 	/usr/lib/libsqlite3.0.dylib
0x940b1000 - 0x940ebfff libGLImage.dylib 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x94271000 - 0x94280fff libCGATS.A.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGATS.A.dylib
0x94287000 - 0x94292fff libCSync.A.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib
0x942de000 - 0x942f8fff libRIP.A.dylib 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
0x942fe000 - 0x945b7fff com.apple.QuickTime 7.1.3	/System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime
0x9707b000 - 0x97080fff com.apple.agl 2.5.9 (AGL-2.5.9)	/System/Library/Frameworks/AGL.framework/Versions/A/AGL
0x9aaee000 - 0x9aaf0fff libgmalloc.B.dylib 	/usr/lib/libgmalloc.B.dylib

Model: MacBookPro1,1, BootROM MBP11.0055.B08, 2 processors, Intel Core Duo, 2 GHz, 2 GB
Graphics: ATI Radeon X1600, ATY,RadeonX1600, PCIe, 128 MB
Memory Module: BANK 0/DIMM0, 1 GB, DDR2 SDRAM, 667 MHz
Memory Module: BANK 1/DIMM1, 1 GB, DDR2 SDRAM, 667 MHz
AirPort: spairport_wireless_card_type_airport_extreme (0x168C, 0x86), 0.1.27
Bluetooth: Version 1.7.9f12, 2 service, 0 devices, 1 incoming serial ports
Network Service: Built-in Ethernet, Ethernet, en0
Serial ATA Device: ST910021AS, 93.16 GB
USB Device: Built-in iSight, Micron, Up to 480 Mb/sec, 500 mA
USB Device: Apple Internal Keyboard / Trackpad, Apple Computer, Up to 12 Mb/sec, 500 mA
USB Device: Bluetooth HCI, Up to 12 Mb/sec, 500 mA
USB Device: IR Receiver, Apple Computer, Inc., Up to 12 Mb/sec, 500 mA
Comment 27 Shawn Wilsher :sdwilsh 2007-03-02 10:16:14 PST
Created attachment 257037 [details] [diff] [review]
v2.2

Alright, turns out I wasn't compiling a .m file that I should have been compiling.

I also realized that I didn't handle a case where the uri fails to resolve.  That's taken care of in this code, but I'm not sure if I quite like how I do it (I have very similar code in two different places - problem being I'm not sure where I could stick it to have both places use it).  Suggestions welcome on that.
Comment 28 Shawn Wilsher :sdwilsh 2007-03-02 10:30:04 PST
(In reply to comment #27)

oh yeah - I didn't include any of the growl code in this patch - just my code.  The growl code that we build is taken directly to their repo, and once this gets r+ and sr+, I'll attach a patch with the growl code as well.
Comment 29 Shawn Wilsher :sdwilsh 2007-03-09 15:58:02 PST
Created attachment 258063 [details] [diff] [review]
v2.3

After talking with Mano a bit today, I decided I wanted to refactor a small part of this code.  I've added a static method to mozGrowlDelegate that dispatches the notification to Growl.
Comment 30 Shawn Wilsher :sdwilsh 2007-03-20 08:58:04 PDT
Comment on attachment 258063 [details] [diff] [review]
v2.3

There are at least two things I don't like in this patch that I want to change before getting this reviewed.  I might get to that today, but that's iffy.  This weekend for sure.
Comment 31 Shawn Wilsher :sdwilsh 2007-03-23 16:55:08 PDT
Created attachment 259473 [details] [diff] [review]
v2.4

Ok, I'm pretty happy with this.  I do not have the notification name localized yet, but I'd like to do that in a follow up bug if possible (or after this lands, but in this bug).
Comment 32 Colin Barrett [:cbarrett] 2007-03-26 22:53:58 PDT
Comment on attachment 259473 [details] [diff] [review]
v2.4


>++ (void) title:(const nsAString&)aTitle
>+          text:(const nsAString&)aText
>+         image:(NSData*)aImage
>+           key:(PRUint32)aKey
>+        cookie:(const nsAString&)aCookie;
>+

Can you change this, and it's callers, to notifyWithTitle:description:iconData:key:cookie:, to keep as many of the Growl terms around as possible? No need to invent our own vocabulary.

>+  if (aKey)

You should also check the value of aCookie here. I'd suggest using assertions instead, but that's up to the actual toolkit reviewer.

>+- (PRUint32) addObserver:(nsIObserver*)aObserver
>+{
>+  NS_ADDREF(aObserver);  // We now own a reference to this!
>+
>+  mKey++;
>+  [mDict setObject: [NSValue valueWithPointer: aObserver]
>+            forKey: [NSNumber numberWithUnsignedInt: mKey]];
>+  return mKey;
>+}
>+
>+- (NSDictionary *) registrationDictionaryForGrowl
>+{
>+  return [NSDictionary dictionaryWaithObjectsAndKeys:
>+           [NSArray arrayWithObjects: NOTIFICATION_NAME, nil],
>+           GROWL_NOTIFICATIONS_ALL,
>+           [NSArray arrayWithObjects: NOTIFICATION_NAME, nil],
>+           GROWL_NOTIFICATIONS_DEFAULT,
>+           nil];
>+}
>+
>+- (NSString*) applicationNameForGrowl
>+{
>+  if (NS_FAILED(rv)) return nil;

How does Growl react to getting a nil from applicationNameForGrowl? I'd expect gracefully, but it'd be nice to make sure.

>+- (void) growlNotificationTimedOut:(id)clickContext

>+  if (observer) {
>+    nsString tmp;
>+    tmp.SetLength([cookie length]);
>+    [cookie getCharacters:tmp.BeginWriting()];
>+
>+    observer->Observe(nsnull, "alertfinished", tmp.get());

What happens if cookie is a 0 length string?


I'm not sure this addresses the issue that was brought up earlier, that we don't register with Growl until we send a notification. This is incorrect -- Growl-supporting apps are supposed to register when they start up. I think observing XPCOM startup would be a good place to do this? I know the WebLock example component has code that loads on startup.

Looks good so far! This is getting closer and closer.
Comment 33 aranittara 2007-03-31 14:10:15 PDT
maybe you could take a shortcut by basing your code of of the firefox extension on mozilla addons that adds growl support
Comment 34 Shawn Wilsher :sdwilsh 2007-04-05 08:09:20 PDT
Created attachment 260712 [details] [diff] [review]
v2.5

Addresses your concerns - some of the stuff you asked about we talked about on irc.
Comment 35 Shawn Wilsher :sdwilsh 2007-04-05 11:12:57 PDT
(In reply to comment #32)
> >+  if (aKey)
> 
> You should also check the value of aCookie here. I'd suggest using assertions
> instead, but that's up to the actual toolkit reviewer.

Actually, that last patch doesn't address this.  I need to test for this because it indicates if we have an observer stored or not.  I do need to check for aCookie though, and I will use an assertion for that.  I'll do that after your review however.
Comment 36 Colin Barrett [:cbarrett] 2007-04-16 22:05:03 PDT
Finally got around to finishing looking at it.

r=me with the aCookie assertion.
Comment 37 Shawn Wilsher :sdwilsh 2007-04-23 12:57:36 PDT
Created attachment 262541 [details] [diff] [review]
v2.6

Addressed concerns by Mano on irc.

No need for assertion checking on aCookie as per conversation with cbarrett on irc.
Comment 38 Mano (::mano, needinfo? for any questions; not reading general bugmail) 2007-04-23 14:09:55 PDT
Comment on attachment 262541 [details] [diff] [review]
v2.6

>Index: toolkit/components/build/Makefile.in
>===================================================================
>RCS file: /cvsroot/mozilla/toolkit/components/build/Makefile.in,v
>retrieving revision 1.41
>diff -u -8 -p -r1.41 Makefile.in
>--- toolkit/components/build/Makefile.in	8 Feb 2007 19:23:25 -0000	1.41
>+++ toolkit/components/build/Makefile.in	23 Apr 2007 19:56:45 -0000
>@@ -49,16 +49,20 @@ EXPORT_LIBRARY = 1
> IS_COMPONENT = 1
> MODULE_NAME = nsToolkitCompsModule
> LIBXUL_LIBRARY = 1
> 
> ifneq (,$(filter $(MOZ_WIDGET_TOOLKIT),windows gtk gtk2))
> ALERTS_SERVICE=1
> DEFINES += -DALERTS_SERVICE
> endif
>+ifneq (,$(filter mac cocoa, $(MOZ_WIDGET_TOOLKIT)))

mac widget is deprecated for real by now.

> 	$(NULL)
> 
>+ifdef ALERTS_SERVICE

hrm, maybe rename this to XP_ALERTS_SERVICE or such?

>Index: toolkit/components/build/nsToolkitCompsModule.cpp
>===================================================================

> #ifdef ALERTS_SERVICE
> NS_GENERIC_FACTORY_CONSTRUCTOR(nsAlertsService)
> #endif
> 
>+#ifdef ALERTS_SERVICE_MAC

nit: else if.


>Index: toolkit/components/alerts/src/mac/nsAlertsService.h
>===================================================================
>+#include "nsToolkitCompsCID.h"

what's this for?

>+#include "nsCOMPtr.h"
>+#include "nsIServiceManager.h"
>+#include "nsICategoryManager.h"
>+#include "nsMemory.h"

those should go to the .mm file.


>Index: toolkit/components/alerts/src/mac/nsAlertsService.mm
>===================================================================
>+#include "nsAlertsService.h"
>+#include "nsStringGlue.h"

nsStringAPI.h


>+
>+NS_IMETHODIMP
>+nsAlertsService::ShowAlertNotification(const nsAString &aImageUrl,
>+                                       const nsAString &aAlertTitle,
>+                                       const nsAString &aAlertText,

general nit: s/const nsAString &/const nsAString& /

>+  NS_ASSERTION(mDelegate->delegate == [GrowlApplicationBridge growlDelegate],
>+               "Growl Delegate was not registered properly.");
>+
>+  nsresult rv;
>+
>+  PRUint32 ind = 0;
>+  if (aAlertListener)
>+    ind = [mDelegate->delegate addObserver: aAlertListener];
>+
>+  nsCOMPtr<nsIURI> uri;
>+  rv = NS_NewURI(getter_AddRefs(uri), aImageUrl, nsnull, nsnull);

the second and third arguments are optional.

>+  if (NS_FAILED(rv)) {
>+    // image uri failed to resolve, so dispatch to growl with no image
>+    [mozGrowlDelegate notifyWithTitle: aAlertTitle
>+                          description: aAlertText
>+                             iconData: [NSData data]
>+                                  key: ind
>+                               cookie: aAlertCookie];
>+
>+    return NS_OK;
>+  }
>+
>+  nsCOMPtr<nsAlertsImageLoadListener> listener =
>+    new nsAlertsImageLoadListener(aAlertTitle, aAlertText, aAlertClickable,
>+                                  aAlertCookie, ind);
>+
>+  nsCOMPtr<nsIStreamLoader> loader;
>+  rv = NS_NewStreamLoader(getter_AddRefs(loader), uri, listener);

rather declare rv here.

>+
>+NS_IMETHODIMP
>+nsAlertsService::Observe(nsISupports* aSubject, const char* aTopic,
>+                         const PRUnichar* aData)
>+{
>+  if ([GrowlApplicationBridge isGrowlInstalled] == YES &&
>+      nsCRT::strcmp(aTopic, "app-startup") == 0)
>+    [GrowlApplicationBridge setGrowlDelegate: mDelegate->delegate];
>+
>+  return NS_OK;
>+}
>+
>+NS_METHOD
>+nsAlertsServiceRegister(nsIComponentManager* aCompMgr,
>+                        nsIFile* aPath,
>+                        const char* registryLocation,
>+                        const char* componentType,
>+                        const nsModuleComponentInfo* info)
>+{
>+  nsresult rv;
>+
>+  nsCOMPtr<nsICategoryManager> catman =
>+    do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv);
>+  if (NS_FAILED(rv)) return rv;

prefer NS_ENSURE_SUCCESS

>Index: toolkit/components/alerts/src/mac/mozGrowlDelegate.h
>===================================================================
>+// XXX should this be localized?  probably :(
>+#define NOTIFICATION_NAME @"Application Notice"

File a bug?

>+
>+/**
>+ * Informs us that a Growl notification was clicked.  It is only called when
>+ * Growl when the notification sent to Growl is sent with a non-nil

you may want to rephrase that.

>Index: toolkit/components/alerts/src/mac/mozGrowlDelegate.mm
>===================================================================
>+
>+  nsCOMPtr<nsIXULAppInfo> appInfo =
>+    do_GetService("@mozilla.org/xre/app-info;1", &rv);
>+  if (NS_FAILED(rv)) return nil;
>+
>+  nsCString appName;
>+  rv = appInfo->GetName(appName);
>+  if (NS_FAILED(rv)) return nil;
>+

NS_ENSURE_SUCCESS(rv, nil);

>+
>+  if (observer) {
>+    nsString tmp;

here you want nsAutoString.

looks good otherwise, r=mano.
Comment 39 Mano (::mano, needinfo? for any questions; not reading general bugmail) 2007-04-23 14:11:36 PDT
(And I don't think you need to check whether growl is installed in the Observe method, as discussed).
Comment 40 Shawn Wilsher :sdwilsh 2007-04-23 17:32:59 PDT
Created attachment 262570 [details] [diff] [review]
v2.7

I do believe I've addressed everything insofar as much as I can.  I just recently filed Bug 378527 regarding the localization issue, and I updated the comment in mozGrowlDelegate.h accordingly.

The growl code will be attached in a bit.
Comment 41 Shawn Wilsher :sdwilsh 2007-04-23 17:37:46 PDT
Created attachment 262572 [details] [diff] [review]
Growl Code v1.0

Pending license header discussion, this is the code that needs to be checked in for everything to compile and be happy.  This is exactly what is part of the Growl 0.7 branch - no modifications on my end.
Comment 42 Shawn Wilsher :sdwilsh 2007-04-23 18:16:49 PDT
Created attachment 262575 [details] [diff] [review]
Growl Code v1.1

This adds the license.txt to the toolkit/components/alerts/src/mac/growl/ folder, as well as the changes necessary in toolkit/content/license.html
Comment 43 Shawn Wilsher :sdwilsh 2007-04-23 18:30:38 PDT
Created attachment 262580 [details] [diff] [review]
v2.8

I managed to miss an ns[C]String->ns[C]AutoString.  All fixed.
Comment 44 Gervase Markham [:gerv] 2007-04-24 03:17:56 PDT
A couple of comments on the licensing changes:

"BSD License" is the wrong title for this license; this is not code from the BSD Unix distribution. Almost every license in that list is a "BSD License" in the same sense that this one is. Please change the title to "Growl License", and move it to the appropriate new place in the alphabetical order.

Please also change the text after that to the following (assuming it's factually correct):

<p class="correctme">This license applies to certain files in the directory <span class="path">toolkit/components/alers/src/mac/growl/</span>. (This code only ships in the Mac OS X version of this product.)
</p>

(This matches the line for the Java Embedding Plugin License, which is also Mac-only.) If you need me again, please CC me and I will appear like the proverbial genie :-)

Thanks,

Gerv
Comment 45 Shawn Wilsher :sdwilsh 2007-04-24 06:57:43 PDT
Created attachment 262636 [details] [diff] [review]
Growl Code v1.2

Alright, this should make everyone happy.
Comment 46 Shawn Wilsher :sdwilsh 2007-04-24 20:21:28 PDT
Checking in toolkit/components/build/Makefile.in;
/cvsroot/mozilla/toolkit/components/build/Makefile.in,v  <--  Makefile.in
new revision: 1.42; previous revision: 1.41
done
Checking in toolkit/components/build/nsToolkitCompsModule.cpp;
/cvsroot/mozilla/toolkit/components/build/nsToolkitCompsModule.cpp,v  <--  nsToolkitCompsModule.cpp
new revision: 1.40; previous revision: 1.39
done
Checking in toolkit/components/alerts/Makefile.in;
/cvsroot/mozilla/toolkit/components/alerts/Makefile.in,v  <--  Makefile.in
new revision: 1.6; previous revision: 1.5
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/Makefile.in,v
done
Checking in toolkit/components/alerts/src/mac/Makefile.in;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/Makefile.in,v  <--  Makefile.in
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/mozGrowlDelegate.h,v
done
Checking in toolkit/components/alerts/src/mac/mozGrowlDelegate.h;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/mozGrowlDelegate.h,v  <--  mozGrowlDelegate.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/mozGrowlDelegate.mm,v
done
Checking in toolkit/components/alerts/src/mac/mozGrowlDelegate.mm;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/mozGrowlDelegate.mm,v  <--  mozGrowlDelegate.mm
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.h,v
done
Checking in toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.h;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.h,v  <--  nsAlertsImageLoadListener.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.mm,v
done
Checking in toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.mm;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.mm,v  <--  nsAlertsImageLoadListener.mm
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/nsAlertsService.h,v
done
Checking in toolkit/components/alerts/src/mac/nsAlertsService.h;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/nsAlertsService.h,v  <--  nsAlertsService.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/nsAlertsService.mm,v
done
Checking in toolkit/components/alerts/src/mac/nsAlertsService.mm;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/nsAlertsService.mm,v  <--  nsAlertsService.mm
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/CFGrowlAdditions.c,v
done
Checking in toolkit/components/alerts/src/mac/growl/CFGrowlAdditions.c;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/CFGrowlAdditions.c,v  <--  CFGrowlAdditions.c
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/CFGrowlAdditions.h,v
done
Checking in toolkit/components/alerts/src/mac/growl/CFGrowlAdditions.h;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/CFGrowlAdditions.h,v  <--  CFGrowlAdditions.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlApplicationBridge.h,v
done
Checking in toolkit/components/alerts/src/mac/growl/GrowlApplicationBridge.h;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlApplicationBridge.h,v  <--  GrowlApplicationBridge.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlApplicationBridge.m,v
done
Checking in toolkit/components/alerts/src/mac/growl/GrowlApplicationBridge.m;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlApplicationBridge.m,v  <--  GrowlApplicationBridge.m
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlDefines.h,v
done
Checking in toolkit/components/alerts/src/mac/growl/GrowlDefines.h;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlDefines.h,v  <--  GrowlDefines.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlDefinesInternal.h,v
done
Checking in toolkit/components/alerts/src/mac/growl/GrowlDefinesInternal.h;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlDefinesInternal.h,v  <--  GrowlDefinesInternal.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlPathUtil.h,v
done
Checking in toolkit/components/alerts/src/mac/growl/GrowlPathUtil.h;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlPathUtil.h,v  <--  GrowlPathUtil.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlPathUtil.m,v
done
Checking in toolkit/components/alerts/src/mac/growl/GrowlPathUtil.m;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlPathUtil.m,v  <--  GrowlPathUtil.m
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlPathway.h,v
done
Checking in toolkit/components/alerts/src/mac/growl/GrowlPathway.h;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/GrowlPathway.h,v  <--  GrowlPathway.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/Makefile.in,v
done
Checking in toolkit/components/alerts/src/mac/growl/Makefile.in;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/Makefile.in,v  <--  Makefile.in
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/NSURLAdditions.h,v
done
Checking in toolkit/components/alerts/src/mac/growl/NSURLAdditions.h;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/NSURLAdditions.h,v  <--  NSURLAdditions.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/NSURLAdditions.m,v
done
Checking in toolkit/components/alerts/src/mac/growl/NSURLAdditions.m;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/NSURLAdditions.m,v  <--  NSURLAdditions.m
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/license.txt,v
done
Checking in toolkit/components/alerts/src/mac/growl/license.txt;
/cvsroot/mozilla/toolkit/components/alerts/src/mac/growl/license.txt,v  <--  license.txt
initial revision: 1.1
done
Checking in toolkit/content/license.html;
/cvsroot/mozilla/toolkit/content/license.html,v  <--  license.html
new revision: 1.9; previous revision: 1.8
done
Comment 47 Colin Barrett [:cbarrett] 2007-04-25 14:21:59 PDT
I think we should back Growl out until we figure out what we want to do about bug 378785. The freeze is today, it's crashing static builds on launch.
Comment 48 Jesse Ruderman 2007-05-03 12:01:33 PDT
Has Growl been re-enabled now that bug 378785 is fixed?
Comment 49 Shawn Wilsher :sdwilsh 2007-05-03 12:06:35 PDT
Yes, Growl should be working on trunk now (assuming you have it installed)

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