Bug 516747 part 1; make TabChild hand things out via nsIInterfaceRequestor. r=bsmedberg

This commit is contained in:
Boris Zbarsky 2009-12-31 20:34:06 -05:00
parent 8b8d953b9e
commit 9f0a91c448
2 changed files with 14 additions and 3 deletions

View File

@ -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)
{

View File

@ -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);