-
darin authored
- fix <rdar://problem/5193416> REGRESSION: Selection on large pages extremely slow * dom/Document.cpp: (WebCore::Document::removeMarkers): Added an early exit for the common case where there are no markers. Changed code to iterate over all the nodes in the range instead of using TextIterator, which is more efficient. * page/Frame.cpp: (WebCore::Frame::respondToChangedSelection): Added checks for editable, so we don't bother doing work related to spell checking and grammar checking when changing the selection in non-editable text. Also rearranged the code so we only compute the old word boundaries and sentence boundaries when actually needed, and don't do the sentence range checks unless grammar checking is enabled. * platform/TextBreakIteratorICU.cpp: (WebCore::setUpIterator): Don't take a locale parameter. Always pass in currentTextBreakLocaleID. (WebCore::characterBreakIterator): Removed local parameter. (WebCore::wordBreakIterator): Ditto. (WebCore::lineBreakIterator): Ditto. (WebCore::sentenceBreakIterator): Ditto. * platform/mac/TextBreakIteratorInternalICUMac.mm: (WebCore::getTextBreakLocale): Broke out the code to actually get the locale. (WebCore::currentTextBreakLocaleID): This function now handles only the caching and calls getTextBreakLocale to actually figure it out. * editing/visible_units.cpp: Added lots of FIXME comments, but no code change. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
29df4b01