diff --git a/dom/public/nsIScriptContext.h b/dom/public/nsIScriptContext.h index 2dac1098a79c..d3bdaf670a2c 100644 --- a/dom/public/nsIScriptContext.h +++ b/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/dom/src/base/nsJSEnvironment.h b/dom/src/base/nsJSEnvironment.h index 1f47bbf3c7e9..286db165c6c7 100644 --- a/dom/src/base/nsJSEnvironment.h +++ b/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/extensions/python/dom/src/nsPyContext.cpp b/extensions/python/dom/src/nsPyContext.cpp index a8cf27302daf..36b9ea76de40 100644 --- a/extensions/python/dom/src/nsPyContext.cpp +++ b/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/extensions/python/dom/src/nsPyContext.h b/extensions/python/dom/src/nsPyContext.h index e1950343f3f3..48cc75e4bdd9 100644 --- a/extensions/python/dom/src/nsPyContext.h +++ b/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,