[Webkit-unassigned] [Bug 14533] New: Webkit hangs indefinitely when pasting large text into text field

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jul 5 14:12:42 PDT 2007


http://bugs.webkit.org/show_bug.cgi?id=14533

           Summary: Webkit hangs indefinitely when pasting large text into
                    text field
           Product: WebKit
           Version: 522+ (nightly)
          Platform: Macintosh
               URL: http://www.battle.net/forums/board.aspx?forumName=suppor
                    t
        OS/Version: Mac OS X 10.4
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: Text
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: mysticalos at windstream.net


If you attempt to paste a LOT of text, (such as a system profiler report saved
in RTF) into a text field on battle.net forums. Safari just goes into an
endless beachball.

Here is a sample from beachball.

Analysis of sampling pid 330 every 10.000000 milliseconds
Call graph:
    95 Thread_0f07
      95 0x4f1b0
        95 0x246c
          95 NSApplicationMain
            95 -[NSApplication run]
              95 0x16444
                95 -[NSApplication sendEvent:]
                  95 -[NSApplication _handleKeyEquivalent:]
                    95 -[NSMenu performKeyEquivalent:]
                      95 -[NSCarbonMenuImpl
performActionWithHighlightingForItemAtIndex:]
                        95 -[NSMenu performActionForItemAtIndex:]
                          95 0x1a020
                            95 -[NSApplication sendAction:to:from:]
                              95
WebCore::Editor::pasteAsPlainTextWithPasteboard(WebCore::Pasteboard*)
                                95
WebCore::Editor::replaceSelectionWithText(WebCore::String const&, bool, bool)
                                  95
WebCore::Editor::replaceSelectionWithFragment(WTF::PassRefPtr<WebCore::DocumentFragment>,
bool, bool, bool)
                                    95
WebCore::applyCommand(WTF::PassRefPtr<WebCore::EditCommand>)
                                      95 WebCore::EditCommand::apply()
                                        95
WebCore::ReplaceSelectionCommand::doApply()
                                          95
WebCore::ReplaceSelectionCommand::completeHTMLReplacement(WebCore::Position
const&)
                                            95
WebCore::CompositeEditCommand::applyStyle(WebCore::CSSStyleDeclaration*,
WebCore::Position const&, WebCore::Position const&, WebCore::EditAction)
                                              95
WebCore::CompositeEditCommand::applyCommandToComposite(WTF::PassRefPtr<WebCore::EditCommand>)
                                                95
WebCore::EditCommand::apply()
                                                  95
WebCore::ApplyStyleCommand::doApply()
                                                    95
WebCore::ApplyStyleCommand::applyBlockStyle(WebCore::CSSMutableStyleDeclaration*)
                                                      50
WebCore::VisiblePosition::next(bool) const
                                                        32
WebCore::nextVisuallyDistinctCandidate(WebCore::Position const&)
                                                          23
WebCore::Position::downstream() const
                                                            23
WebCore::Position::downstream() const
                                                          9
WebCore::Position::isCandidate() const
                                                            9
WebCore::Position::inRenderedText() const
                                                              9
WebCore::Position::inRenderedText() const
                                                        18
WebCore::VisiblePosition::init(WebCore::Position const&, WebCore::EAffinity)
                                                          18
WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&)
                                                            10
WebCore::Position::upstream() const
                                                              10
WebCore::Position::upstream() const
                                                            8
WebCore::Position::isCandidate() const
                                                              8
WebCore::Position::inRenderedText() const
                                                                4
WebCore::InlineTextBox::containsCaretOffset(int) const
                                                                  4
WebCore::InlineTextBox::containsCaretOffset(int) const
                                                                4
WebCore::Position::inRenderedText() const
                                                      29
WebCore::endOfParagraph(WebCore::VisiblePosition const&)
                                                        17
WebCore::VisiblePosition::VisiblePosition[in-charge](WebCore::Node*, int,
WebCore::EAffinity)
                                                          17
