Bug 378785 - Crash on launch for nightly builds in Growl code. r=bsmedberg

This commit is contained in:
sdwilsh@shawnwilsher.com 2007-04-30 11:05:27 -07:00
parent acb3fcad45
commit 549df88a28
10 changed files with 127 additions and 99 deletions

View File

@ -49,9 +49,13 @@ ifneq (,$(filter $(MOZ_WIDGET_TOOLKIT),windows gtk gtk2))
DIRS += src
endif
#ifneq (,$(filter mac cocoa, $(MOZ_WIDGET_TOOLKIT)))
#DIRS += src/mac
#endif
ifneq (,$(filter cocoa, $(MOZ_WIDGET_TOOLKIT)))
# src/mac/growl needs to be first for linking to work!
DIRS += \
src/mac/growl \
src/mac \
$(NULL)
endif
include $(topsrcdir)/config/rules.mk

View File

@ -43,10 +43,8 @@ include $(DEPTH)/config/autoconf.mk
MODULE = alerts
LIBRARY_NAME = alerts_s
FORCE_STATIC_LIB = 1
LIBXUL_LIBRARY = 1
DIRS = growl
IS_COMPONENT = 1
FORCE_SHARED_LIB = 1
REQUIRES = \
xpcom \
@ -61,13 +59,24 @@ CMMSRCS = \
nsAlertsImageLoadListener.mm \
$(NULL)
CPPSRCS = \
nsAlertsServiceModule.cpp \
$(NULL)
LOCAL_INCLUDES += \
-I$(srcdir)/growl/ \
-I$(topsrcdir)/toolkit/components/build/ \
$(NULL)
include $(topsrcdir)/config/rules.mk
SHARED_LIBRARY_LIBS = \
growl/$(LIB_PREFIX)growl_s.$(LIB_SUFFIX) \
$(NULL)
EXTRA_DSO_LDOPTS += \
$(MOZ_COMPONENT_LIBS) \
-framework Carbon \
-framework Cocoa \
$(XPCOM_GLUE_LDOPTS) \
$(NSPR_LIBS) \
$(NULL)
include $(topsrcdir)/config/rules.mk

View File

@ -44,7 +44,7 @@ include $(DEPTH)/config/autoconf.mk
MODULE = alerts
LIBRARY_NAME = growl_s
FORCE_STATIC_LIB = 1
LIBXUL_LIBRARY = 1
FORCE_USE_PIC = 1
CMSRCS = \
GrowlApplicationBridge.m \
@ -57,13 +57,3 @@ CSRCS = \
$(NULL)
include $(topsrcdir)/config/rules.mk
LDFLAGS += \
-framework Carbon \
-framework Foundation \
-framework AppKit \
$(NULL)
EXTRA_DSO_LDOPTS += \
$(MOZ_COMPONENT_LIBS) \
$(NULL)

View File

@ -37,7 +37,7 @@
#import "mozGrowlDelegate.h"
#include "nsIObserver.h"
#include "nsString.h"
#include "nsStringAPI.h"
#include "nscore.h"
#include "nsCOMPtr.h"
#include "nsServiceManagerUtils.h"

View File

@ -40,7 +40,7 @@
#import "mozGrowlDelegate.h"
#include "nsIStreamLoader.h"
#include "nsString.h"
#include "nsStringAPI.h"
class nsAlertsImageLoadListener : public nsIStreamLoaderObserver
{

View File

@ -39,7 +39,6 @@
#include "nsIAlertsService.h"
#include "nsIObserver.h"
#include "nsToolkitCompsCID.h"
struct GrowlDelegateWrapper;
@ -58,15 +57,4 @@ private:
virtual ~nsAlertsService();
};
class nsModuleComponentInfo;
NS_METHOD nsAlertsServiceRegister(nsIComponentManager* aCompMgr,
nsIFile *aPath,
const char* registryLocation,
const char* componentType,
const nsModuleComponentInfo* info);
NS_METHOD nsAlertsServiceUnregister(nsIComponentManager* aCompMgr,
nsIFile* aPath,
const char* registryLocation,
const nsModuleComponentInfo* info);
#endif // nsAlertsService_h_

View File

