Changeset 114605 in webkit


Ignore:
Timestamp:
Apr 18, 2012 8:51:56 PM (12 years ago)
Author:
hbono@chromium.org
Message:

Split SpellChecker::didCheck() to SpellChecker::didCheckSucceeded() and SpellChecker::didCheckCanceled()
https://bugs.webkit.org/show_bug.cgi?id=83748

Reviewed by Ryosuke Niwa.

Source/WebCore:

The current SpellChecker::didCheck() does not delete existing markers. It causes
a problem that it leaves misspelled markers when a spellchecker client finishes
checking text successfully. This change splits this function to didCheckSucceeded()
and didCheckCanceled() so the SpellChecker class can delete existing markers
when its client finishes checking text successfully. (We do not have to erase
existing markers when the client needs to cancel a text-check request.)

Test: platform/chromium/editing/spelling/delete-misspelled-word.html

  • WebCore.exp.in: Replaced SpellChecker::didCheck with SpellChecker::didCheckSucceeded.
  • editing/SpellChecker.cpp:

(WebCore::SpellChecker::didCheckSucceeded): Added.
(WebCore):
(WebCore::SpellChecker::didCheckCanceled): Added.

  • editing/SpellChecker.h:

(SpellChecker): Added didCheckSucceeded and didCheckCanceled. Also changed didCheck to a private function.

Source/WebKit/chromium:

This change adds a new API WebTextCheckingCompletion::didCancelCheckingText(),
which encapsulates SpellChecker::didCheckCanceled() and implements it so
Chromium can use it.

  • public/WebTextCheckingCompletion.h:

(WebKit::WebTextCheckingCompletion::didCancelCheckingText):

  • src/WebTextCheckingCompletionImpl.cpp:

(WebKit::WebTextCheckingCompletionImpl::didFinishCheckingText):
(WebKit):
(WebKit::WebTextCheckingCompletionImpl::didCancelCheckingText):

  • src/WebTextCheckingCompletionImpl.h:

(WebTextCheckingCompletionImpl):

Source/WebKit/mac:

