Bug 1299046: Take into account generated content in EventStateManager::PreHandleEvent. r?smaug
This patch adds a MOZ_ASSERT. I'll try to pass it through try, and otherwise
turn it into a warning, I guess.
MozReview-Commit-ID: 9KZS6dh3wzw
--- a/dom/events/EventStateManager.cpp
+++ b/dom/events/EventStateManager.cpp
@@ -521,18 +521,27 @@ EventStateManager::PreHandleEvent(nsPres
if (!aEvent) {
NS_ERROR("aEvent is null. This should never happen.");
return NS_ERROR_NULL_POINTER;
}
NS_WARN_IF_FALSE(!aTargetFrame ||
!aTargetFrame->GetContent() ||
aTargetFrame->GetContent() == aTargetContent ||
- aTargetFrame->GetContent()->GetFlattenedTreeParent() == aTargetContent,
+ aTargetFrame->GetContent()->GetFlattenedTreeParent() == aTargetContent ||
+ aTargetFrame->IsGeneratedContentFrame(),
"aTargetFrame should be related with aTargetContent");
+#if DEBUG
+ if (aTargetFrame && aTargetFrame->IsGeneratedContentFrame()) {
+ nsCOMPtr<nsIContent> targetContent;
+ aTargetFrame->GetContentForEvent(aEvent, getter_AddRefs(targetContent));
+ MOZ_ASSERT(aTargetContent == targetContent,
+ "Unexpected target for generated content frame!");
+ }
+#endif
mCurrentTarget = aTargetFrame;
mCurrentTargetContent = nullptr;
// Do not take account eMouseEnterIntoWidget/ExitFromWidget so that loading
// a page when user is not active doesn't change the state to active.
WidgetMouseEvent* mouseEvent = aEvent->AsMouseEvent();
if (aEvent->IsTrusted() &&