WebCore::VisiblePosition::init(WebCore::Position const&, WebCore::EAffinity)
                                                            17
WebCore::VisiblePosition::canonicalPosition(WebCore::Position const&)
                                                              9
WebCore::Position::upstream() const
                                                                9
WebCore::Position::upstream() const
                                                              8
WebCore::Position::isCandidate() const
                                                                7
WebCore::Position::inRenderedText() const
                                                                  5
WebCore::InlineTextBox::containsCaretOffset(int) const
                                                                    5
WebCore::InlineTextBox::containsCaretOffset(int) const
                                                                  2
WebCore::Position::inRenderedText() const
                                                                1
WebCore::RenderText::nextOffset(int) const
                                                                  1
WebCore::RenderText::nextOffset(int) const
                                                        12
WebCore::RenderText::caretMaxRenderedOffset() const
                                                          12
WebCore::RenderText::caretMaxRenderedOffset() const
                                                      14
WebCore::Position::downstream() const
                                                        14
WebCore::Position::downstream() const
                                                      2
WebCore::StyleChange::StyleChange[in-charge](WebCore::CSSStyleDeclaration*,
WebCore::Position const&, WebCore::StyleChange::ELegacyHTMLStyles)
                                                        1
WebCore::StyleChange::StyleChange[in-charge](WebCore::CSSStyleDeclaration*,
WebCore::Position const&, WebCore::StyleChange::ELegacyHTMLStyles)
                                                        1
WebCore::StyleChange::init(WTF::PassRefPtr<WebCore::CSSStyleDeclaration>,
WebCore::Position const&)
                                                          1
WebCore::StyleChange::currentlyHasStyle(WebCore::Position const&,
WebCore::CSSProperty const*)
                                                            1
WebCore::CSSPrimitiveValue::cssText() const
                                                              1
WebCore::String::number(double)
                                                                1
WebCore::String::format(char const*, ...)
                                                                  1
vsnprintf$LDBL128
                                                                    1
__vfprintf$LDBL128
                                                                      1
__vfprintf$LDBL128
    95 Thread_1003
      95 _pthread_body
        95 forkThreadForFunction
          95 -[AsyncDB _run:]
            95 -[NSConditionLock lockWhenCondition:]
              95 pthread_cond_wait
                95 semaphore_wait_signal_trap
                  95 semaphore_wait_signal_trap
    95 Thread_1103
      95 _pthread_body
        95 forkThreadForFunction
          95 +[NSURLConnection(NSURLConnectionInternal) _resourceLoadLoop:]
            95 CFRunLoopRunSpecific
              95 __CFRunLoopRun
                95 mach_msg
                  95 mach_msg_trap
                    95 mach_msg_trap
    95 Thread_1203
      95 _pthread_body
        95 forkThreadForFunction
          95 +[NSURLCache _diskCacheSyncLoop:]
            95 CFRunLoopRunSpecific
              95 __CFRunLoopRun
                95 mach_msg
                  95 mach_msg_trap
                    95 mach_msg_trap
    95 Thread_1303
      95 _pthread_body
        95 __CFSocketManager
          95 select
            95 select
    95 Thread_1403
      95 _pthread_body
        95 native_ShockwaveFlash_TCallFrame
          95 mach_msg
            95 mach_msg_trap
              95 mach_msg_trap

Total number in stack (recursive counted multiple, when >=5):
        5       _pthread_body

Sort by top of stack, same collapsed (when >= 5):
        mach_msg_trap        285
        select        95
        semaphore_wait_signal_trap        95
        WebCore::Position::downstream() const        37
        WebCore::Position::upstream() const        19
        WebCore::Position::inRenderedText() const        15
        WebCore::RenderText::caretMaxRenderedOffset() const        12
        WebCore::InlineTextBox::containsCaretOffset(int) const        9
Sample analysis of process 330 written to file /dev/stdout
Sampling process 330 each 10 msecs 100 times


-- 
Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list