diff --git a/dom/ipc/TabChild.cpp b/dom/ipc/TabChild.cpp index 16ca6619c8e6..618635ba8183 100644 --- a/dom/ipc/TabChild.cpp +++ b/dom/ipc/TabChild.cpp @@ -102,9 +102,9 @@ TabChild::Init() return NS_OK; } -NS_IMPL_ISUPPORTS5(TabChild, nsIWebBrowserChrome, nsIWebBrowserChrome2, +NS_IMPL_ISUPPORTS6(TabChild, nsIWebBrowserChrome, nsIWebBrowserChrome2, nsIEmbeddingSiteWindow, nsIEmbeddingSiteWindow2, - nsIWebBrowserChromeFocus) + nsIWebBrowserChromeFocus, nsIInterfaceRequestor) NS_IMETHODIMP TabChild::SetStatus(PRUint32 aStatusType, const PRUnichar* aStatus) @@ -246,6 +246,14 @@ TabChild::FocusPrevElement() return NS_OK; } +NS_IMETHODIMP +TabChild::GetInterface(const nsIID & aIID, void **aSink) +{ + // XXXbz should we restrict the set of interfaces we hand out here? + // See bug 537429 + return QueryInterface(aIID, aSink); +} + bool TabChild::RecvcreateWidget(const MagicWindowHandle& parentWidget) { diff --git a/dom/ipc/TabChild.h b/dom/ipc/TabChild.h index 632ce5f00e52..339e1f79281f 100644 --- a/dom/ipc/TabChild.h +++ b/dom/ipc/TabChild.h @@ -48,6 +48,7 @@ #include "nsIWebBrowserChromeFocus.h" #include "nsIDOMEventListener.h" #include "nsIDOMEventTarget.h" +#include "nsIInterfaceRequestor.h" namespace mozilla { namespace dom { @@ -67,7 +68,8 @@ protected: class TabChild : public PIFrameEmbeddingChild, public nsIWebBrowserChrome2, public nsIEmbeddingSiteWindow2, - public nsIWebBrowserChromeFocus + public nsIWebBrowserChromeFocus, + public nsIInterfaceRequestor { public: TabChild(); @@ -81,6 +83,7 @@ public: NS_DECL_NSIEMBEDDINGSITEWINDOW NS_DECL_NSIEMBEDDINGSITEWINDOW2 NS_DECL_NSIWEBBROWSERCHROMEFOCUS + NS_DECL_NSIINTERFACEREQUESTOR virtual bool RecvcreateWidget(const MagicWindowHandle& parentWidget); virtual bool RecvloadURL(const nsCString& uri);