Fix --disable-libxul from bug 568691. r=Mossop

This commit is contained in:
Benjamin Smedberg 2010-07-02 14:23:41 -04:00
Родитель 4cd467403f
Коммит 3e909b0671
8 изменённых файлов: 99 добавлений и 43 удалений

Просмотреть файл

@ -57,6 +57,7 @@ private:
}; };
NS_IMPL_CLASSINFO(xpcTestCallJS, NULL, 0, NS_XPCTESTCALLJS_CID);
NS_IMPL_ISUPPORTS2_CI(xpcTestCallJS, nsIXPCTestCallJS, nsIXPCScriptable) NS_IMPL_ISUPPORTS2_CI(xpcTestCallJS, nsIXPCTestCallJS, nsIXPCScriptable)
// The nsIXPCScriptable map declaration that will generate stubs for us... // The nsIXPCScriptable map declaration that will generate stubs for us...

Просмотреть файл

@ -43,35 +43,86 @@
#include "xpctest_private.h" #include "xpctest_private.h"
#include "nsCOMPtr.h" #include "nsCOMPtr.h"
#include "nsIModule.h" #include "nsIModule.h"
#include "nsIGenericFactory.h" #include "mozilla/ModuleUtils.h"
#include "nsCRT.h" #include "nsCRT.h"
#include "nsIClassInfoImpl.h" #include "nsIClassInfoImpl.h"
NS_DECL_CLASSINFO(xpcTestCallJS) NS_DEFINE_NAMED_CID(NS_ECHO_CID);
NS_DECL_CLASSINFO(xpcTestChild2) NS_DEFINE_NAMED_CID(NS_CHILD_CID);
NS_DEFINE_NAMED_CID(NS_NOISY_CID);
NS_DEFINE_NAMED_CID(NS_STRING_TEST_CID);
NS_DEFINE_NAMED_CID(NS_OVERLOADED_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTOBJECTREADONLY_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTOBJECTREADWRITE_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTIN_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTOUT_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTINOUT_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTCONST_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTCALLJS_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTPARENTONE_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTPARENTTWO_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTCHILD2_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTCHILD3_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTCHILD4_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTCHILD5_CID);
NS_DEFINE_NAMED_CID(NS_ARRAY_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTDOMSTRING_CID);
NS_DEFINE_NAMED_CID(NS_XPCTESTVARIANT_CID);
static const nsModuleComponentInfo components[] = { static const mozilla::Module::CIDEntry kXPCTestCIDs[] = {
{nsnull, NS_ECHO_CID, "@mozilla.org/js/xpc/test/Echo;1", xpctest::ConstructEcho }, { &kNS_ECHO_CID, false, NULL, xpctest::ConstructEcho },
{nsnull, NS_CHILD_CID, "@mozilla.org/js/xpc/test/Child;1", xpctest::ConstructChild }, { &kNS_CHILD_CID, false, NULL, xpctest::ConstructChild },
{nsnull, NS_NOISY_CID, "@mozilla.org/js/xpc/test/Noisy;1", xpctest::ConstructNoisy }, { &kNS_NOISY_CID, false, NULL, xpctest::ConstructNoisy },
{nsnull, NS_STRING_TEST_CID, "@mozilla.org/js/xpc/test/StringTest;1", xpctest::ConstructStringTest }, { &kNS_STRING_TEST_CID, false, NULL, xpctest::ConstructStringTest },
{nsnull, NS_OVERLOADED_CID, "@mozilla.org/js/xpc/test/Overloaded;1", xpctest::ConstructOverloaded }, { &kNS_OVERLOADED_CID, false, NULL, xpctest::ConstructOverloaded },
{nsnull, NS_XPCTESTOBJECTREADONLY_CID, "@mozilla.org/js/xpc/test/ObjectReadOnly;1", xpctest::ConstructXPCTestObjectReadOnly }, { &kNS_XPCTESTOBJECTREADONLY_CID, false, NULL, xpctest::ConstructXPCTestObjectReadOnly },
{nsnull, NS_XPCTESTOBJECTREADWRITE_CID, "@mozilla.org/js/xpc/test/ObjectReadWrite;1", xpctest::ConstructXPCTestObjectReadWrite}, { &kNS_XPCTESTOBJECTREADWRITE_CID, false, NULL, xpctest::ConstructXPCTestObjectReadWrite },
{nsnull, NS_XPCTESTIN_CID, "@mozilla.org/js/xpc/test/In;1", xpctest::ConstructXPCTestIn }, { &kNS_XPCTESTIN_CID, false, NULL, xpctest::ConstructXPCTestIn },
{nsnull, NS_XPCTESTOUT_CID, "@mozilla.org/js/xpc/test/Out;1", xpctest::ConstructXPCTestOut }, { &kNS_XPCTESTOUT_CID, false, NULL, xpctest::ConstructXPCTestOut },
{nsnull, NS_XPCTESTINOUT_CID, "@mozilla.org/js/xpc/test/InOut;1", xpctest::ConstructXPCTestInOut }, { &kNS_XPCTESTINOUT_CID, false, NULL, xpctest::ConstructXPCTestInOut },
{nsnull, NS_XPCTESTCONST_CID, "@mozilla.org/js/xpc/test/Const;1", xpctest::ConstructXPCTestConst }, { &kNS_XPCTESTCONST_CID, false, NULL, xpctest::ConstructXPCTestConst },
{nsnull, NS_XPCTESTCALLJS_CID, "@mozilla.org/js/xpc/test/CallJS;1", xpctest::ConstructXPCTestCallJS, NULL, NULL, NULL, NS_CI_INTERFACE_GETTER_NAME(xpcTestCallJS), NULL, &NS_CLASSINFO_NAME(xpcTestCallJS) }, { &kNS_XPCTESTCALLJS_CID, false, NULL, xpctest::ConstructXPCTestCallJS },
{nsnull, NS_XPCTESTPARENTONE_CID, "@mozilla.org/js/xpc/test/ParentOne;1", xpctest::ConstructXPCTestParentOne }, { &kNS_XPCTESTPARENTONE_CID, false, NULL, xpctest::ConstructXPCTestParentOne },
{nsnull, NS_XPCTESTPARENTTWO_CID, "@mozilla.org/js/xpc/test/ParentTwo;1", xpctest::ConstructXPCTestParentTwo }, { &kNS_XPCTESTPARENTTWO_CID, false, NULL, xpctest::ConstructXPCTestParentTwo },
{nsnull, NS_XPCTESTCHILD2_CID, "@mozilla.org/js/xpc/test/Child2;1", xpctest::ConstructXPCTestChild2, NULL, NULL, NULL, NS_CI_INTERFACE_GETTER_NAME(xpcTestChild2), NULL, &NS_CLASSINFO_NAME(xpcTestChild2) }, { &kNS_XPCTESTCHILD2_CID, false, NULL, xpctest::ConstructXPCTestChild2 },
{nsnull, NS_XPCTESTCHILD3_CID, "@mozilla.org/js/xpc/test/Child3;1", xpctest::ConstructXPCTestChild3 }, { &kNS_XPCTESTCHILD3_CID, false, NULL, xpctest::ConstructXPCTestChild3 },
{nsnull, NS_XPCTESTCHILD4_CID, "@mozilla.org/js/xpc/test/Child4;1", xpctest::ConstructXPCTestChild4 }, { &kNS_XPCTESTCHILD4_CID, false, NULL, xpctest::ConstructXPCTestChild4 },
{nsnull, NS_XPCTESTCHILD5_CID, "@mozilla.org/js/xpc/test/Child5;1", xpctest::ConstructXPCTestChild5 }, { &kNS_XPCTESTCHILD5_CID, false, NULL, xpctest::ConstructXPCTestChild5 },
{nsnull, NS_ARRAY_CID, "@mozilla.org/js/xpc/test/ArrayTest;1", xpctest::ConstructArrayTest }, { &kNS_ARRAY_CID, false, NULL, xpctest::ConstructArrayTest },
{nsnull, NS_XPCTESTDOMSTRING_CID, "@mozilla.org/js/xpc/test/DOMString;1", xpctest::ConstructXPCTestDOMString }, { &kNS_XPCTESTDOMSTRING_CID, false, NULL, xpctest::ConstructXPCTestDOMString },
{nsnull, NS_XPCTESTVARIANT_CID, "@mozilla.org/js/xpc/test/TestVariant;1", xpctest::ConstructXPCTestVariant } { &kNS_XPCTESTVARIANT_CID, false, NULL, xpctest::ConstructXPCTestVariant },
{ NULL }
}; };
NS_IMPL_NSGETMODULE(xpconnect_test, components) static const mozilla::Module::ContractIDEntry kXPCTestContracts[] = {
{ "@mozilla.org/js/xpc/test/Echo;1", &kNS_ECHO_CID },
{ "@mozilla.org/js/xpc/test/Child;1", &kNS_CHILD_CID },
{ "@mozilla.org/js/xpc/test/Noisy;1", &kNS_NOISY_CID },
{ "@mozilla.org/js/xpc/test/StringTest;1", &kNS_STRING_TEST_CID },
{ "@mozilla.org/js/xpc/test/Overloaded;1", &kNS_OVERLOADED_CID },
{ "@mozilla.org/js/xpc/test/ObjectReadOnly;1", &kNS_XPCTESTOBJECTREADONLY_CID },
{ "@mozilla.org/js/xpc/test/ObjectReadWrite;1", &kNS_XPCTESTOBJECTREADWRITE_CID },
{ "@mozilla.org/js/xpc/test/In;1", &kNS_XPCTESTIN_CID },
{ "@mozilla.org/js/xpc/test/Out;1", &kNS_XPCTESTOUT_CID },
{ "@mozilla.org/js/xpc/test/InOut;1", &kNS_XPCTESTINOUT_CID },
{ "@mozilla.org/js/xpc/test/Const;1", &kNS_XPCTESTCONST_CID },
{ "@mozilla.org/js/xpc/test/CallJS;1", &kNS_XPCTESTCALLJS_CID },
{ "@mozilla.org/js/xpc/test/ParentOne;1", &kNS_XPCTESTPARENTONE_CID },
{ "@mozilla.org/js/xpc/test/ParentTwo;1", &kNS_XPCTESTPARENTTWO_CID },
{ "@mozilla.org/js/xpc/test/Child2;1", &kNS_XPCTESTCHILD2_CID },
{ "@mozilla.org/js/xpc/test/Child3;1", &kNS_XPCTESTCHILD3_CID },
{ "@mozilla.org/js/xpc/test/Child4;1", &kNS_XPCTESTCHILD4_CID },
{ "@mozilla.org/js/xpc/test/Child5;1", &kNS_XPCTESTCHILD5_CID },
{ "@mozilla.org/js/xpc/test/ArrayTest;1", &kNS_ARRAY_CID },
{ "@mozilla.org/js/xpc/test/DOMString;1", &kNS_XPCTESTDOMSTRING_CID },
{ "@mozilla.org/js/xpc/test/TestVariant;1", &kNS_XPCTESTVARIANT_CID },
{ NULL }
};
static const mozilla::Module kXPCTestModule = {
mozilla::Module::kVersion,
kXPCTestCIDs,
kXPCTestContracts
};
NSMODULE_DEFN(xpconnect_test) = &kXPCTestModule;

