From 7016d67f1341077aa001d1c131c6879185e9fd8a Mon Sep 17 00:00:00 2001 From: "mhammond%skippinet.com.au" Date: Wed, 19 Jul 2006 04:15:50 +0000 Subject: [PATCH] Bug 341915: can we move nsIScriptContext(Owner) from dom to xpconnect r=timeless, sr=jst git-svn-id: svn://10.0.0.236/trunk@203077 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/dom/public/nsIScriptContext.h | 6 +++--- mozilla/dom/src/base/nsJSEnvironment.h | 2 +- mozilla/extensions/python/dom/src/nsPyContext.cpp | 11 +++++++---- mozilla/extensions/python/dom/src/nsPyContext.h | 2 +- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/mozilla/dom/public/nsIScriptContext.h b/mozilla/dom/public/nsIScriptContext.h index 2dac1098a79..d3bdaf670a2 100644 --- a/mozilla/dom/public/nsIScriptContext.h +++ b/mozilla/dom/public/nsIScriptContext.h @@ -54,7 +54,6 @@ class nsIVariant; class nsIObjectInputStream; class nsIObjectOutputStream; class nsScriptObjectHolder; -class nsIDOMDocument; typedef void (*nsScriptTerminationFunc)(nsISupports* aRef); @@ -443,9 +442,10 @@ public: /** * Tell the context our global has a new document, and the scope - * used by it. + * used by it. Use nsISupports to avoid dependency issues - but expect + * a QI for nsIDOMDocument and/or nsIDocument. */ - virtual void DidSetDocument(nsIDOMDocument *aDoc, void *aGlobal) = 0; + virtual void DidSetDocument(nsISupports *aDoc, void *aGlobal) = 0; /* Memory managment for script objects. Used by the implementation of * nsScriptObjectHolder to manage the lifetimes of the held script objects. diff --git a/mozilla/dom/src/base/nsJSEnvironment.h b/mozilla/dom/src/base/nsJSEnvironment.h index 1f47bbf3c7e..286db165c6c 100644 --- a/mozilla/dom/src/base/nsJSEnvironment.h +++ b/mozilla/dom/src/base/nsJSEnvironment.h @@ -154,7 +154,7 @@ public: virtual void WillInitializeContext(); virtual void DidInitializeContext(); - virtual void DidSetDocument(nsIDOMDocument *aDocdoc, void *aGlobal) {;} + virtual void DidSetDocument(nsISupports *aDocdoc, void *aGlobal) {;} virtual nsresult Serialize(nsIObjectOutputStream* aStream, void *aScriptObject); virtual nsresult Deserialize(nsIObjectInputStream* aStream, diff --git a/mozilla/extensions/python/dom/src/nsPyContext.cpp b/mozilla/extensions/python/dom/src/nsPyContext.cpp index a8cf27302da..36b9ea76de4 100644 --- a/mozilla/extensions/python/dom/src/nsPyContext.cpp +++ b/mozilla/extensions/python/dom/src/nsPyContext.cpp @@ -288,7 +288,7 @@ nsPythonContext::InitContext(nsIScriptGlobalObject *aGlobalObject) } void -nsPythonContext::DidSetDocument(nsIDOMDocument *aDoc, void *aGlobal) +nsPythonContext::DidSetDocument(nsISupports *aSupDoc, void *aGlobal) { NS_TIMELINE_MARK_FUNCTION("nsPythonContext::DidSetDocument"); NS_ASSERTION(mDelegate != NULL, "No delegate"); @@ -298,9 +298,12 @@ nsPythonContext::DidSetDocument(nsIDOMDocument *aDoc, void *aGlobal) CEnterLeavePython _celp; PyObject *obDoc; - if (aDoc) { - obDoc = PyObject_FromNSDOMInterface(mDelegate, aDoc, - NS_GET_IID(nsIDOMDocument)); + if (aSupDoc) { + nsCOMPtr doc(do_QueryInterface(aSupDoc)); + NS_ASSERTION(nsnull != doc, "not an nsIDOMDocument!?"); + if (nsnull != doc) + obDoc = PyObject_FromNSDOMInterface(mDelegate, aSupDoc, + NS_GET_IID(nsIDOMDocument)); if (!obDoc) { HandlePythonError(); return; diff --git a/mozilla/extensions/python/dom/src/nsPyContext.h b/mozilla/extensions/python/dom/src/nsPyContext.h index e1950343f3f..48cc75e4bdd 100644 --- a/mozilla/extensions/python/dom/src/nsPyContext.h +++ b/mozilla/extensions/python/dom/src/nsPyContext.h @@ -204,7 +204,7 @@ public: virtual void WillInitializeContext(); virtual void DidInitializeContext(); - virtual void DidSetDocument(nsIDOMDocument *aDocdoc, void *aGlobal); + virtual void DidSetDocument(nsISupports *aDocdoc, void *aGlobal); virtual nsresult Serialize(nsIObjectOutputStream* aStream, void *aScriptObject); virtual nsresult Deserialize(nsIObjectInputStream* aStream,