mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 902718 - Use the SafeJSContext for XBL serialization and deserialization. r=bz
This commit is contained in:
parent
2ae63c93c3
commit
1ec46ae8f9
@ -14,6 +14,7 @@
|
||||
|
||||
class nsIObjectInputStream;
|
||||
class nsIObjectOutputStream;
|
||||
class nsIScriptContext;
|
||||
class nsIURI;
|
||||
|
||||
class nsXBLProtoImplField
|
||||
|
@ -16,7 +16,6 @@
|
||||
|
||||
class nsIContent;
|
||||
class nsIObjectOutputStream;
|
||||
class nsIScriptContext;
|
||||
|
||||
struct nsXBLTextWithLineNumber
|
||||
{
|
||||
|
@ -12,9 +12,7 @@
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsCxPusher.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsJSUtils.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
#include "nsXBLPrototypeBinding.h"
|
||||
#include "nsXBLSerialize.h"
|
||||
#include "xpcpublic.h"
|
||||
|
@ -35,7 +35,6 @@
|
||||
#include "nsTextFragment.h"
|
||||
#include "nsTextNode.h"
|
||||
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIScriptError.h"
|
||||
|
||||
#include "nsIStyleRuleProcessor.h"
|
||||
@ -946,13 +945,13 @@ nsXBLPrototypeBinding::Read(nsIObjectInputStream* aStream,
|
||||
mInterfaceTable.Put(iid, mBinding);
|
||||
}
|
||||
|
||||
AutoSafeJSContext cx;
|
||||
nsCOMPtr<nsIScriptGlobalObjectOwner> globalOwner(do_QueryObject(aDocInfo));
|
||||
nsIScriptGlobalObject* globalObject = globalOwner->GetScriptGlobalObject();
|
||||
NS_ENSURE_TRUE(globalObject, NS_ERROR_UNEXPECTED);
|
||||
|
||||
nsIScriptContext *context = globalObject->GetContext();
|
||||
NS_ENSURE_TRUE(context && context->GetNativeContext(), NS_ERROR_FAILURE);
|
||||
AutoCxPusher pusher(context->GetNativeContext());
|
||||
JS::Rooted<JSObject*> compilationGlobal(cx, globalObject->GetGlobalJSObject());
|
||||
NS_ENSURE_TRUE(compilationGlobal, NS_ERROR_UNEXPECTED);
|
||||
JSAutoCompartment ac(cx, compilationGlobal);
|
||||
|
||||
bool isFirstBinding = aFlags & XBLBinding_Serialize_IsFirstBinding;
|
||||
rv = Init(id, aDocInfo, nullptr, isFirstBinding);
|
||||
@ -1055,13 +1054,13 @@ nsXBLPrototypeBinding::Write(nsIObjectOutputStream* aStream)
|
||||
// mKeyHandlersRegistered and mKeyHandlers are not serialized as they are
|
||||
// computed on demand.
|
||||
|
||||
AutoSafeJSContext cx;
|
||||
nsCOMPtr<nsIScriptGlobalObjectOwner> globalOwner(do_QueryObject(mXBLDocInfoWeak));
|
||||
nsIScriptGlobalObject* globalObject = globalOwner->GetScriptGlobalObject();
|
||||
NS_ENSURE_TRUE(globalObject, NS_ERROR_UNEXPECTED);
|
||||
|
||||
nsIScriptContext *context = globalObject->GetContext();
|
||||
NS_ENSURE_TRUE(context && context->GetNativeContext(), NS_ERROR_FAILURE);
|
||||
AutoCxPusher pusher(context->GetNativeContext());
|
||||
JS::Rooted<JSObject*> compilationGlobal(cx, globalObject->GetGlobalJSObject());
|
||||
NS_ENSURE_TRUE(compilationGlobal, NS_ERROR_UNEXPECTED);
|
||||
JSAutoCompartment ac(cx, compilationGlobal);
|
||||
|
||||
uint8_t flags = mInheritStyle ? XBLBinding_Serialize_InheritStyle : 0;
|
||||
|
||||
|
@ -22,7 +22,6 @@
|
||||
class nsIAtom;
|
||||
class nsIContent;
|
||||
class nsIDocument;
|
||||
class nsIScriptContext;
|
||||
class nsSupportsHashtable;
|
||||
class nsXBLProtoImplField;
|
||||
class nsXBLBinding;
|
||||
|
@ -12,7 +12,6 @@
|
||||
|
||||
class nsIContent;
|
||||
class nsIAtom;
|
||||
class nsIScriptContext;
|
||||
class nsSupportsHashtable;
|
||||
class nsXBLResourceLoader;
|
||||
class nsXBLPrototypeBinding;
|
||||
|
@ -11,7 +11,6 @@
|
||||
|
||||
class nsIContent;
|
||||
class nsIAtom;
|
||||
class nsIScriptContext;
|
||||
class nsSupportsHashtable;
|
||||
class nsXBLPrototypeResources;
|
||||
class nsXBLPrototypeBinding;
|
||||
|
@ -8,7 +8,6 @@
|
||||
|
||||
#include "jsapi.h"
|
||||
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIObjectInputStream.h"
|
||||
#include "nsIObjectOutputStream.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
|
Loading…
Reference in New Issue
Block a user