Bug 22598. r=vidur
git-svn-id: svn://10.0.0.236/trunk@56781 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -51,6 +51,7 @@
|
||||
#include "nsITimerCallback.h"
|
||||
#include "nsLayoutAtoms.h"
|
||||
#include "nsIDocShellTreeItem.h"
|
||||
#include "nsIDOMElement.h"
|
||||
|
||||
// XXX For temporary paint code
|
||||
#include "nsIStyleContext.h"
|
||||
@@ -97,6 +98,8 @@ public:
|
||||
|
||||
NS_IMETHOD GetAttribute(const char* name, const char* *result);
|
||||
|
||||
NS_IMETHOD GetDOMElement(nsIDOMElement* *result);
|
||||
|
||||
//nsIPluginTagInfo2 interface
|
||||
|
||||
NS_IMETHOD GetTagType(nsPluginTagType *result);
|
||||
@@ -1662,6 +1665,28 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetAttribute(const char* name, const char*
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstanceOwner::GetDOMElement(nsIDOMElement* *result)
|
||||
{
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
|
||||
*result = nsnull;
|
||||
|
||||
if (nsnull != mOwner)
|
||||
{
|
||||
nsIContent *cont;
|
||||
|
||||
mOwner->GetContent(&cont);
|
||||
|
||||
if (nsnull != cont)
|
||||
{
|
||||
rv = cont->QueryInterface(nsIDOMElement::GetIID(), (void **)result);
|
||||
NS_RELEASE(cont);
|
||||
}
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstanceOwner::GetInstance(nsIPluginInstance *&aInstance)
|
||||
{
|
||||
if (nsnull != mInstance)
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
#include "nsITimerCallback.h"
|
||||
#include "nsLayoutAtoms.h"
|
||||
#include "nsIDocShellTreeItem.h"
|
||||
#include "nsIDOMElement.h"
|
||||
|
||||
// XXX For temporary paint code
|
||||
#include "nsIStyleContext.h"
|
||||
@@ -97,6 +98,8 @@ public:
|
||||
|
||||
NS_IMETHOD GetAttribute(const char* name, const char* *result);
|
||||
|
||||
NS_IMETHOD GetDOMElement(nsIDOMElement* *result);
|
||||
|
||||
//nsIPluginTagInfo2 interface
|
||||
|
||||
NS_IMETHOD GetTagType(nsPluginTagType *result);
|
||||
@@ -1662,6 +1665,28 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetAttribute(const char* name, const char*
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstanceOwner::GetDOMElement(nsIDOMElement* *result)
|
||||
{
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
|
||||
*result = nsnull;
|
||||
|
||||
if (nsnull != mOwner)
|
||||
{
|
||||
nsIContent *cont;
|
||||
|
||||
mOwner->GetContent(&cont);
|
||||
|
||||
if (nsnull != cont)
|
||||
{
|
||||
rv = cont->QueryInterface(nsIDOMElement::GetIID(), (void **)result);
|
||||
NS_RELEASE(cont);
|
||||
}
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstanceOwner::GetInstance(nsIPluginInstance *&aInstance)
|
||||
{
|
||||
if (nsnull != mInstance)
|
||||
|
||||
@@ -41,6 +41,8 @@
|
||||
#include "nsplugindefs.h"
|
||||
#include "nsISupports.h"
|
||||
|
||||
class nsIDOMElement;
|
||||
|
||||
#define NS_IPLUGINTAGINFO_IID \
|
||||
{ /* 5f1ec1d0-019b-11d2-815b-006008119d7a */ \
|
||||
0x5f1ec1d0, \
|
||||
@@ -80,6 +82,18 @@ public:
|
||||
NS_IMETHOD
|
||||
GetAttribute(const char* name, const char* *result) = 0;
|
||||
|
||||
/**
|
||||
* Returns the DOM element corresponding to the tag which references
|
||||
* this plugin in the document.
|
||||
*
|
||||
* REMIND: do we need to expose as an nsISupports * to avoid
|
||||
* introducing runtime dependencies on XPCOM?
|
||||
*
|
||||
* @param result - resulting DOM element
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
GetDOMElement(nsIDOMElement* *result) = 0;
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -358,6 +358,28 @@ NS_IMETHODIMP nsPluginInstancePeerImpl::GetAttribute(const char* name, const cha
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstancePeerImpl::GetDOMElement(nsIDOMElement* *result)
|
||||
{
|
||||
if (mOwner == nsnull)
|
||||
{
|
||||
*result = nsnull;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsIPluginTagInfo *tinfo;
|
||||
nsresult rv;
|
||||
|
||||
rv = mOwner->QueryInterface(kIPluginTagInfoIID, (void **)&tinfo);
|
||||
|
||||
if (NS_OK == rv)
|
||||
{
|
||||
rv = tinfo->GetDOMElement(result);
|
||||
NS_RELEASE(tinfo);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstancePeerImpl::GetTagType(nsPluginTagType *result)
|
||||
{
|
||||
if (nsnull != mOwner)
|
||||
|
||||
@@ -98,6 +98,9 @@ public:
|
||||
NS_IMETHOD
|
||||
GetAttribute(const char* name, const char* *result);
|
||||
|
||||
NS_IMETHOD
|
||||
GetDOMElement(nsIDOMElement* *result);
|
||||
|
||||
//nsIPluginTagInfo2 interface
|
||||
|
||||
NS_IMETHOD
|
||||
|
||||
@@ -358,6 +358,28 @@ NS_IMETHODIMP nsPluginInstancePeerImpl::GetAttribute(const char* name, const cha
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstancePeerImpl::GetDOMElement(nsIDOMElement* *result)
|
||||
{
|
||||
if (mOwner == nsnull)
|
||||
{
|
||||
*result = nsnull;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsIPluginTagInfo *tinfo;
|
||||
nsresult rv;
|
||||
|
||||
rv = mOwner->QueryInterface(kIPluginTagInfoIID, (void **)&tinfo);
|
||||
|
||||
if (NS_OK == rv)
|
||||
{
|
||||
rv = tinfo->GetDOMElement(result);
|
||||
NS_RELEASE(tinfo);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstancePeerImpl::GetTagType(nsPluginTagType *result)
|
||||
{
|
||||
if (nsnull != mOwner)
|
||||
|
||||
@@ -98,6 +98,9 @@ public:
|
||||
NS_IMETHOD
|
||||
GetAttribute(const char* name, const char* *result);
|
||||
|
||||
NS_IMETHOD
|
||||
GetDOMElement(nsIDOMElement* *result);
|
||||
|
||||
//nsIPluginTagInfo2 interface
|
||||
|
||||
NS_IMETHOD
|
||||
|
||||
@@ -41,6 +41,8 @@
|
||||
#include "nsplugindefs.h"
|
||||
#include "nsISupports.h"
|
||||
|
||||
class nsIDOMElement;
|
||||
|
||||
#define NS_IPLUGINTAGINFO_IID \
|
||||
{ /* 5f1ec1d0-019b-11d2-815b-006008119d7a */ \
|
||||
0x5f1ec1d0, \
|
||||
@@ -80,6 +82,18 @@ public:
|
||||
NS_IMETHOD
|
||||
GetAttribute(const char* name, const char* *result) = 0;
|
||||
|
||||
/**
|
||||
* Returns the DOM element corresponding to the tag which references
|
||||
* this plugin in the document.
|
||||
*
|
||||
* REMIND: do we need to expose as an nsISupports * to avoid
|
||||
* introducing runtime dependencies on XPCOM?
|
||||
*
|
||||
* @param result - resulting DOM element
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
GetDOMElement(nsIDOMElement* *result) = 0;
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user