Changeset 167148 in webkit
- Timestamp:
- Apr 11, 2014 2:09:13 PM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r167147 r167148 1 2014-04-11 Brady Eidson <beidson@apple.com> 2 3 Aggregate multiple "respondToChangedSelection" calls to one scan for telephone numbers 4 https://bugs.webkit.org/show_bug.cgi?id=131559 5 6 Reviewed by Gavin Barraclough. 7 8 No new tests (Perf-only change to an untested feature) 9 10 * editing/Editor.cpp: 11 (WebCore::Editor::Editor): 12 (WebCore::Editor::respondToChangedSelection): Start a one shot timer for scanSelectionForTelephoneNumbers 13 instead of scanning synchronously. 14 (WebCore::Editor::scanSelectionForTelephoneNumbers): 15 * editing/Editor.h: 16 1 17 2014-04-11 Antti Koivisto <antti@apple.com> 2 18 -
trunk/Source/WebCore/editing/Editor.cpp
r166968 r167148 1153 1153 , m_editorUIUpdateTimerShouldCheckSpellingAndGrammar(false) 1154 1154 , m_editorUIUpdateTimerWasTriggeredByDictation(false) 1155 #if ENABLE(TELEPHONE_NUMBER_DETECTION) && !PLATFORM(IOS) 1156 , m_telephoneNumberDetectionUpdateTimer(this, &Editor::scanSelectionForTelephoneNumbers) 1157 #endif 1155 1158 { 1156 1159 } … … 3319 3322 3320 3323 #if ENABLE(TELEPHONE_NUMBER_DETECTION) && !PLATFORM(IOS) 3321 Vector<RefPtr<Range>> markedRanges; 3322 scanSelectionForTelephoneNumbers(markedRanges); 3323 if (client()) 3324 client()->selectedTelephoneNumberRangesChanged(markedRanges); 3324 m_telephoneNumberDetectionUpdateTimer.startOneShot(0); 3325 3325 #endif 3326 3326 … … 3338 3338 3339 3339 #if ENABLE(TELEPHONE_NUMBER_DETECTION) && !PLATFORM(IOS) 3340 void Editor::scanSelectionForTelephoneNumbers( Vector<RefPtr<Range>>& markedRanges)3340 void Editor::scanSelectionForTelephoneNumbers(Timer<Editor>&) 3341 3341 { 3342 3342 if (!TelephoneNumberDetector::isSupported()) … … 3348 3348 clearDataDetectedTelephoneNumbers(); 3349 3349 3350 Vector<RefPtr<Range>> markedRanges; 3351 3350 3352 RefPtr<Range> selectedRange = m_frame.selection().toNormalizedRange(); 3351 if (!selectedRange || (selectedRange->startContainer() == selectedRange->endContainer() && selectedRange->startOffset() == selectedRange->endOffset())) 3352 return; 3353 if (!selectedRange || (selectedRange->startContainer() == selectedRange->endContainer() && selectedRange->startOffset() == selectedRange->endOffset())) { 3354 if (client()) 3355 client()->selectedTelephoneNumberRangesChanged(markedRanges); 3356 return; 3357 } 3353 3358 3354 3359 // FIXME: This won't work if a phone number spans multiple chunks of text from the perspective of the TextIterator … … 3361 3366 scanRangeForTelephoneNumbers(*textChunk.range(), textChunk.text(), markedRanges); 3362 3367 } 3368 3369 if (client()) 3370 client()->selectedTelephoneNumberRangesChanged(markedRanges); 3363 3371 } 3364 3372 -
trunk/Source/WebCore/editing/Editor.h
r166965 r167148 474 474 bool unifiedTextCheckerEnabled() const; 475 475 476 #if ENABLE(TELEPHONE_NUMBER_DETECTION) && !PLATFORM(IOS)477 void scanSelectionForTelephoneNumbers(Vector<RefPtr<Range>>& markedRanges);478 void scanRangeForTelephoneNumbers(Range&, const StringView&, Vector<RefPtr<Range>>& markedRanges);479 void clearDataDetectedTelephoneNumbers();480 #endif481 482 476 #if PLATFORM(COCOA) 483 477 PassRefPtr<SharedBuffer> selectionInWebArchiveFormat(); … … 512 506 bool m_editorUIUpdateTimerShouldCheckSpellingAndGrammar; 513 507 bool m_editorUIUpdateTimerWasTriggeredByDictation; 508 509 #if ENABLE(TELEPHONE_NUMBER_DETECTION) && !PLATFORM(IOS) 510 void scanSelectionForTelephoneNumbers(Timer<Editor>&); 511 void scanRangeForTelephoneNumbers(Range&, const StringView&, Vector<RefPtr<Range>>& markedRanges); 512 void clearDataDetectedTelephoneNumbers(); 513 514 Timer<Editor> m_telephoneNumberDetectionUpdateTimer; 515 #endif 514 516 }; 515 517
Note: See TracChangeset
for help on using the changeset viewer.