This change replaces a call for SpellChecker::didCheck() with one for
SpellChecker::didCheckSucceeded() because didCheck has been split into
didCheckSucceeded(0 and didCheckCanceled().

  • WebCoreSupport/WebEditorClient.mm:

(-[WebEditorSpellCheckResponder perform]): Replaced didCheck with didCheckSucceeded.

Tools:

This change replaces a call for SpellChecker::didCheck() with one for
SpellChecker::didCheckCenceled() because didCheck() has been split into
didCheckSucceeded() and didCheckCanceled().

  • DumpRenderTree/chromium/WebViewHost.cpp:

(WebViewHost::requestCheckingOfText): Replaced didCheck with didCheckCanceled.

LayoutTests:

The current SpellChecker::didCheck() does not delete existing markers. It causes
a problem that it leaves misspelled markers when a spellchecker client finishes
checking text successfully. This change splits this function to didCheckSucceeded()
and didCheckCanceled() so the SpellChecker class can delete existing markers
when its client finishes checking text successfully. (We do not have to erase
existing markers when the client needs to cancel a text-check request.)

  • platform/chromium/editing/spelling/delete-misspelled-word-expected.txt: Added.
  • platform/chromium/editing/spelling/delete-misspelled-word.html: Added.
Location:
trunk
Files:
2 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r114603 r114605  
     12012-04-18  Hironori Bono  <hbono@chromium.org>
     2
     3        Split SpellChecker::didCheck() to SpellChecker::didCheckSucceeded() and SpellChecker::didCheckCanceled()
     4        https://bugs.webkit.org/show_bug.cgi?id=83748
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        The current SpellChecker::didCheck() does not delete existing markers. It causes
     9        a problem that it leaves misspelled markers when a spellchecker client finishes
     10        checking text successfully. This change splits this function to didCheckSucceeded()
     11        and  didCheckCanceled() so the SpellChecker class can delete existing markers
     12        when its client finishes checking text successfully. (We do not have to erase
     13        existing markers when the client needs to cancel a text-check request.)
     14
     15        * platform/chromium/editing/spelling/delete-misspelled-word-expected.txt: Added.
     16        * platform/chromium/editing/spelling/delete-misspelled-word.html: Added.
     17
    1182012-04-18  Raymond Toy  <rtoy@google.com>
    219
  • trunk/Source/WebCore/ChangeLog

    r114604 r114605  
     12012-04-18  Hironori Bono  <hbono@chromium.org>
     2
     3        Split SpellChecker::didCheck() to SpellChecker::didCheckSucceeded() and SpellChecker::didCheckCanceled()
     4        https://bugs.webkit.org/show_bug.cgi?id=83748
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        The current SpellChecker::didCheck() does not delete existing markers. It causes
     9        a problem that it leaves misspelled markers when a spellchecker client finishes
     10        checking text successfully. This change splits this function to didCheckSucceeded()
     11        and  didCheckCanceled() so the SpellChecker class can delete existing markers
     12        when its client finishes checking text successfully. (We do not have to erase
     13        existing markers when the client needs to cancel a text-check request.)
     14
     15        Test: platform/chromium/editing/spelling/delete-misspelled-word.html
     16
     17        * WebCore.exp.in: Replaced SpellChecker::didCheck with SpellChecker::didCheckSucceeded.
     18        * editing/SpellChecker.cpp:
     19        (WebCore::SpellChecker::didCheckSucceeded): Added.
     20        (WebCore):
     21        (WebCore::SpellChecker::didCheckCanceled): Added.
     22        * editing/SpellChecker.h:
     23        (SpellChecker): Added didCheckSucceeded and didCheckCanceled. Also changed didCheck to a private function.
     24
    1252012-04-16  James Robinson  <jamesr@chromium.org>
    226
  • trunk/Source/WebCore/WebCore.exp.in

    r114278 r114605  
    280280__ZN7WebCore12SharedBufferC1Ev
    281281__ZN7WebCore12SharedBufferD1Ev
    282 __ZN7WebCore12SpellChecker8didCheckEiRKN3WTF6VectorINS_18TextCheckingResultELm0EEE
     282__ZN7WebCore12SpellChecker17didCheckSucceededEiRKN3WTF6VectorINS_18TextCheckingResultELm0EEE
    283283__ZN7WebCore12TextEncodingC1ERKN3WTF6StringE
    284284__ZN7WebCore12TextIterator11rangeLengthEPKNS_5RangeEb
  • trunk/Source/WebCore/editing/SpellChecker.cpp

    r113127 r114605  
    189189}
    190190
     191void SpellChecker::didCheckSucceeded(int sequence, const Vector<TextCheckingResult>& results)
     192{
     193    if (m_processingRequest->sequence() == sequence) {
     194        unsigned markers = 0;
     195        if (m_processingRequest->mask() & TextCheckingTypeSpelling)
     196            markers |= DocumentMarker::Spelling;
     197        if (m_processingRequest->mask() & TextCheckingTypeGrammar)
     198            markers |= DocumentMarker::Grammar;
     199        if (markers)
     200            m_frame->document()->markers()->removeMarkers(m_processingRequest->checkingRange().get(), markers);
     201    }
     202    didCheck(sequence, results);
     203}
     204
     205void SpellChecker::didCheckCanceled(int sequence)
     206{
     207    Vector<TextCheckingResult> results;
     208    didCheck(sequence, results);
     209}
    191210
    192211} // namespace WebCore
  • trunk/Source/WebCore/editing/SpellChecker.h

    r108772 r114605  
    8282
    8383    void requestCheckingFor(PassRefPtr<SpellCheckRequest>);
    84     void didCheck(int sequence, const Vector<TextCheckingResult>&);
     84    void didCheckSucceeded(int sequence, const Vector<TextCheckingResult>&);
     85    void didCheckCanceled(int sequence);
    8586
    8687    int lastRequestSequence() const
     
    102103    void invokeRequest(PassRefPtr<SpellCheckRequest>);
    103104    void enqueueRequest(PassRefPtr<SpellCheckRequest>);
     105    void didCheck(int sequence, const Vector<TextCheckingResult>&);
    104106
    105107    Frame* m_frame;
  • trunk/Source/WebKit/chromium/ChangeLog

    r114604 r114605  
     12012-04-18  Hironori Bono  <hbono@chromium.org>
     2
     3        Split SpellChecker::didCheck() to SpellChecker::didCheckSucceeded() and SpellChecker::didCheckCanceled()
     4        https://bugs.webkit.org/show_bug.cgi?id=83748
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        This change adds a new API WebTextCheckingCompletion::didCancelCheckingText(),
     9        which encapsulates SpellChecker::didCheckCanceled() and implements it so
     10        Chromium can use it.
     11
     12        * public/WebTextCheckingCompletion.h:
     13        (WebKit::WebTextCheckingCompletion::didCancelCheckingText):
     14        * src/WebTextCheckingCompletionImpl.cpp:
     15        (WebKit::WebTextCheckingCompletionImpl::didFinishCheckingText):
     16        (WebKit):
     17        (WebKit::WebTextCheckingCompletionImpl::didCancelCheckingText):
     18        * src/WebTextCheckingCompletionImpl.h:
     19        (WebTextCheckingCompletionImpl):
     20
    1212012-04-16  James Robinson  <jamesr@chromium.org>
    222
  • trunk/Source/WebKit/chromium/public/WebTextCheckingCompletion.h

    r101122 r114605  
    4343public:
    4444    virtual void didFinishCheckingText(const WebVector<WebTextCheckingResult>&) = 0;
     45    virtual void didCancelCheckingText() { };
    4546protected:
    4647    ~WebTextCheckingCompletion() { }
  • trunk/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp

    r107176 r114605  
    5252void WebTextCheckingCompletionImpl::didFinishCheckingText(const WebVector<WebTextCheckingResult>& results)
    5353{
    54     m_spellChecker->didCheck(m_identifier, toCoreResults(results));
     54    m_spellChecker->didCheckSucceeded(m_identifier, toCoreResults(results));
     55    delete this;
     56}
     57
     58void WebTextCheckingCompletionImpl::didCancelCheckingText()
     59{
     60    m_spellChecker->didCheckCanceled(m_identifier);
    5561    delete this;
    5662}
  • trunk/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.h

    r95901 r114605  
    4848
    4949    virtual void didFinishCheckingText(const WebVector<WebTextCheckingResult>&);
     50    virtual void didCancelCheckingText();
    5051
    5152private:
  • trunk/Source/WebKit/mac/ChangeLog

    r114567 r114605  
     12012-04-18  Hironori Bono  <hbono@chromium.org>
     2
     3        Split SpellChecker::didCheck() to SpellChecker::didCheckSucceeded() and SpellChecker::didCheckCanceled()
     4        https://bugs.webkit.org/show_bug.cgi?id=83748
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        This change replaces a call for SpellChecker::didCheck() with one for
     9        SpellChecker::didCheckSucceeded() because didCheck has been split into
     10        didCheckSucceeded(0 and didCheckCanceled().
     11
     12        * WebCoreSupport/WebEditorClient.mm:
     13        (-[WebEditorSpellCheckResponder perform]): Replaced didCheck with didCheckSucceeded.
     14
    1152012-04-18  Jer Noble  <jer.noble@apple.com>
    216
  • trunk/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm

    r113340 r114605  
    942942- (void)perform
    943943{
    944     _sender->didCheck(_sequence, core(_results.get(), _types));
     944    _sender->didCheckSucceeded(_sequence, core(_results.get(), _types));
    945945}
    946946
  • trunk/Tools/ChangeLog

    r114602 r114605  
     12012-04-18  Hironori Bono  <hbono@chromium.org>
     2
     3        Split SpellChecker::didCheck() to SpellChecker::didCheckSucceeded() and SpellChecker::didCheckCanceled()
     4        https://bugs.webkit.org/show_bug.cgi?id=83748
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        This change replaces a call for SpellChecker::didCheck() with one for
     9        SpellChecker::didCheckCenceled() because didCheck() has been split into
     10        didCheckSucceeded() and didCheckCanceled().
     11
     12        * DumpRenderTree/chromium/WebViewHost.cpp:
     13        (WebViewHost::requestCheckingOfText): Replaced didCheck with didCheckCanceled.
     14
    1152012-04-18  Dirk Pranke  <dpranke@chromium.org>
    216
  • trunk/Tools/DumpRenderTree/chromium/WebViewHost.cpp

    r113799 r114605  
    456456    if (text.isEmpty()) {
    457457        if (completion)
    458             completion->didFinishCheckingText(Vector<WebTextCheckingResult>());
     458            completion->didCancelCheckingText();
    459459        return;
    460460    }
Note: See TracChangeset for help on using the changeset viewer.