From 66f5f6f3d82726a97946693e46385e7e6acd6bbd Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Thu, 4 Apr 2013 12:29:59 -0400 Subject: [PATCH] Bug 847983 - Skip script text nodes for content events; r=masayuki --- content/events/src/nsContentEventHandler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/content/events/src/nsContentEventHandler.cpp b/content/events/src/nsContentEventHandler.cpp index de978925bf4..523b0e75453 100644 --- a/content/events/src/nsContentEventHandler.cpp +++ b/content/events/src/nsContentEventHandler.cpp @@ -230,6 +230,10 @@ static uint32_t CountNewlinesInNativeLength(nsIContent* aContent, nsContentEventHandler::GetNativeTextLength(nsIContent* aContent, uint32_t aMaxLength) { if (aContent->IsNodeOfType(nsINode::eTEXT)) { + // Skip text nodes without frames, e.g. inside script elements + if (!aContent->GetPrimaryFrame()) { + return 0; + } uint32_t textLengthDifference = #if defined(XP_MACOSX) // On Mac, the length of a native newline ("\r") is equal to the length of @@ -309,6 +313,10 @@ static nsresult GenerateFlatTextContent(nsRange* aRange, nsIContent* content = static_cast(node); if (content->IsNodeOfType(nsINode::eTEXT)) { + // Skip text nodes without frames, e.g. inside script elements + if (!content->GetPrimaryFrame()) { + continue; + } if (content == startNode) AppendSubString(aString, content, aRange->StartOffset(), content->TextLength() - aRange->StartOffset());