Bug 363089, Remove nsIDOMEventReceiver (this time passes mochitest), r+sr=jst

This commit is contained in:
2007-05-14 02:11:38 -07:00
parent 1c8504665c
commit 70e37b2ff0
123 changed files with 653 additions and 733 deletions

View File

@@ -71,7 +71,7 @@
#include "nsIDOMEvent.h"
#include "nsIDOMMouseEvent.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMEventReceiver.h"
#include "nsIDOMEventTarget.h"
#include "nsIDOMNamedNodeMap.h"
#include "nsIDOMHTMLInputElement.h"
#include "nsIDOMHTMLTextAreaElement.h"
@@ -98,15 +98,16 @@
#include "nsPresContext.h"
#include "nsIViewManager.h"
#include "nsIView.h"
#include "nsPIDOMEventTarget.h"
//
// GetEventReceiver
//
// A helper routine that navigates the tricky path from a |nsWebBrowser| to
// a |nsIDOMEventReceiver| via the window root and chrome event handler.
// a |nsPIDOMEventTarget| via the window root and chrome event handler.
//
static nsresult
GetEventReceiver ( nsWebBrowser* inBrowser, nsIDOMEventReceiver** outEventRcvr )
GetPIDOMEventTarget( nsWebBrowser* inBrowser, nsPIDOMEventTarget** aTarget)
{
nsCOMPtr<nsIDOMWindow> domWindow;
inBrowser->GetContentDOMWindow(getter_AddRefs(domWindow));
@@ -116,11 +117,11 @@ GetEventReceiver ( nsWebBrowser* inBrowser, nsIDOMEventReceiver** outEventRcvr )
NS_ENSURE_TRUE(domWindowPrivate, NS_ERROR_FAILURE);
nsPIDOMWindow *rootWindow = domWindowPrivate->GetPrivateRoot();
NS_ENSURE_TRUE(rootWindow, NS_ERROR_FAILURE);
nsCOMPtr<nsIDOMEventReceiver> rcvr =
nsCOMPtr<nsPIDOMEventTarget> piTarget =
do_QueryInterface(rootWindow->GetChromeEventHandler());
NS_ENSURE_TRUE(rcvr, NS_ERROR_FAILURE);
*outEventRcvr = rcvr;
NS_IF_ADDREF(*outEventRcvr);
NS_ENSURE_TRUE(piTarget, NS_ERROR_FAILURE);
*aTarget = piTarget;
NS_IF_ADDREF(*aTarget);
return NS_OK;
}
@@ -905,10 +906,10 @@ nsDocShellTreeOwner::AddChromeListeners()
mChromeDragHandler = do_CreateInstance("@mozilla.org:/content/content-area-dragdrop;1", &rv);
NS_ASSERTION(mChromeDragHandler, "Couldn't create the chrome drag handler");
if ( mChromeDragHandler ) {
nsCOMPtr<nsIDOMEventReceiver> rcvr;
GetEventReceiver(mWebBrowser, getter_AddRefs(rcvr));
nsCOMPtr<nsIDOMEventTarget> rcvrTarget(do_QueryInterface(rcvr));
mChromeDragHandler->HookupTo(rcvrTarget, NS_STATIC_CAST(nsIWebNavigation*, mWebBrowser));
nsCOMPtr<nsPIDOMEventTarget> piTarget;
GetPIDOMEventTarget(mWebBrowser, getter_AddRefs(piTarget));
nsCOMPtr<nsIDOMEventTarget> target(do_QueryInterface(piTarget));
mChromeDragHandler->HookupTo(target, NS_STATIC_CAST(nsIWebNavigation*, mWebBrowser));
}
}
@@ -1115,8 +1116,8 @@ ChromeTooltipListener::~ChromeTooltipListener()
NS_IMETHODIMP
ChromeTooltipListener::AddChromeListeners()
{
if ( !mEventReceiver )
GetEventReceiver(mWebBrowser, getter_AddRefs(mEventReceiver));
if (!mEventTarget)
GetPIDOMEventTarget(mWebBrowser, getter_AddRefs(mEventTarget));
// Register the appropriate events for tooltips, but only if
// the embedding chrome cares.
@@ -1143,11 +1144,11 @@ ChromeTooltipListener::AddChromeListeners()
NS_IMETHODIMP
ChromeTooltipListener::AddTooltipListener()
{
if (mEventReceiver) {
if (mEventTarget) {
nsIDOMMouseListener *pListener = NS_STATIC_CAST(nsIDOMMouseListener *, this);
nsresult rv = mEventReceiver->AddEventListenerByIID(pListener, NS_GET_IID(nsIDOMMouseListener));
nsresult rv2 = mEventReceiver->AddEventListenerByIID(pListener, NS_GET_IID(nsIDOMMouseMotionListener));
nsresult rv3 = mEventReceiver->AddEventListenerByIID(pListener, NS_GET_IID(nsIDOMKeyListener));
nsresult rv = mEventTarget->AddEventListenerByIID(pListener, NS_GET_IID(nsIDOMMouseListener));
nsresult rv2 = mEventTarget->AddEventListenerByIID(pListener, NS_GET_IID(nsIDOMMouseMotionListener));
nsresult rv3 = mEventTarget->AddEventListenerByIID(pListener, NS_GET_IID(nsIDOMKeyListener));
// if all 3 succeed, we're a go!
if (NS_SUCCEEDED(rv) && NS_SUCCEEDED(rv2) && NS_SUCCEEDED(rv3))
@@ -1171,7 +1172,7 @@ ChromeTooltipListener::RemoveChromeListeners ( )
if ( mTooltipListenerInstalled )
RemoveTooltipListener();
mEventReceiver = nsnull;
mEventTarget = nsnull;
// it really doesn't matter if these fail...
return NS_OK;
@@ -1188,11 +1189,11 @@ ChromeTooltipListener::RemoveChromeListeners ( )
NS_IMETHODIMP
ChromeTooltipListener::RemoveTooltipListener()
{
if (mEventReceiver) {
if (mEventTarget) {
nsIDOMMouseListener *pListener = NS_STATIC_CAST(nsIDOMMouseListener *, this);
nsresult rv = mEventReceiver->RemoveEventListenerByIID(pListener, NS_GET_IID(nsIDOMMouseListener));
nsresult rv2 = mEventReceiver->RemoveEventListenerByIID(pListener, NS_GET_IID(nsIDOMMouseMotionListener));
nsresult rv3 = mEventReceiver->RemoveEventListenerByIID(pListener, NS_GET_IID(nsIDOMKeyListener));
nsresult rv = mEventTarget->RemoveEventListenerByIID(pListener, NS_GET_IID(nsIDOMMouseListener));
nsresult rv2 = mEventTarget->RemoveEventListenerByIID(pListener, NS_GET_IID(nsIDOMMouseMotionListener));
nsresult rv3 = mEventTarget->RemoveEventListenerByIID(pListener, NS_GET_IID(nsIDOMKeyListener));
if (NS_SUCCEEDED(rv) && NS_SUCCEEDED(rv2) && NS_SUCCEEDED(rv3))
mTooltipListenerInstalled = PR_FALSE;
}
@@ -1568,9 +1569,9 @@ ChromeContextMenuListener::~ChromeContextMenuListener()
NS_IMETHODIMP
ChromeContextMenuListener::AddContextMenuListener()
{
if (mEventReceiver) {
if (mEventTarget) {
nsIDOMContextMenuListener *pListener = NS_STATIC_CAST(nsIDOMContextMenuListener *, this);
nsresult rv = mEventReceiver->AddEventListenerByIID(pListener, NS_GET_IID(nsIDOMContextMenuListener));
nsresult rv = mEventTarget->AddEventListenerByIID(pListener, NS_GET_IID(nsIDOMContextMenuListener));
if (NS_SUCCEEDED(rv))
mContextMenuListenerInstalled = PR_TRUE;
}
@@ -1587,9 +1588,9 @@ ChromeContextMenuListener::AddContextMenuListener()
NS_IMETHODIMP
ChromeContextMenuListener::RemoveContextMenuListener()
{
if (mEventReceiver) {
if (mEventTarget) {
nsIDOMContextMenuListener *pListener = NS_STATIC_CAST(nsIDOMContextMenuListener *, this);
nsresult rv = mEventReceiver->RemoveEventListenerByIID(pListener, NS_GET_IID(nsIDOMContextMenuListener));
nsresult rv = mEventTarget->RemoveEventListenerByIID(pListener, NS_GET_IID(nsIDOMContextMenuListener));
if (NS_SUCCEEDED(rv))
mContextMenuListenerInstalled = PR_FALSE;
}
@@ -1607,8 +1608,8 @@ ChromeContextMenuListener::RemoveContextMenuListener()
NS_IMETHODIMP
ChromeContextMenuListener::AddChromeListeners()
{
if ( !mEventReceiver )
GetEventReceiver(mWebBrowser, getter_AddRefs(mEventReceiver));
if (!mEventTarget)
GetPIDOMEventTarget(mWebBrowser, getter_AddRefs(mEventTarget));
// Register the appropriate events for context menus, but only if
// the embedding chrome cares.
@@ -1635,7 +1636,7 @@ ChromeContextMenuListener::RemoveChromeListeners()
if ( mContextMenuListenerInstalled )
RemoveContextMenuListener();
mEventReceiver = nsnull;
mEventTarget = nsnull;
// it really doesn't matter if these fail...
return NS_OK;