nsEventTargetChainItem* EventTargetChainItemForChromeTarget(nsINode* aNode, nsEventTargetChainItem* aChild = nullptr) { if (!aNode->IsInDoc()) { return nullptr; } nsPIDOMWindow* win = aNode->OwnerDoc()->GetInnerWindow(); EventTarget* piTarget = win ? win->GetParentTarget() : nullptr; NS_ENSURE_TRUE(piTarget, nullptr); nsEventTargetChainItem* etci = nsEventTargetChainItem::Create(piTarget->GetTargetForEventTargetChain(), aChild); NS_ENSURE_TRUE(etci, nullptr); if (!etci->IsValid()) { nsEventTargetChainItem::Destroy(etci); return nullptr; } return etci; }