bool nsCoreUtils::HasClickListener(nsIContent *aContent) { NS_ENSURE_TRUE(aContent, false); EventListenerManager* listenerManager = aContent->GetExistingListenerManager(); return listenerManager && (listenerManager->HasListenersFor(nsGkAtoms::onclick) || listenerManager->HasListenersFor(nsGkAtoms::onmousedown) || listenerManager->HasListenersFor(nsGkAtoms::onmouseup)); }
NS_IMETHODIMP EventListenerService::HasListenersFor(EventTarget* aEventTarget, const nsAString& aType, bool* aRetVal) { NS_ENSURE_TRUE(aEventTarget, NS_ERROR_UNEXPECTED); EventListenerManager* elm = aEventTarget->GetExistingListenerManager(); *aRetVal = elm && elm->HasListenersFor(aType); return NS_OK; }
static bool HasTouchListener(nsIContent* aContent) { EventListenerManager* elm = aContent->GetExistingListenerManager(); if (!elm) { return false; } if (!gTouchEventsRegistered) { Preferences::AddIntVarCache(&gTouchEventsEnabled, "dom.w3c_touch_events.enabled", gTouchEventsEnabled); gTouchEventsRegistered = true; } if (!gTouchEventsEnabled) { return false; } return elm->HasListenersFor(nsGkAtoms::ontouchstart) || elm->HasListenersFor(nsGkAtoms::ontouchend); }
NS_IMETHODIMP EventListenerService::HasListenersFor(nsIDOMEventTarget* aEventTarget, const nsAString& aType, bool* aRetVal) { nsCOMPtr<EventTarget> eventTarget = do_QueryInterface(aEventTarget); NS_ENSURE_TRUE(eventTarget, NS_ERROR_NO_INTERFACE); EventListenerManager* elm = eventTarget->GetExistingListenerManager(); *aRetVal = elm && elm->HasListenersFor(aType); return NS_OK; }