@ -35,16 +35,13 @@
* ***** END LICENSE BLOCK ***** */
#include "nsAlertsService.h"
#include "nsString.h"
#include "nsStringAPI.h"
#include "nsAlertsImageLoadListener.h"
#include "nsIURI.h"
#include "nsIStreamLoader.h"
#include "nsNetUtil.h"
#include "nsCRT.h"
#include "nsCOMPtr.h"
#include "nsIServiceManager.h"
#include "nsICategoryManager.h"
#include "nsMemory.h"
#import "mozGrowlDelegate.h"
#import "GrowlApplicationBridge.h"
@ -142,42 +139,3 @@ nsAlertsService::Observe(nsISupports* aSubject, const char* aTopic,
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);
NS_ENSURE_SUCCESS(rv, rv);
char* prev = nsnull;
rv = catman->AddCategoryEntry("app-startup", "nsAlertsService",
NS_ALERTSERVICE_CONTRACTID, PR_TRUE, PR_TRUE,
&prev);
if (prev)
nsMemory::Free(prev);
return rv;
}
NS_METHOD
nsAlertsServiceUnregister(nsIComponentManager* aCompMgr,
nsIFile* aPath,
const char* registryLocation,
const nsModuleComponentInfo* info)
{
nsresult rv;
nsCOMPtr<nsICategoryManager> catman =
do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv);
if (NS_FAILED(rv)) return rv;
rv = catman->DeleteCategoryEntry("app-startup", "nsAlertsService", PR_TRUE);
return rv;
}

View File

@ -0,0 +1,100 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is Growl implementation of nsIAlertsService.
*
* The Initial Developer of the Original Code is
* Shawn Wilsher <me@shawnwilsher.com>.
* Portions created by the Initial Developer are Copyright (C) 2006-2007
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
#include "nsAlertsService.h"
#include "nsToolkitCompsCID.h"
#include "nsIGenericFactory.h"
#include "nsCOMPtr.h"
#include "nsIServiceManager.h"
#include "nsServiceManagerUtils.h"
#include "nsICategoryManager.h"
#include "nsMemory.h"
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAlertsService, Init)
static
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);
NS_ENSURE_SUCCESS(rv, rv);
char* prev = nsnull;
rv = catman->AddCategoryEntry("app-startup", "nsAlertsService",
NS_ALERTSERVICE_CONTRACTID, PR_TRUE, PR_TRUE,
&prev);
if (prev)
nsMemory::Free(prev);
return rv;
}
static
NS_METHOD
nsAlertsServiceUnregister(nsIComponentManager* aCompMgr,
nsIFile* aPath,
const char* registryLocation,
const nsModuleComponentInfo* info)
{
nsresult rv;
nsCOMPtr<nsICategoryManager> catman =
do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
rv = catman->DeleteCategoryEntry("app-startup", "nsAlertsService", PR_TRUE);
return rv;
}
static const nsModuleComponentInfo components[] =
{
{ "Alerts Service",
NS_ALERTSSERVICE_CID,
NS_ALERTSERVICE_CONTRACTID,
nsAlertsServiceConstructor,
nsAlertsServiceRegister,
nsAlertsServiceUnregister },
};
NS_IMPL_NSGETMODULE(nsAlertsServiceModule, components)

View File

@ -54,10 +54,6 @@ ifneq (,$(filter $(MOZ_WIDGET_TOOLKIT),windows gtk gtk2))
ALERTS_SERVICE=1
DEFINES += -DALERTS_SERVICE
endif
#ifneq (,$(filter cocoa, $(MOZ_WIDGET_TOOLKIT)))
#ALERTS_SERVICE_MAC=1
#DEFINES += -DALERTS_SERVICE_MAC
#endif
REQUIRES = \
xpcom \
@ -110,14 +106,6 @@ LOCAL_INCLUDES += \
-I$(srcdir)/../alerts/src \
$(NULL)
endif
ifdef ALERTS_SERVICE_MAC
LOCAL_INCLUDES += \
-I$(srcdir)/../alerts/src/mac \
$(NULL)
EXTRA_DSO_LDOPTS += \
-framework Cocoa \
$(NULL)
endif
SHARED_LIBRARY_LIBS = \
../startup/src/$(LIB_PREFIX)appstartup_s.$(LIB_SUFFIX) \

View File

@ -40,7 +40,7 @@
#include "nsUserInfo.h"
#include "nsXPFEComponentsCID.h"
#include "nsToolkitCompsCID.h"
#if defined(ALERTS_SERVICE) || defined(ALERTS_SERVICE_MAC)
#ifdef ALERTS_SERVICE
#include "nsAlertsService.h"
#endif
@ -73,8 +73,6 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsUserInfo)
#ifdef ALERTS_SERVICE
NS_GENERIC_FACTORY_CONSTRUCTOR(nsAlertsService)
#elif defined(ALERTS_SERVICE_MAC)
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAlertsService, Init)
#endif
#ifndef MOZ_SUITE
@ -118,13 +116,6 @@ static const nsModuleComponentInfo components[] =
NS_ALERTSSERVICE_CID,
NS_ALERTSERVICE_CONTRACTID,
nsAlertsServiceConstructor },
#elif defined(ALERTS_SERVICE_MAC)
{ "Alerts Service",
NS_ALERTSSERVICE_CID,
NS_ALERTSERVICE_CONTRACTID,
nsAlertsServiceConstructor,
nsAlertsServiceRegister,
nsAlertsServiceUnregister },
#endif
#ifndef MOZ_SUITE
// XXX Suite isn't ready to include this just yet