NS_IMETHODIMP nsDocShellTreeOwner::RemoveChromeListeners() { if (mChromeTooltipListener) { mChromeTooltipListener->RemoveChromeListeners(); mChromeTooltipListener = nullptr; } if (mChromeContextMenuListener) { mChromeContextMenuListener->RemoveChromeListeners(); mChromeContextMenuListener = nullptr; } nsCOMPtr<EventTarget> piTarget; GetDOMEventTarget(mWebBrowser, getter_AddRefs(piTarget)); if (!piTarget) { return NS_OK; } EventListenerManager* elmP = piTarget->GetOrCreateListenerManager(); if (elmP) { elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("dragover"), TrustedEventsAtSystemGroupBubble()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("drop"), TrustedEventsAtSystemGroupBubble()); } return NS_OK; }
NS_IMETHODIMP EventListenerService::RemoveSystemEventListener(EventTarget *aTarget, const nsAString& aType, JS::Handle<JS::Value> aListener, bool aUseCapture, JSContext* aCx) { MOZ_ASSERT(aTarget, "Missing target"); NS_ENSURE_TRUE(aTarget, NS_ERROR_UNEXPECTED); RefPtr<EventListener> listener = ToEventListener(aCx, aListener); if (!listener) { return NS_ERROR_UNEXPECTED; } EventListenerManager* manager = aTarget->GetExistingListenerManager(); if (manager) { EventListenerFlags flags = aUseCapture ? TrustedEventsAtSystemGroupCapture() : TrustedEventsAtSystemGroupBubble(); manager->RemoveEventListenerByType(listener, aType, flags); } return NS_OK; }
nsresult HTMLEditor::EndMoving() { if (mPositioningShadow) { nsCOMPtr<nsIPresShell> ps = GetPresShell(); NS_ENSURE_TRUE(ps, NS_ERROR_NOT_INITIALIZED); DeleteRefToAnonymousNode(std::move(mPositioningShadow), ps); mPositioningShadow = nullptr; } EventTarget* eventTarget = GetDOMEventTarget(); if (eventTarget && mMouseMotionListenerP) { EventListenerManager* eventListenerManager = eventTarget->GetOrCreateListenerManager(); eventListenerManager->RemoveEventListenerByType( mMouseMotionListenerP, NS_LITERAL_STRING("mousemove"), TrustedEventsAtSystemGroupBubble()); } mMouseMotionListenerP = nullptr; mGrabberClicked = false; mIsMoving = false; RefPtr<Selection> selection = GetSelection(); if (!selection) { return NS_ERROR_NOT_INITIALIZED; } nsresult rv = RefereshEditingUI(*selection); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } return NS_OK; }
void DocManager::RemoveListeners(nsIDocument* aDocument) { nsPIDOMWindow* window = aDocument->GetWindow(); if (!window) return; EventTarget* target = window->GetChromeEventHandler(); if (!target) return; EventListenerManager* elm = target->GetOrCreateListenerManager(); elm->RemoveEventListenerByType(this, NS_LITERAL_STRING("pagehide"), TrustedEventsAtCapture()); elm->RemoveEventListenerByType(this, NS_LITERAL_STRING("DOMContentLoaded"), TrustedEventsAtCapture()); }
void EventTarget::RemoveSystemEventListener(const nsAString& aType, nsIDOMEventListener *aListener, bool aUseCapture) { EventListenerManager* elm = GetExistingListenerManager(); if (elm) { EventListenerFlags flags; flags.mInSystemGroup = true; flags.mCapture = aUseCapture; elm->RemoveEventListenerByType(aListener, aType, flags); } }
void nsSMILTimeValueSpec::UnregisterEventListener(Element* aTarget) { if (!aTarget || !mEventListener) { return; } EventListenerManager* elm = aTarget->GetOrCreateListenerManager(); if (!elm) { return; } elm->RemoveEventListenerByType(mEventListener, nsDependentAtomString(mParams.mEventSymbol), AllEventsAtSystemGroupBubble()); }
NS_IMETHODIMP EventListenerService::RemoveSystemEventListener(nsIDOMEventTarget *aTarget, const nsAString& aType, nsIDOMEventListener* aListener, bool aUseCapture) { NS_PRECONDITION(aTarget, "Missing target"); NS_PRECONDITION(aListener, "Missing listener"); nsCOMPtr<EventTarget> eventTarget = do_QueryInterface(aTarget); NS_ENSURE_TRUE(eventTarget, NS_ERROR_NO_INTERFACE); EventListenerManager* manager = eventTarget->GetExistingListenerManager(); if (manager) { EventListenerFlags flags = aUseCapture ? TrustedEventsAtSystemGroupCapture() : TrustedEventsAtSystemGroupBubble(); manager->RemoveEventListenerByType(aListener, aType, flags); } return NS_OK; }
// // DetachGlobalKeyHandler // // Removes a key handler added by DeatchGlobalKeyHandler. // nsresult nsXBLService::DetachGlobalKeyHandler(EventTarget* aTarget) { nsCOMPtr<EventTarget> piTarget = aTarget; nsCOMPtr<nsIContent> contentNode(do_QueryInterface(aTarget)); if (!contentNode) // detaching is only supported for content nodes return NS_ERROR_FAILURE; // Only attach if we're really in a document nsCOMPtr<nsIDocument> doc = contentNode->GetCurrentDoc(); if (doc) piTarget = do_QueryInterface(doc); EventListenerManager* manager = piTarget->GetOrCreateListenerManager(); if (!piTarget || !manager) return NS_ERROR_FAILURE; nsIDOMEventListener* handler = static_cast<nsIDOMEventListener*>(contentNode->GetProperty(nsGkAtoms::listener)); if (!handler) return NS_ERROR_FAILURE; manager->RemoveEventListenerByType(handler, NS_LITERAL_STRING("keydown"), TrustedEventsAtSystemGroupBubble()); manager->RemoveEventListenerByType(handler, NS_LITERAL_STRING("keyup"), TrustedEventsAtSystemGroupBubble()); manager->RemoveEventListenerByType(handler, NS_LITERAL_STRING("keypress"), TrustedEventsAtSystemGroupBubble()); manager->RemoveEventListenerByType(handler, NS_LITERAL_STRING("keydown"), TrustedEventsAtSystemGroupCapture()); manager->RemoveEventListenerByType(handler, NS_LITERAL_STRING("keyup"), TrustedEventsAtSystemGroupCapture()); manager->RemoveEventListenerByType(handler, NS_LITERAL_STRING("keypress"), TrustedEventsAtSystemGroupCapture()); contentNode->DeleteProperty(nsGkAtoms::listener); return NS_OK; }
void nsEditorEventListener::UninstallFromEditor() { nsCOMPtr<EventTarget> piTarget = mEditor->GetDOMEventTarget(); if (!piTarget) { return; } EventListenerManager* elmP = piTarget->GetOrCreateListenerManager(); if (!elmP) { return; } #ifdef HANDLE_NATIVE_TEXT_DIRECTION_SWITCH elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("keydown"), TrustedEventsAtSystemGroupBubble()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("keyup"), TrustedEventsAtSystemGroupBubble()); #endif elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("keypress"), TrustedEventsAtSystemGroupBubble()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("dragenter"), TrustedEventsAtSystemGroupBubble()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("dragover"), TrustedEventsAtSystemGroupBubble()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("dragexit"), TrustedEventsAtSystemGroupBubble()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("drop"), TrustedEventsAtSystemGroupBubble()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("mousedown"), TrustedEventsAtCapture()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("mouseup"), TrustedEventsAtCapture()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("click"), TrustedEventsAtCapture()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("blur"), TrustedEventsAtCapture()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("focus"), TrustedEventsAtCapture()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("text"), TrustedEventsAtSystemGroupBubble()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("compositionstart"), TrustedEventsAtSystemGroupBubble()); elmP->RemoveEventListenerByType(this, NS_LITERAL_STRING("compositionend"), TrustedEventsAtSystemGroupBubble()); }