mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 10:44:56 +00:00
Backed out changeset 05e4c47f1e98 (bug 1036186) for Mulet mochitest bustage.
CLOSED TREE
This commit is contained in:
parent
1bcc49deea
commit
73c19b3d60
@ -429,6 +429,7 @@ static const nsConstructorFuncMapData kConstructorFuncMap[] =
|
||||
#undef NS_DEFINE_CONSTRUCTOR_FUNC_DATA
|
||||
|
||||
nsIXPConnect *nsDOMClassInfo::sXPConnect = nullptr;
|
||||
nsIScriptSecurityManager *nsDOMClassInfo::sSecMan = nullptr;
|
||||
bool nsDOMClassInfo::sIsInitialized = false;
|
||||
|
||||
|
||||
@ -779,11 +780,19 @@ nsDOMClassInfo::Init()
|
||||
nsScriptNameSpaceManager *nameSpaceManager = GetNameSpaceManager();
|
||||
NS_ENSURE_TRUE(nameSpaceManager, NS_ERROR_NOT_INITIALIZED);
|
||||
|
||||
NS_ADDREF(sXPConnect = nsContentUtils::XPConnect());
|
||||
nsresult rv = CallGetService(nsIXPConnect::GetCID(), &sXPConnect);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIXPCFunctionThisTranslator> elt = new nsEventListenerThisTranslator();
|
||||
sXPConnect->SetFunctionThisTranslator(NS_GET_IID(nsIDOMEventListener), elt);
|
||||
|
||||
nsCOMPtr<nsIScriptSecurityManager> sm =
|
||||
do_GetService("@mozilla.org/scriptsecuritymanager;1", &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
sSecMan = sm;
|
||||
NS_ADDREF(sSecMan);
|
||||
|
||||
AutoSafeJSContext cx;
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(Window, nsIDOMWindow)
|
||||
@ -1034,6 +1043,9 @@ nsDOMClassInfo::Init()
|
||||
|
||||
RegisterExternalClasses();
|
||||
|
||||
// Register new DOM bindings
|
||||
mozilla::dom::Register(nameSpaceManager);
|
||||
|
||||
sIsInitialized = true;
|
||||
|
||||
return NS_OK;
|
||||
@ -1506,14 +1518,18 @@ nsDOMClassInfo::PostCreatePrototype(JSContext * cx, JSObject * aProto)
|
||||
nsIClassInfo *
|
||||
NS_GetDOMClassInfoInstance(nsDOMClassInfoID aID)
|
||||
{
|
||||
MOZ_ASSERT(nsDOMClassInfo::sIsInitialized);
|
||||
|
||||
if (aID >= eDOMClassInfoIDCount) {
|
||||
NS_ERROR("Bad ID!");
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!nsDOMClassInfo::sIsInitialized) {
|
||||
nsresult rv = nsDOMClassInfo::Init();
|
||||
|
||||
NS_ENSURE_SUCCESS(rv, nullptr);
|
||||
}
|
||||
|
||||
if (!sClassInfoData[aID].mCachedClassInfo) {
|
||||
nsDOMClassInfoData& data = sClassInfoData[aID];
|
||||
|
||||
@ -1573,6 +1589,7 @@ nsDOMClassInfo::ShutDown()
|
||||
sWrappedJSObject_id = JSID_VOID;
|
||||
|
||||
NS_IF_RELEASE(sXPConnect);
|
||||
NS_IF_RELEASE(sSecMan);
|
||||
sIsInitialized = false;
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,6 @@ public:
|
||||
|
||||
static nsIClassInfo* GetClassInfoInstance(nsDOMClassInfoData* aData);
|
||||
|
||||
static nsresult Init();
|
||||
static void ShutDown();
|
||||
|
||||
static nsIClassInfo *doCreate(nsDOMClassInfoData* aData)
|
||||
@ -128,6 +127,10 @@ public:
|
||||
{
|
||||
return sXPConnect;
|
||||
}
|
||||
static nsIScriptSecurityManager *ScriptSecurityManager()
|
||||
{
|
||||
return sSecMan;
|
||||
}
|
||||
|
||||
protected:
|
||||
friend nsIClassInfo* NS_GetDOMClassInfoInstance(nsDOMClassInfoID aID);
|
||||
@ -143,12 +146,14 @@ protected:
|
||||
return mData->mInterfacesBitmap;
|
||||
}
|
||||
|
||||
static nsresult Init();
|
||||
static nsresult RegisterClassProtos(int32_t aDOMClassInfoID);
|
||||
static nsresult RegisterExternalClasses();
|
||||
nsresult ResolveConstructor(JSContext *cx, JSObject *obj,
|
||||
JSObject **objp);
|
||||
|
||||
static nsIXPConnect *sXPConnect;
|
||||
static nsIScriptSecurityManager *sSecMan;
|
||||
|
||||
// nsIXPCScriptable code
|
||||
static nsresult DefineStaticJSVals(JSContext *cx);
|
||||
|
@ -180,20 +180,6 @@ nsLayoutStatics::Initialize()
|
||||
return rv;
|
||||
}
|
||||
|
||||
rv = nsDOMClassInfo::Init();
|
||||
if (NS_FAILED(rv)) {
|
||||
NS_ERROR("Could not initialize nsDOMClassInfo");
|
||||
return rv;
|
||||
}
|
||||
|
||||
// Register new DOM bindings
|
||||
nsScriptNameSpaceManager* nameSpaceManager = GetNameSpaceManager();
|
||||
if (!nameSpaceManager) {
|
||||
NS_ERROR("Could not initialize nsScriptNameSpaceManager");
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
mozilla::dom::Register(nameSpaceManager);
|
||||
|
||||
rv = nsAttrValue::Init();
|
||||
if (NS_FAILED(rv)) {
|
||||
NS_ERROR("Could not initialize nsAttrValue");
|
||||
|
Loading…
Reference in New Issue
Block a user