bug 78919, part 3: Move nsMIMEInfoImpl to exthandler, and don't allow to CreateInstance it
r=bzbarsky sr=darin
This commit is contained in:
Родитель
7126fa6307
Коммит
049f6d895d
|
@ -116,12 +116,6 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsAppleFileDecoder)
|
|||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "nsMIMEInfoImpl.h"
|
||||
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsMIMEInfoImpl)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "nsMIMEHeaderParamImpl.h"
|
||||
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsMIMEHeaderParamImpl)
|
||||
|
@ -878,12 +872,6 @@ static const nsModuleComponentInfo gNetModuleInfo[] = {
|
|||
},
|
||||
|
||||
// from netwerk/mime:
|
||||
{ "xml mime INFO",
|
||||
NS_MIMEINFO_CID,
|
||||
NS_MIMEINFO_CONTRACTID,
|
||||
nsMIMEInfoImplConstructor
|
||||
},
|
||||
|
||||
{ "mime header param",
|
||||
NS_MIMEHEADERPARAM_CID,
|
||||
NS_MIMEHEADERPARAM_CONTRACTID,
|
||||
|
|
|
@ -35,7 +35,6 @@ REQUIRES = xpcom \
|
|||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
nsMIMEInfoImpl.cpp \
|
||||
nsMIMEHeaderParamImpl.cpp \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -86,6 +86,8 @@ ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
|
|||
OSHELPER += nsGNOMERegistry.cpp
|
||||
endif
|
||||
|
||||
LOCAL_INCLUDES = -I$(srcdir)
|
||||
|
||||
EXPORTS = nsExternalHelperAppService.h \
|
||||
nsExternalProtocolHandler.h \
|
||||
$(OSDIR)/nsOSHelperAppService.h \
|
||||
|
@ -105,6 +107,7 @@ endif
|
|||
CPPSRCS = \
|
||||
nsExternalHelperAppService.cpp \
|
||||
nsExternalProtocolHandler.cpp \
|
||||
nsMIMEInfoImpl.cpp \
|
||||
$(OSHELPER) \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -160,7 +160,7 @@ nsresult nsOSHelperAppService::SetMIMEInfoForType(const char *aMIMEType, nsIMIME
|
|||
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsIMIMEInfo> mimeInfo (do_CreateInstance(NS_MIMEINFO_CONTRACTID));
|
||||
nsCOMPtr<nsIMIMEInfo> mimeInfo = new nsMIMEInfoImpl();
|
||||
if (mimeInfo) {
|
||||
BMimeType mimeType(aMIMEType);
|
||||
BMessage data;
|
||||
|
@ -327,9 +327,10 @@ nsOSHelperAppService::GetMIMEInfoFromOS(const char *aMIMEType, const char *aFile
|
|||
return mi;
|
||||
|
||||
*aFound = PR_FALSE;
|
||||
CallCreateInstance(NS_MIMEINFO_CONTRACTID, &mi);
|
||||
mi = new nsMIMEInfoImpl();
|
||||
if (!mi)
|
||||
return nsnull;
|
||||
NS_ADDREF(mi);
|
||||
if (aMIMEType && *aMIMEType)
|
||||
mi->SetMIMEType(aMIMEType);
|
||||
if (aFileExt && *aFileExt)
|
||||
|
|
|
@ -356,7 +356,7 @@ nsresult nsInternetConfigService::FillMIMEInfoForICEntry(ICMapEntry& entry, nsIM
|
|||
{
|
||||
// create a mime info object and we'll fill it in based on the values from IC mapping entry
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsIMIMEInfo> info (do_CreateInstance(NS_MIMEINFO_CONTRACTID));
|
||||
nsCOMPtr<nsIMIMEInfo> info (new nsMIMEInfoImpl());
|
||||
if (info)
|
||||
{
|
||||
nsCAutoString mimetype ((char *)&entry.MIMEType[1], entry.MIMEType[0]);
|
||||
|
|
|
@ -288,9 +288,10 @@ nsOSHelperAppService::GetMIMEInfoFromOS(const char * aMIMEType,
|
|||
if (!mimeInfo) {
|
||||
*aFound = PR_FALSE;
|
||||
PR_LOG(mLog, PR_LOG_DEBUG, ("Creating new mimeinfo\n"));
|
||||
CallCreateInstance(NS_MIMEINFO_CONTRACTID, &mimeInfo);
|
||||
mimeInfo = new nsMIMEInfoImpl();
|
||||
if (!mimeInfo)
|
||||
return nsnull;
|
||||
NS_ADDREF(mimeInfo);
|
||||
|
||||
if (aMIMEType && *aMIMEType)
|
||||
mimeInfo->SetMIMEType(aMIMEType);
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "nsIHelperAppLauncherDialog.h"
|
||||
|
||||
#include "nsIMIMEInfo.h"
|
||||
#include "nsMIMEInfoImpl.h"
|
||||
#include "nsIMIMEService.h"
|
||||
#include "nsIStreamListener.h"
|
||||
#include "nsIFile.h"
|
||||
|
|
|
@ -1519,10 +1519,10 @@ nsOSHelperAppService::GetFromExtension(const char *aFileExt) {
|
|||
return nsnull;
|
||||
}
|
||||
|
||||
nsIMIMEInfo* mimeInfo = nsnull;
|
||||
rv = CallCreateInstance(NS_MIMEINFO_CONTRACTID, &mimeInfo);
|
||||
if (NS_FAILED(rv))
|
||||
nsIMIMEInfo* mimeInfo = new nsMIMEInfoImpl();
|
||||
if (!mimeInfo)
|
||||
return nsnull;
|
||||
NS_ADDREF(mimeInfo);
|
||||
|
||||
mimeType = majorType + NS_LITERAL_STRING("/") + minorType;
|
||||
mimeInfo->SetMIMEType(NS_ConvertUCS2toUTF8(mimeType).get());
|
||||
|
@ -1648,10 +1648,10 @@ nsOSHelperAppService::GetFromType(const char *aMIMEType) {
|
|||
extensions,
|
||||
mime_types_description);
|
||||
|
||||
nsIMIMEInfo* mimeInfo = nsnull;
|
||||
rv = CallCreateInstance(NS_MIMEINFO_CONTRACTID, &mimeInfo);
|
||||
if (NS_FAILED(rv))
|
||||
nsIMIMEInfo* mimeInfo = new nsMIMEInfoImpl();
|
||||
if (!mimeInfo)
|
||||
return nsnull;
|
||||
NS_ADDREF(mimeInfo);
|
||||
|
||||
mimeInfo->SetFileExtensions(PromiseFlatCString(NS_ConvertUCS2toUTF8(extensions)).get());
|
||||
mimeInfo->SetMIMEType(aMIMEType);
|
||||
|
@ -1703,8 +1703,9 @@ nsOSHelperAppService::GetMIMEInfoFromOS(const char *aType,
|
|||
// If we got nothing, make a new mimeinfo
|
||||
if (!retval) {
|
||||
*aFound = PR_FALSE;
|
||||
CallCreateInstance(NS_MIMEINFO_CONTRACTID, &retval);
|
||||
retval = new nsMIMEInfoImpl();
|
||||
if (retval) {
|
||||
NS_ADDREF(retval);
|
||||
if (aType && *aType)
|
||||
retval->SetMIMEType(aType);
|
||||
if (aFileExt && *aFileExt)
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "nsString.h"
|
||||
#include "nsIComponentManager.h"
|
||||
#include "nsILocalFile.h"
|
||||
#include "nsMIMEInfoImpl.h"
|
||||
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
|
@ -263,7 +264,7 @@ nsGNOMERegistry::GetFromType(const char *aMIMEType)
|
|||
if (!handlerApp)
|
||||
return nsnull;
|
||||
|
||||
mimeInfo = do_CreateInstance(NS_MIMEINFO_CONTRACTID);
|
||||
mimeInfo = new nsMIMEInfoImpl();
|
||||
NS_ENSURE_TRUE(mimeInfo, nsnull);
|
||||
|
||||
mimeInfo->SetMIMEType(aMIMEType);
|
||||
|
|
|
@ -1431,10 +1431,10 @@ nsOSHelperAppService::GetFromExtension(const char *aFileExt) {
|
|||
return nsnull;
|
||||
}
|
||||
|
||||
nsIMIMEInfo* mimeInfo = nsnull;
|
||||
rv = CallCreateInstance(NS_MIMEINFO_CONTRACTID, &mimeInfo);
|
||||
if (NS_FAILED(rv))
|
||||
nsIMIMEInfo* mimeInfo = new nsMIMEInfoImpl();
|
||||
if (!mimeInfo)
|
||||
return nsnull;
|
||||
NS_ADDREF(mimeInfo);
|
||||
|
||||
mimeType = majorType + NS_LITERAL_STRING("/") + minorType;
|
||||
mimeInfo->SetMIMEType(NS_ConvertUCS2toUTF8(mimeType).get());
|
||||
|
@ -1580,10 +1580,10 @@ nsOSHelperAppService::GetFromType(const char *aMIMEType) {
|
|||
return nsnull;
|
||||
}
|
||||
|
||||
nsIMIMEInfo* mimeInfo = nsnull;
|
||||
rv = CallCreateInstance(NS_MIMEINFO_CONTRACTID, &mimeInfo);
|
||||
if (NS_FAILED(rv))
|
||||
nsIMIMEInfo* mimeInfo = new nsMIMEInfoImpl();
|
||||
if (!mimeInfo)
|
||||
return nsnull;
|
||||
NS_ADDREF(mimeInfo);
|
||||
|
||||
mimeInfo->SetFileExtensions(NS_ConvertUCS2toUTF8(extensions).get());
|
||||
mimeInfo->SetMIMEType(aMIMEType);
|
||||
|
@ -1637,8 +1637,9 @@ nsOSHelperAppService::GetMIMEInfoFromOS(const char *aType,
|
|||
// If we got nothing, make a new mimeinfo
|
||||
if (!retval) {
|
||||
*aFound = PR_FALSE;
|
||||
CallCreateInstance(NS_MIMEINFO_CONTRACTID, &retval);
|
||||
retval = new nsMIMEInfoImpl();
|
||||
if (retval) {
|
||||
NS_ADDREF(retval);
|
||||
if (aType && *aType)
|
||||
retval->SetMIMEType(aType);
|
||||
if (aFileExt && *aFileExt)
|
||||
|
|
|
@ -408,10 +408,10 @@ already_AddRefed<nsIMIMEInfo> nsOSHelperAppService::GetByExtension(const char *a
|
|||
nsAutoString description;
|
||||
PRBool found = GetValueString(hKey, NULL, description);
|
||||
|
||||
nsIMIMEInfo* mimeInfo = nsnull;
|
||||
CallCreateInstance(NS_MIMEINFO_CONTRACTID, &mimeInfo);
|
||||
nsIMIMEInfo* mimeInfo = new nsMIMEInfoImpl();
|
||||
if (mimeInfo)
|
||||
{
|
||||
NS_ADDREF(mimeInfo);
|
||||
if (!typeToUse.IsEmpty())
|
||||
mimeInfo->SetMIMEType(typeToUse.get());
|
||||
// don't append the '.'
|
||||
|
@ -504,8 +504,9 @@ already_AddRefed<nsIMIMEInfo> nsOSHelperAppService::GetMIMEInfoFromOS(const char
|
|||
}
|
||||
if (!miByExt && !mi) {
|
||||
*aFound = PR_FALSE;
|
||||
CallCreateInstance(NS_MIMEINFO_CONTRACTID, &mi);
|
||||
mi = new nsMIMEInfoImpl();
|
||||
if (mi) {
|
||||
NS_ADDREF(mi);
|
||||
if (aMIMEType && *aMIMEType)
|
||||
mi->SetMIMEType(aMIMEType);
|
||||
if (aFileExt && *aFileExt)
|
||||
|
|
Загрузка…
Ссылка в новой задаче