Bug 857884 - Use dom::EventTarget more in content/ and dom/ Part 4 r=Ms2ger

This commit is contained in:
David Zbarsky 2013-04-11 12:24:47 -04:00
parent 9b3220a8ef
commit 899ae8e46f
13 changed files with 63 additions and 102 deletions

View File

@ -631,7 +631,7 @@ public:
mWindow = do_GetWeakReference(aWindow);
mDocument = do_GetWeakReference(aDocument);
nsCOMPtr<nsIDOMEventTarget> target = do_QueryInterface(aDocument);
nsCOMPtr<EventTarget> target = do_QueryInterface(aDocument);
NS_NAMED_LITERAL_STRING(visibilitychange, "visibilitychange");
target->AddSystemEventListener(visibilitychange,
this, /* listener */
@ -660,16 +660,10 @@ StaticRefPtr<VibrateWindowListener> gVibrateWindowListener;
NS_IMETHODIMP
VibrateWindowListener::HandleEvent(nsIDOMEvent* aEvent)
{
nsCOMPtr<nsIDOMEventTarget> target;
aEvent->GetTarget(getter_AddRefs(target));
nsCOMPtr<nsIDOMDocument> doc = do_QueryInterface(target);
nsCOMPtr<nsIDocument> doc =
do_QueryInterface(aEvent->InternalDOMEvent()->GetTarget());
bool hidden = true;
if (doc) {
doc->GetHidden(&hidden);
}
if (hidden) {
if (!doc || doc->Hidden()) {
// It's important that we call CancelVibrate(), not Vibrate() with an
// empty list, because Vibrate() will fail if we're no longer focused, but
// CancelVibrate() will succeed, so long as nobody else has started a new
@ -687,7 +681,7 @@ VibrateWindowListener::HandleEvent(nsIDOMEvent* aEvent)
void
VibrateWindowListener::RemoveListener()
{
nsCOMPtr<nsIDOMEventTarget> target = do_QueryReferent(mDocument);
nsCOMPtr<EventTarget> target = do_QueryReferent(mDocument);
if (!target) {
return;
}

View File

@ -7767,9 +7767,8 @@ nsEventListenerThisTranslator::TranslateThis(nsISupports *aInitialThis,
nsCOMPtr<nsIDOMEvent> event(do_QueryInterface(aInitialThis));
NS_ENSURE_TRUE(event, NS_ERROR_UNEXPECTED);
nsCOMPtr<nsIDOMEventTarget> target;
event->GetCurrentTarget(getter_AddRefs(target));
target.forget(_retval);
nsCOMPtr<EventTarget> target = event->InternalDOMEvent()->GetTarget();
*_retval = target.forget().get();
return NS_OK;
}

View File

@ -104,7 +104,7 @@ struct nsDelayedBlurOrFocusEvent
nsDelayedBlurOrFocusEvent(uint32_t aType,
nsIPresShell* aPresShell,
nsIDocument* aDocument,
nsIDOMEventTarget* aTarget)
EventTarget* aTarget)
: mType(aType),
mPresShell(aPresShell),
mDocument(aDocument),
@ -119,7 +119,7 @@ struct nsDelayedBlurOrFocusEvent
uint32_t mType;
nsCOMPtr<nsIPresShell> mPresShell;
nsCOMPtr<nsIDocument> mDocument;
nsCOMPtr<nsIDOMEventTarget> mTarget;
nsCOMPtr<EventTarget> mTarget;
};
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsFocusManager)
@ -999,7 +999,7 @@ nsFocusManager::FireDelayedEvents(nsIDocument* aDocument)
if (mDelayedBlurFocusEvents[i].mDocument == aDocument &&
!aDocument->EventHandlingSuppressed()) {
uint32_t type = mDelayedBlurFocusEvents[i].mType;
nsCOMPtr<nsIDOMEventTarget> target = mDelayedBlurFocusEvents[i].mTarget;
nsCOMPtr<EventTarget> target = mDelayedBlurFocusEvents[i].mTarget;
nsCOMPtr<nsIPresShell> presShell = mDelayedBlurFocusEvents[i].mPresShell;
mDelayedBlurFocusEvents.RemoveElementAt(i);
SendFocusOrBlurEvent(type, presShell, aDocument, target, 0, false);
@ -1881,7 +1881,7 @@ nsFocusManager::SendFocusOrBlurEvent(uint32_t aType,
NS_ASSERTION(aType == NS_FOCUS_CONTENT || aType == NS_BLUR_CONTENT,
"Wrong event type for SendFocusOrBlurEvent");
nsCOMPtr<nsIDOMEventTarget> eventTarget = do_QueryInterface(aTarget);
nsCOMPtr<EventTarget> eventTarget = do_QueryInterface(aTarget);
// for focus events, if this event was from a mouse or key and event
// handling on the document is suppressed, queue the event and fire it

View File

@ -6182,7 +6182,7 @@ nsGlobalWindow::FirePopupBlockedEvent(nsIDOMDocument* aDoc,
aPopupWindowFeatures);
event->SetTrusted(true);
nsCOMPtr<nsIDOMEventTarget> targ(do_QueryInterface(aDoc));
nsCOMPtr<EventTarget> targ = do_QueryInterface(aDoc);
bool defaultActionEnabled;
targ->DispatchEvent(event, &defaultActionEnabled);
}
@ -8015,7 +8015,7 @@ nsGlobalWindow::GetListenerManager(bool aCreateIfNotFound)
if (!mListenerManager && aCreateIfNotFound) {
mListenerManager =
new nsEventListenerManager(static_cast<nsIDOMEventTarget*>(this));
new nsEventListenerManager(static_cast<EventTarget*>(this));
}
return mListenerManager;
@ -8628,7 +8628,7 @@ nsGlobalWindow::DispatchSyncPopState()
domEvent->SetTrusted(true);
nsCOMPtr<nsIDOMEventTarget> outerWindow =
nsCOMPtr<EventTarget> outerWindow =
do_QueryInterface(GetOuterWindow());
NS_ENSURE_TRUE(outerWindow, NS_ERROR_UNEXPECTED);

View File

@ -71,7 +71,7 @@ nsScreen::Reset()
hal::UnlockScreenOrientation();
if (mEventListener) {
nsCOMPtr<nsIDOMEventTarget> target = do_QueryInterface(GetOwner());
nsCOMPtr<EventTarget> target = do_QueryInterface(GetOwner());
if (target) {
target->RemoveSystemEventListener(NS_LITERAL_STRING("mozfullscreenchange"),
mEventListener, /* usecapture */ true);
@ -368,7 +368,7 @@ nsScreen::MozLockOrientation(const Sequence<nsString>& aOrientations,
// and when we will have to unlock the screen.
// This needs to be done before LockScreenOrientation call to make sure
// the locking can be unlocked.
nsCOMPtr<nsIDOMEventTarget> target = do_QueryInterface(GetOwner());
nsCOMPtr<EventTarget> target = do_QueryInterface(GetOwner());
if (!target) {
return false;
}
@ -426,8 +426,7 @@ nsScreen::FullScreenEventListener::HandleEvent(nsIDOMEvent* aEvent)
MOZ_ASSERT(eventType.EqualsLiteral("mozfullscreenchange"));
#endif
nsCOMPtr<nsIDOMEventTarget> target;
aEvent->GetCurrentTarget(getter_AddRefs(target));
nsCOMPtr<EventTarget> target = aEvent->InternalDOMEvent()->GetCurrentTarget();
// We have to make sure that the event we got is the event sent when
// fullscreen is disabled because we could get one when fullscreen

View File

@ -15,13 +15,14 @@
#include "IDBTransaction.h"
USING_INDEXEDDB_NAMESPACE
using namespace mozilla::dom;
namespace {
class EventFiringRunnable : public nsRunnable
{
public:
EventFiringRunnable(nsIDOMEventTarget* aTarget,
EventFiringRunnable(EventTarget* aTarget,
nsIDOMEvent* aEvent)
: mTarget(aTarget), mEvent(aEvent)
{ }
@ -32,7 +33,7 @@ public:
}
private:
nsCOMPtr<nsIDOMEventTarget> mTarget;
nsCOMPtr<EventTarget> mTarget;
nsCOMPtr<nsIDOMEvent> mEvent;
};

View File

@ -191,9 +191,8 @@ IndexedDatabaseManager::FireWindowOnError(nsPIDOMWindow* aOwner,
return NS_OK;
}
nsCOMPtr<nsIDOMEventTarget> eventTarget;
rv = aVisitor.mDOMEvent->GetTarget(getter_AddRefs(eventTarget));
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<EventTarget> eventTarget =
aVisitor.mDOMEvent->InternalDOMEvent()->GetTarget();
nsCOMPtr<nsIIDBRequest> strongRequest = do_QueryInterface(eventTarget);
IDBRequest* request = static_cast<IDBRequest*>(strongRequest.get());

View File

@ -293,9 +293,7 @@ IndexedDBDatabaseParent::HandleEvent(nsIDOMEvent* aEvent)
nsresult rv = aEvent->GetType(type);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIDOMEventTarget> target;
rv = aEvent->GetTarget(getter_AddRefs(target));
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<EventTarget> target = aEvent->InternalDOMEvent()->GetTarget();
if (mDatabase &&
SameCOMIdentity(target, NS_ISUPPORTS_CAST(nsIDOMEventTarget*,
@ -715,14 +713,9 @@ IndexedDBTransactionParent::HandleEvent(nsIDOMEvent* aEvent)
else if (type.EqualsLiteral(ABORT_EVT_STR)) {
#ifdef DEBUG
{
nsCOMPtr<nsIDOMEventTarget> target;
if (NS_FAILED(aEvent->GetTarget(getter_AddRefs(target)))) {
NS_WARNING("Failed to get target!");
}
else {
MOZ_ASSERT(SameCOMIdentity(target, NS_ISUPPORTS_CAST(nsIDOMEventTarget*,
mTransaction)));
}
nsCOMPtr<EventTarget> target = aEvent->InternalDOMEvent()->GetTarget();
MOZ_ASSERT(SameCOMIdentity(target, NS_ISUPPORTS_CAST(nsIDOMEventTarget*,
mTransaction)));
}
#endif
params = AbortResult(mTransaction->GetAbortCode());

View File

@ -348,7 +348,7 @@ ProcessPriorityManager::OnContentDocumentGlobalCreated(
return;
}
nsCOMPtr<nsIDOMEventTarget> target = do_QueryInterface(innerWindow);
nsCOMPtr<EventTarget> target = do_QueryInterface(innerWindow);
NS_ENSURE_TRUE_VOID(target);
nsWeakPtr weakWin = do_GetWeakReference(innerWindow);

View File

@ -1910,11 +1910,10 @@ TabChild::RecvActivateFrameEvent(const nsString& aType, const bool& capture)
{
nsCOMPtr<nsPIDOMWindow> window = do_GetInterface(mWebNav);
NS_ENSURE_TRUE(window, true);
nsCOMPtr<nsIDOMEventTarget> chromeHandler =
nsCOMPtr<EventTarget> chromeHandler =
do_QueryInterface(window->GetChromeEventHandler());
NS_ENSURE_TRUE(chromeHandler, true);
nsRefPtr<ContentListener> listener = new ContentListener(this);
NS_ENSURE_TRUE(listener, true);
chromeHandler->AddEventListener(aType, listener, capture);
return true;
}
@ -2048,13 +2047,11 @@ TabChild::InitTabChildGlobal(FrameScriptLoading aScriptLoading)
if (!mCx && !mTabChildGlobal) {
nsCOMPtr<nsPIDOMWindow> window = do_GetInterface(mWebNav);
NS_ENSURE_TRUE(window, false);
nsCOMPtr<nsIDOMEventTarget> chromeHandler =
nsCOMPtr<EventTarget> chromeHandler =
do_QueryInterface(window->GetChromeEventHandler());
NS_ENSURE_TRUE(chromeHandler, false);
nsRefPtr<TabChildGlobal> scope = new TabChildGlobal(this);
NS_ENSURE_TRUE(scope, false);
mTabChildGlobal = scope;
nsISupports* scopeSupports = NS_ISUPPORTS_CAST(nsIDOMEventTarget*, scope);

View File

@ -101,15 +101,14 @@ using namespace mozilla::layers;
class nsPluginDOMContextMenuListener : public nsIDOMEventListener
{
public:
nsPluginDOMContextMenuListener();
nsPluginDOMContextMenuListener(nsIContent* aContent);
virtual ~nsPluginDOMContextMenuListener();
NS_DECL_ISUPPORTS
NS_DECL_NSIDOMEVENTLISTENER
nsresult Init(nsIContent* aContent);
nsresult Destroy(nsIContent* aContent);
void Destroy(nsIContent* aContent);
nsEventStatus ProcessEvent(const nsGUIEvent& anEvent)
{
return nsEventStatus_eConsumeNoDefault;
@ -2544,7 +2543,7 @@ nsPluginInstanceOwner::Destroy()
#ifdef XP_MACOSX
RemoveFromCARefreshTimer();
if (mColorProfile)
::CGColorSpaceRelease(mColorProfile);
::CGColorSpaceRelease(mColorProfile);
#endif
// unregister context menu listener
@ -2971,10 +2970,7 @@ nsresult nsPluginInstanceOwner::Init(nsIContent* aContent)
}
// register context menu listener
mCXMenuListener = new nsPluginDOMContextMenuListener();
if (mCXMenuListener) {
mCXMenuListener->Init(aContent);
}
mCXMenuListener = new nsPluginDOMContextMenuListener(aContent);
mContent->AddEventListener(NS_LITERAL_STRING("focus"), this, false,
false);
@ -3456,8 +3452,9 @@ already_AddRefed<nsIURI> nsPluginInstanceOwner::GetBaseURI() const
// nsPluginDOMContextMenuListener class implementation
nsPluginDOMContextMenuListener::nsPluginDOMContextMenuListener()
nsPluginDOMContextMenuListener::nsPluginDOMContextMenuListener(nsIContent* aContent)
{
aContent->AddEventListener(NS_LITERAL_STRING("contextmenu"), this, true);
}
nsPluginDOMContextMenuListener::~nsPluginDOMContextMenuListener()
@ -3471,28 +3468,12 @@ NS_IMETHODIMP
nsPluginDOMContextMenuListener::HandleEvent(nsIDOMEvent* aEvent)
{
aEvent->PreventDefault(); // consume event
return NS_OK;
}
nsresult nsPluginDOMContextMenuListener::Init(nsIContent* aContent)
{
nsCOMPtr<nsIDOMEventTarget> receiver(do_QueryInterface(aContent));
if (receiver) {
receiver->AddEventListener(NS_LITERAL_STRING("contextmenu"), this, true);
return NS_OK;
}
return NS_ERROR_NO_INTERFACE;
}
nsresult nsPluginDOMContextMenuListener::Destroy(nsIContent* aContent)
void nsPluginDOMContextMenuListener::Destroy(nsIContent* aContent)
{
// Unregister context menu listener
nsCOMPtr<nsIDOMEventTarget> receiver(do_QueryInterface(aContent));
if (receiver) {
receiver->RemoveEventListener(NS_LITERAL_STRING("contextmenu"), this, true);
}
return NS_OK;
aContent->RemoveEventListener(NS_LITERAL_STRING("contextmenu"), this, true);
}

View File

@ -69,9 +69,9 @@ WakeLock::Init(const nsAString &aTopic, nsIDOMWindow *aWindow)
* is always considered invisible.
*/
if (window) {
nsCOMPtr<nsIDOMDocument> domDoc = window->GetExtantDocument();
NS_ENSURE_STATE(domDoc);
domDoc->GetHidden(&mHidden);
nsCOMPtr<nsIDocument> doc = window->GetExtantDoc();
NS_ENSURE_STATE(doc);
mHidden = doc->Hidden();
}
AttachEventListener();
@ -168,17 +168,16 @@ void
WakeLock::AttachEventListener()
{
nsCOMPtr<nsPIDOMWindow> window = do_QueryReferent(mWindow);
if (window) {
nsCOMPtr<nsIDOMDocument> domDoc = window->GetExtantDocument();
if (domDoc) {
nsCOMPtr<nsIDOMEventTarget> target = do_QueryInterface(domDoc);
target->AddSystemEventListener(NS_LITERAL_STRING("visibilitychange"),
this,
/* useCapture = */ true,
/* wantsUntrusted = */ false);
target = do_QueryInterface(window);
if (window) {
nsCOMPtr<nsIDocument> doc = window->GetExtantDoc();
if (doc) {
doc->AddSystemEventListener(NS_LITERAL_STRING("visibilitychange"),
this,
/* useCapture = */ true,
/* wantsUntrusted = */ false);
nsCOMPtr<EventTarget> target = do_QueryInterface(window);
target->AddSystemEventListener(NS_LITERAL_STRING("pagehide"),
this,
/* useCapture = */ true,
@ -197,13 +196,12 @@ WakeLock::DetachEventListener()
nsCOMPtr<nsPIDOMWindow> window = do_QueryReferent(mWindow);
if (window) {
nsCOMPtr<nsIDOMDocument> domDoc = window->GetExtantDocument();
if (domDoc) {
nsCOMPtr<nsIDOMEventTarget> target = do_QueryInterface(domDoc);
target->RemoveSystemEventListener(NS_LITERAL_STRING("visibilitychange"),
this,
/* useCapture = */ true);
target = do_QueryInterface(window);
nsCOMPtr<nsIDocument> doc = window->GetExtantDoc();
if (doc) {
doc->RemoveSystemEventListener(NS_LITERAL_STRING("visibilitychange"),
this,
/* useCapture = */ true);
nsCOMPtr<EventTarget> target = do_QueryInterface(window);
target->RemoveSystemEventListener(NS_LITERAL_STRING("pagehide"),
this,
/* useCapture = */ true);
@ -244,12 +242,12 @@ WakeLock::HandleEvent(nsIDOMEvent *aEvent)
aEvent->GetType(type);
if (type.EqualsLiteral("visibilitychange")) {
nsCOMPtr<nsIDOMEventTarget> target;
aEvent->GetTarget(getter_AddRefs(target));
nsCOMPtr<nsIDOMDocument> domDoc = do_QueryInterface(target);
NS_ENSURE_STATE(domDoc);
nsCOMPtr<nsIDocument> doc =
do_QueryInterface(aEvent->InternalDOMEvent()->GetTarget());
NS_ENSURE_STATE(doc);
bool oldHidden = mHidden;
domDoc->GetHidden(&mHidden);
mHidden = doc->Hidden();
if (mLocked && oldHidden != mHidden) {
hal::ModifyWakeLock(mTopic,

View File

@ -164,7 +164,7 @@ nsJSEventListener::IsBlackForCC()
nsresult
nsJSEventListener::HandleEvent(nsIDOMEvent* aEvent)
{
nsCOMPtr<nsIDOMEventTarget> target = do_QueryInterface(mTarget);
nsCOMPtr<EventTarget> target = do_QueryInterface(mTarget);
if (!target || !mHandler.HasEventHandler())
return NS_ERROR_FAILURE;