mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 851695 - PreCreate for BackstagePass. r=bholley
This commit is contained in:
parent
fd8a35a930
commit
639d557288
@ -4660,8 +4660,9 @@ NS_IMETHODIMP
|
||||
nsXPCComponents::GetHelperForLanguage(uint32_t language,
|
||||
nsISupports **retval)
|
||||
{
|
||||
*retval = static_cast<nsIXPCComponents*>(this);
|
||||
NS_ADDREF(this);
|
||||
nsCOMPtr<nsISupports> supports =
|
||||
do_QueryInterface(static_cast<nsIXPCComponents *>(this));
|
||||
supports.forget(retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -29,6 +29,7 @@ NS_IMPL_THREADSAFE_RELEASE(BackstagePass)
|
||||
#define XPC_MAP_QUOTED_CLASSNAME "BackstagePass"
|
||||
#define XPC_MAP_WANT_NEWRESOLVE
|
||||
#define XPC_MAP_WANT_FINALIZE
|
||||
#define XPC_MAP_WANT_PRECREATE
|
||||
|
||||
#define XPC_MAP_FLAGS nsIXPCScriptable::USE_JSSTUB_FOR_ADDPROPERTY | \
|
||||
nsIXPCScriptable::USE_JSSTUB_FOR_DELPROPERTY | \
|
||||
@ -108,7 +109,9 @@ NS_IMETHODIMP
|
||||
BackstagePass::GetHelperForLanguage(uint32_t language,
|
||||
nsISupports **retval)
|
||||
{
|
||||
*retval = nullptr;
|
||||
nsCOMPtr<nsISupports> supports =
|
||||
do_QueryInterface(static_cast<nsIGlobalObject *>(this));
|
||||
supports.forget(retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -169,6 +172,22 @@ BackstagePass::Finalize(nsIXPConnectWrappedNative *wrapper, JSFreeOp * fop, JSOb
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
BackstagePass::PreCreate(nsISupports *nativeObj, JSContext *cx,
|
||||
JSObject *globalObj, JSObject **parentObj)
|
||||
{
|
||||
// We do the same trick here as for WindowSH. Return the js global
|
||||
// as parent, so XPConenct can find the right scope and the wrapper
|
||||
// that already exists.
|
||||
nsCOMPtr<nsIGlobalObject> global(do_QueryInterface(nativeObj));
|
||||
MOZ_ASSERT(global, "nativeObj not a global object!");
|
||||
|
||||
JSObject *jsglobal = global->GetGlobalJSObject();
|
||||
if (jsglobal)
|
||||
*parentObj = jsglobal;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
NS_NewBackstagePass(BackstagePass** ret)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user