Просмотреть файл

@ -185,6 +185,7 @@ private:
const char *name; const char *name;
}; };
NS_IMPL_CLASSINFO(xpcTestChild2, NULL, 0, NS_XPCTESTCHILD2_CID);
NS_IMPL_ISUPPORTS3_CI(xpcTestChild2,nsIXPCTestChild2,nsIXPCTestParentOne,nsIXPCTestParentTwo) NS_IMPL_ISUPPORTS3_CI(xpcTestChild2,nsIXPCTestChild2,nsIXPCTestParentOne,nsIXPCTestParentTwo)
xpcTestChild2 :: xpcTestChild2() xpcTestChild2 :: xpcTestChild2()

Просмотреть файл

@ -49,7 +49,7 @@
#include "nsIXPConnect.h" #include "nsIXPConnect.h"
#include "nsIServiceManager.h" #include "nsIServiceManager.h"
#include "nsIComponentManager.h" #include "nsIComponentManager.h"
#include "nsIGenericFactory.h" #include "mozilla/ModuleUtils.h"
#include "nscore.h" #include "nscore.h"
#include "nsCOMPtr.h" #include "nsCOMPtr.h"
#include "nsAString.h" #include "nsAString.h"

Просмотреть файл

@ -1135,16 +1135,6 @@ static const mozilla::Module kXREModule = {
NSMODULE_DEFN(Apprunner) = &kXREModule; NSMODULE_DEFN(Apprunner) = &kXREModule;
#if !defined(_BUILD_STATIC_BIN) && !defined(MOZ_ENABLE_LIBXUL)
static mozilla::Module const *const kXREStaticModules[] =
{
Apprunner_NSModule,
NULL
};
mozilla::Module const *const *const kPStaticModules = kXREStaticModule;
#endif
nsresult nsresult
ScopedXPCOMStartup::Initialize() ScopedXPCOMStartup::Initialize()
{ {
@ -1162,6 +1152,10 @@ ScopedXPCOMStartup::Initialize()
mozilla::SetOmnijar(lf); mozilla::SetOmnijar(lf);
#endif #endif
#if !defined(_BUILD_STATIC_BIN) && !defined(MOZ_ENABLE_LIBXUL)
XRE_AddStaticComponent(&kXREModule);
#endif
rv = NS_InitXPCOM2(&mServiceManager, gDirServiceProvider->GetAppDir(), rv = NS_InitXPCOM2(&mServiceManager, gDirServiceProvider->GetAppDir(),
gDirServiceProvider); gDirServiceProvider);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {

Просмотреть файл

@ -53,7 +53,6 @@
#include "nsConsoleMessage.h" #include "nsConsoleMessage.h"
#include "nsTextFormatter.h" #include "nsTextFormatter.h"
#include "nsUnicharUtils.h"
#include "nsVersionComparator.h" #include "nsVersionComparator.h"
#include "nsXPCOMCIDInternal.h" #include "nsXPCOMCIDInternal.h"
@ -393,6 +392,14 @@ CheckVersionFlag(const nsString& aFlag, const nsString& aData,
return true; return true;
} }
// In-place conversion of ascii characters to lower case
static void
ToLowerCase(char* token)
{
for (; *token; ++token)
*token = NS_ToLower(*token);
}
namespace { namespace {
struct CachedDirective struct CachedDirective
@ -439,14 +446,14 @@ ParseManifestCommon(NSLocationType aType, nsILocalFile* aFile,
if (xruntime) { if (xruntime) {
rv = xruntime->GetOS(s); rv = xruntime->GetOS(s);
if (NS_SUCCEEDED(rv)) { if (NS_SUCCEEDED(rv)) {
ToLowerCase(s);
CopyUTF8toUTF16(s, osTarget); CopyUTF8toUTF16(s, osTarget);
ToLowerCase(osTarget);
} }
rv = xruntime->GetXPCOMABI(s); rv = xruntime->GetXPCOMABI(s);
if (NS_SUCCEEDED(rv) && osTarget.Length()) { if (NS_SUCCEEDED(rv) && osTarget.Length()) {
ToLowerCase(s);
CopyUTF8toUTF16(s, abi); CopyUTF8toUTF16(s, abi);
ToLowerCase(abi);
abi.Insert(PRUnichar('_'), 0); abi.Insert(PRUnichar('_'), 0);
abi.Insert(osTarget, 0); abi.Insert(osTarget, 0);
} }
@ -553,8 +560,8 @@ ParseManifestCommon(NSLocationType aType, nsILocalFile* aFile,
bool contentAccessible = false; bool contentAccessible = false;
while (NULL != (token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) && ok) { while (NULL != (token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) && ok) {
ToLowerCase(token);
NS_ConvertASCIItoUTF16 wtoken(token); NS_ConvertASCIItoUTF16 wtoken(token);
ToLowerCase(wtoken);
if (CheckStringFlag(kApplication, wtoken, appID, stApp) || if (CheckStringFlag(kApplication, wtoken, appID, stApp) ||
CheckStringFlag(kOs, wtoken, osTarget, stOs) || CheckStringFlag(kOs, wtoken, osTarget, stOs) ||

Просмотреть файл

@ -316,9 +316,11 @@ nsComponentManagerImpl::InitializeStaticModules()
return; return;
sStaticModules = new nsTArray<const mozilla::Module*>; sStaticModules = new nsTArray<const mozilla::Module*>;
#if defined(_BUILD_STATIC_BIN) || defined(MOZ_ENABLE_LIBXUL)
for (const mozilla::Module *const *staticModules = kPStaticModules; for (const mozilla::Module *const *staticModules = kPStaticModules;
*staticModules; ++staticModules) *staticModules; ++staticModules)
sStaticModules->AppendElement(*staticModules); sStaticModules->AppendElement(*staticModules);
#endif
} }
nsTArray<nsComponentManagerImpl::ComponentLocation>* nsTArray<nsComponentManagerImpl::ComponentLocation>*

Просмотреть файл

@ -41,7 +41,7 @@
#include NEW_H #include NEW_H
class GenericClassInfo : public nsIClassInfo class NS_COM_GLUE GenericClassInfo : public nsIClassInfo
{ {
public: public:
struct ClassInfoData struct ClassInfoData