NS_IMETHODIMP EventListenerService::RemoveListenerForAllEvents(nsIDOMEventTarget* aTarget, nsIDOMEventListener* aListener, bool aUseCapture, bool aSystemEventGroup) { NS_ENSURE_STATE(aTarget && aListener); nsCOMPtr<EventTarget> eventTarget = do_QueryInterface(aTarget); NS_ENSURE_TRUE(eventTarget, NS_ERROR_NO_INTERFACE); EventListenerManager* manager = eventTarget->GetExistingListenerManager(); if (manager) { manager->RemoveListenerForAllEvents(aListener, aUseCapture, aSystemEventGroup); } return NS_OK; }
NS_IMETHODIMP EventListenerService::RemoveListenerForAllEvents(EventTarget* aTarget, JS::Handle<JS::Value> aListener, bool aUseCapture, bool aSystemEventGroup, JSContext* aCx) { NS_ENSURE_STATE(aTarget); RefPtr<EventListener> listener = ToEventListener(aCx, aListener); if (!listener) { return NS_ERROR_UNEXPECTED; } EventListenerManager* manager = aTarget->GetExistingListenerManager(); if (manager) { manager->RemoveListenerForAllEvents(listener, aUseCapture, aSystemEventGroup); } return NS_OK; }