[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e

andersca at apple.com andersca at apple.com
Fri Jan 21 14:58:19 UTC 2011


The following commit has been merged in the debian/experimental branch:
commit 047c400413737e89882782c066441494db3866db
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jan 5 19:41:03 2011 +0000

    2011-01-05  Anders Carlsson  <andersca at apple.com>
    
            Reviewed by Sam Weinig.
    
            More work on spelling
            https://bugs.webkit.org/show_bug.cgi?id=51939
    
            * UIProcess/API/mac/WKView.mm:
            (-[WKView validateUserInterfaceItem:]):
            Handle changeSpelling: as well.
    
            (-[WKView showGuessPanel:]):
            Show or hide the guess panel.
    
            (-[WKView checkSpelling:]):
            Pass false to advanceToNextMisspelling.
    
            (-[WKView changeSpelling:]):
            Call changeSpellingToWord.
    
            * UIProcess/TextChecker.h:
            * UIProcess/WebPageProxy.cpp:
            (WebKit::WebPageProxy::WebPageProxy):
            Initialize m_pendingLearnOrIgnoreWordMessageCount.
    
            (WebKit::WebPageProxy::contextMenuItemSelected):
            Handle smart toggles directly in the UI process, keep track of whether
            we're asked to learn or ignore a word.
    
            (WebKit::WebPageProxy::advanceToNextMisspelling):
            Pass the boolean through.
    
            (WebKit::WebPageProxy::changeSpellingToWord):
            Send a ChangeSpellingToWord message.
    
            (WebKit::WebPageProxy::learnWord):
            (WebKit::WebPageProxy::ignoreWord):
            Check that we do have a pending learn or ignore word message. Call through to
            the text checker.
    
            (WebKit::WebPageProxy::processDidCrash):
            Reset the m_pendingLearnOrIgnoreWordMessageCount variable.
    
            * UIProcess/WebPageProxy.h:
            * UIProcess/WebPageProxy.messages.in:
            Add new messages.
    
            * UIProcess/mac/TextCheckerMac.mm:
            (WebKit::TextChecker::learnWord):
            (WebKit::TextChecker::ignoreWord):
            Implement in terms of NSSpellChecker.
    
            * WebProcess/WebCoreSupport/WebEditorClient.cpp:
            (WebKit::WebEditorClient::ignoreWordInSpellDocument):
            (WebKit::WebEditorClient::learnWord):
            Send IgnoreWord and LearnWord messages.
    
            * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
            (WebKit::WebEditorClient::toggleAutomaticQuoteSubstitution):
            (WebKit::WebEditorClient::toggleAutomaticLinkDetection):
            (WebKit::WebEditorClient::toggleAutomaticDashSubstitution):
            (WebKit::WebEditorClient::toggleAutomaticTextReplacement):
            Add assertions.
    
            * WebProcess/WebPage/WebPage.cpp:
            (WebKit::WebPage::advanceToNextMisspelling):
            Pass the bool along to the Editor.
    
            (WebKit::WebPage::changeSpellingToWord):
            Replace the selected text.
    
            * WebProcess/WebPage/WebPage.messages.in:
            Add new ChangeSpellingToWord message and add a boolean to AdvanceToNextMisspelling.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75086 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 147d9cc..de449af 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,5 +1,79 @@
 2011-01-05  Anders Carlsson  <andersca at apple.com>
 
+        Reviewed by Sam Weinig.
+
+        More work on spelling
+        https://bugs.webkit.org/show_bug.cgi?id=51939
+
+        * UIProcess/API/mac/WKView.mm:
+        (-[WKView validateUserInterfaceItem:]):
+        Handle changeSpelling: as well.
+
+        (-[WKView showGuessPanel:]):
+        Show or hide the guess panel.
+
+        (-[WKView checkSpelling:]):
+        Pass false to advanceToNextMisspelling.
+
+        (-[WKView changeSpelling:]):
+        Call changeSpellingToWord.
+
+        * UIProcess/TextChecker.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::WebPageProxy):
+        Initialize m_pendingLearnOrIgnoreWordMessageCount.
+
+        (WebKit::WebPageProxy::contextMenuItemSelected):
+        Handle smart toggles directly in the UI process, keep track of whether
+        we're asked to learn or ignore a word.
+
+        (WebKit::WebPageProxy::advanceToNextMisspelling):
+        Pass the boolean through.
+
+        (WebKit::WebPageProxy::changeSpellingToWord):
+        Send a ChangeSpellingToWord message.
+
+        (WebKit::WebPageProxy::learnWord):
+        (WebKit::WebPageProxy::ignoreWord):
+        Check that we do have a pending learn or ignore word message. Call through to
+        the text checker.
+
+        (WebKit::WebPageProxy::processDidCrash):
+        Reset the m_pendingLearnOrIgnoreWordMessageCount variable.
+
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        Add new messages.
+
+        * UIProcess/mac/TextCheckerMac.mm:
+        (WebKit::TextChecker::learnWord):
+        (WebKit::TextChecker::ignoreWord):
+        Implement in terms of NSSpellChecker.
+
+        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+        (WebKit::WebEditorClient::ignoreWordInSpellDocument):
+        (WebKit::WebEditorClient::learnWord):
+        Send IgnoreWord and LearnWord messages.
+
+        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
+        (WebKit::WebEditorClient::toggleAutomaticQuoteSubstitution):
+        (WebKit::WebEditorClient::toggleAutomaticLinkDetection):
+        (WebKit::WebEditorClient::toggleAutomaticDashSubstitution):
+        (WebKit::WebEditorClient::toggleAutomaticTextReplacement):
+        Add assertions.
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::advanceToNextMisspelling):
+        Pass the bool along to the Editor.
+
+        (WebKit::WebPage::changeSpellingToWord):
+        Replace the selected text.
+
+        * WebProcess/WebPage/WebPage.messages.in:
+        Add new ChangeSpellingToWord message and add a boolean to AdvanceToNextMisspelling.
+
+2011-01-05  Anders Carlsson  <andersca at apple.com>
+
         Reviewed by Dan Bernstein.
 
         Keep track of active text substitution preferences
diff --git a/WebKit2/UIProcess/API/mac/WKView.mm b/WebKit2/UIProcess/API/mac/WKView.mm
index e607b54..47f26d0 100644
--- a/WebKit2/UIProcess/API/mac/WKView.mm
+++ b/WebKit2/UIProcess/API/mac/WKView.mm
@@ -355,7 +355,7 @@ static NSToolbarItem *toolbarItem(id <NSValidatedUserInterfaceItem> item)
         return _data->_page->selectionState().isContentEditable;
     }
 
-    if (action == @selector(checkSpelling:))
+    if (action == @selector(checkSpelling:) || action == @selector(changeSpelling:))
         return _data->_page->selectionState().isContentEditable;
 
     if (action == @selector(toggleContinuousSpellChecking:)) {
@@ -460,12 +460,32 @@ static void speakString(WKStringRef string, WKErrorRef error, void*)
 
 - (IBAction)showGuessPanel:(id)sender
 {
-    // FIXME (WebKit2) <rdar://problem/8245958> Make Spelling/Grammar checking work in WebKit2
+    NSSpellChecker *checker = [NSSpellChecker sharedSpellChecker];
+    if (!checker) {
+        LOG_ERROR("No NSSpellChecker");
+        return;
+    }
+    
+    NSPanel *spellingPanel = [checker spellingPanel];
+    if ([spellingPanel isVisible]) {
+        [spellingPanel orderOut:sender];
+        return;
+    }
+    
+    _data->_page->advanceToNextMisspelling(true);
+    [spellingPanel orderFront:sender];
 }
 
 - (IBAction)checkSpelling:(id)sender
 {
-    _data->_page->advanceToNextMisspelling();
+    _data->_page->advanceToNextMisspelling(false);
+}
+
+- (void)changeSpelling:(id)sender
+{
+    NSString *word = [[sender selectedCell] stringValue];
+
+    _data->_page->changeSpellingToWord(word);
 }
 
 - (IBAction)toggleContinuousSpellChecking:(id)sender
diff --git a/WebKit2/UIProcess/TextChecker.h b/WebKit2/UIProcess/TextChecker.h
index aa5b5ca..2970f3e 100644
--- a/WebKit2/UIProcess/TextChecker.h
+++ b/WebKit2/UIProcess/TextChecker.h
@@ -54,6 +54,8 @@ public:
     static Vector<WebCore::TextCheckingResult> checkTextOfParagraph(int64_t spellDocumentTag, const UChar* text, int length, uint64_t checkingTypes);
     static void updateSpellingUIWithMisspelledWord(const String& misspelledWord);
     static void getGuessesForWord(int64_t spellDocumentTag, const String& word, const String& context, Vector<String>& guesses);
+    static void learnWord(const String& word);
+    static void ignoreWord(int64_t spellDocumentTag, const String& word);
 };
 
 } // namespace WebKit
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index ba5c180..177c3c7 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -35,6 +35,7 @@
 #include "PageClient.h"
 #include "StringPairVector.h"
 #include "TextChecker.h"
+#include "TextCheckerState.h"
 #include "WKContextPrivate.h"
 #include "WebBackForwardList.h"
 #include "WebBackForwardListItem.h"
@@ -114,6 +115,7 @@ WebPageProxy::WebPageProxy(WebContext* context, WebPageGroup* pageGroup, uint64_
     , m_pageID(pageID)
     , m_spellDocumentTag(0)
     , m_hasSpellDocumentTag(false)
+    , m_pendingLearnOrIgnoreWordMessageCount(0)
     , m_mainFrameHasCustomRepresentation(false)
 {
 #ifndef NDEBUG
@@ -1704,7 +1706,33 @@ void WebPageProxy::contextMenuItemSelected(const WebContextMenuItemData& item)
         m_contextMenuClient.customContextMenuItemSelected(this, item);
         return;
     }
-    
+
+#if PLATFORM(MAC)
+    if (item.action() == ContextMenuItemTagSmartQuotes) {
+        TextChecker::setAutomaticQuoteSubstitutionEnabled(!TextChecker::state().isAutomaticQuoteSubstitutionEnabled);
+        process()->updateTextCheckerState();
+        return;
+    }
+    if (item.action() == ContextMenuItemTagSmartDashes) {
+        TextChecker::setAutomaticDashSubstitutionEnabled(!TextChecker::state().isAutomaticDashSubstitutionEnabled);
+        process()->updateTextCheckerState();
+        return;
+    }
+    if (item.action() == ContextMenuItemTagSmartLinks) {
+        TextChecker::setAutomaticLinkDetectionEnabled(!TextChecker::state().isAutomaticLinkDetectionEnabled);
+        process()->updateTextCheckerState();
+        return;
+    }
+    if (item.action() == ContextMenuItemTagTextReplacement) {
+        TextChecker::setAutomaticTextReplacementEnabled(!TextChecker::state().isAutomaticTextReplacementEnabled);
+        process()->updateTextCheckerState();
+        return;
+    }
+#endif
+
+    if (item.action() == ContextMenuItemTagLearnSpelling || item.action() == ContextMenuItemTagIgnoreSpelling)
+        ++m_pendingLearnOrIgnoreWordMessageCount;
+
     process()->send(Messages::WebPage::DidSelectItemFromActiveContextMenu(item), m_pageID);
 }
 
@@ -1731,9 +1759,17 @@ void WebPageProxy::didCancelForOpenPanel()
     m_openPanelResultListener = 0;
 }
 
-void WebPageProxy::advanceToNextMisspelling()
+void WebPageProxy::advanceToNextMisspelling(bool startBeforeSelection)
 {
-    process()->send(Messages::WebPage::AdvanceToNextMisspelling(), m_pageID);
+    process()->send(Messages::WebPage::AdvanceToNextMisspelling(startBeforeSelection), m_pageID);
+}
+
+void WebPageProxy::changeSpellingToWord(const String& word)
+{
+    if (word.isEmpty())
+        return;
+
+    process()->send(Messages::WebPage::ChangeSpellingToWord(word), m_pageID);
 }
 
 void WebPageProxy::unmarkAllMisspellings()
@@ -1790,6 +1826,22 @@ void WebPageProxy::getGuessesForWord(const String& word, const String& context,
     TextChecker::getGuessesForWord(spellDocumentTag(), word, context, guesses);
 }
 
+void WebPageProxy::learnWord(const String& word)
+{
+    MESSAGE_CHECK(m_pendingLearnOrIgnoreWordMessageCount);
+    --m_pendingLearnOrIgnoreWordMessageCount;
+
+    TextChecker::learnWord(word);
+}
+
+void WebPageProxy::ignoreWord(const String& word)
+{
+    MESSAGE_CHECK(m_pendingLearnOrIgnoreWordMessageCount);
+    --m_pendingLearnOrIgnoreWordMessageCount;
+
+    TextChecker::ignoreWord(spellDocumentTag(), word);
+}
+
 // Other
 
 void WebPageProxy::takeFocus(bool direction)
@@ -1992,6 +2044,8 @@ void WebPageProxy::processDidCrash()
 
     m_estimatedProgress = 0.0;
 
+    m_pendingLearnOrIgnoreWordMessageCount = 0;
+
     m_pageClient->processDidCrash();
     m_loaderClient.processDidCrash(this);
 }
diff --git a/WebKit2/UIProcess/WebPageProxy.h b/WebKit2/UIProcess/WebPageProxy.h
index 330af63..2e2ef03 100644
--- a/WebKit2/UIProcess/WebPageProxy.h
+++ b/WebKit2/UIProcess/WebPageProxy.h
@@ -299,7 +299,8 @@ public:
     void findZoomableAreaForPoint(const WebCore::IntPoint&);
 #endif
 
-    void advanceToNextMisspelling();
+    void advanceToNextMisspelling(bool startBeforeSelection);
+    void changeSpellingToWord(const String& word);
     void unmarkAllMisspellings();
     void unmarkAllBadGrammar();
 
@@ -435,6 +436,8 @@ private:
     void checkTextOfParagraph(const String& text, uint64_t checkingTypes, Vector<WebCore::TextCheckingResult>& results);
     void updateSpellingUIWithMisspelledWord(const String& misspelledWord);
     void getGuessesForWord(const String& word, const String& context, Vector<String>& guesses);
+    void learnWord(const String& word);
+    void ignoreWord(const String& word);
 
     void takeFocus(bool direction);
     void setToolTip(const String&);
@@ -543,6 +546,7 @@ private:
 
     int64_t m_spellDocumentTag;
     bool m_hasSpellDocumentTag;
+    unsigned m_pendingLearnOrIgnoreWordMessageCount;
 
     bool m_mainFrameHasCustomRepresentation;
 };
diff --git a/WebKit2/UIProcess/WebPageProxy.messages.in b/WebKit2/UIProcess/WebPageProxy.messages.in
index b95d6b4..91eed43 100644
--- a/WebKit2/UIProcess/WebPageProxy.messages.in
+++ b/WebKit2/UIProcess/WebPageProxy.messages.in
@@ -181,4 +181,6 @@ messages -> WebPageProxy {
     CheckTextOfParagraph(WTF::String text, uint64_t checkingTypes) -> (Vector<WebCore::TextCheckingResult> results)
     UpdateSpellingUIWithMisspelledWord(WTF::String misspelledWord)
     GetGuessesForWord(WTF::String word, WTF::String context) -> (Vector<WTF::String> guesses)
+    LearnWord(WTF::String word);
+    IgnoreWord(WTF::String word);
 }
diff --git a/WebKit2/UIProcess/mac/TextCheckerMac.mm b/WebKit2/UIProcess/mac/TextCheckerMac.mm
index fd28a8d..ccfce4a 100644
--- a/WebKit2/UIProcess/mac/TextCheckerMac.mm
+++ b/WebKit2/UIProcess/mac/TextCheckerMac.mm
@@ -289,4 +289,14 @@ void TextChecker::getGuessesForWord(int64_t spellDocumentTag, const String& word
         guesses.append(guess);
 }
 
+void TextChecker::learnWord(const String& word)
+{
+    [[NSSpellChecker sharedSpellChecker] learnWord:word];
+}
+
+void TextChecker::ignoreWord(int64_t spellDocumentTag, const String& word)
+{
+    [[NSSpellChecker sharedSpellChecker] ignoreWord:word inSpellDocumentWithTag:spellDocumentTag];
+}
+
 } // namespace WebKit
diff --git a/WebKit2/UIProcess/qt/TextCheckerQt.cpp b/WebKit2/UIProcess/qt/TextCheckerQt.cpp
index 78fc9cc..9ab6297 100644
--- a/WebKit2/UIProcess/qt/TextCheckerQt.cpp
+++ b/WebKit2/UIProcess/qt/TextCheckerQt.cpp
@@ -85,4 +85,14 @@ void TextChecker::getGuessesForWord(int64_t spellDocumentTag, const String& word
     notImplemented();
 }
 
+void TextChecker::learnWord(const String& word)
+{
+    notImplemented();
+}
+
+void TextChecker::ignoreWord(int64_t spellDocumentTag, const String& word)
+{
+    notImplemented();
+}
+
 } // namespace WebKit
diff --git a/WebKit2/UIProcess/win/TextCheckerWin.cpp b/WebKit2/UIProcess/win/TextCheckerWin.cpp
index 95ab2af..3c4b1eb 100644
--- a/WebKit2/UIProcess/win/TextCheckerWin.cpp
+++ b/WebKit2/UIProcess/win/TextCheckerWin.cpp
@@ -85,4 +85,14 @@ void TextChecker::getGuessesForWord(int64_t spellDocumentTag, const String& word
     notImplemented();
 }
 
+void TextChecker::learnWord(const String& word)
+{
+    notImplemented();
+}
+
+void TextChecker::ignoreWord(int64_t spellDocumentTag, const String& word)
+{
+    notImplemented();
+}
+
 } // namespace WebKit
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp b/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp
index 3d7c5a9..cf34674 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp
@@ -364,14 +364,14 @@ void WebEditorClient::textWillBeDeletedInTextField(Element* element)
     m_page->injectedBundleFormClient().shouldPerformActionInTextField(m_page, static_cast<HTMLInputElement*>(element), WKInputFieldActionTypeInsertDelete, webFrame);
 }
 
-void WebEditorClient::ignoreWordInSpellDocument(const String&)
+void WebEditorClient::ignoreWordInSpellDocument(const String& word)
 {
-    notImplemented();
+    m_page->send(Messages::WebPageProxy::IgnoreWord(word));
 }
 
-void WebEditorClient::learnWord(const String&)
+void WebEditorClient::learnWord(const String& word)
 {
-    notImplemented();
+    m_page->send(Messages::WebPageProxy::LearnWord(word));
 }
 
 void WebEditorClient::checkSpellingOfString(const UChar*, int, int*, int*)
diff --git a/WebKit2/WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm b/WebKit2/WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm
index f3b7c0b..2c4110d 100644
--- a/WebKit2/WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm
+++ b/WebKit2/WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm
@@ -169,7 +169,8 @@ bool WebEditorClient::isAutomaticQuoteSubstitutionEnabled()
 
 void WebEditorClient::toggleAutomaticQuoteSubstitution()
 {
-    notImplemented();
+    // This should be handled in the UI process.
+    ASSERT_NOT_REACHED();
 }
 
 bool WebEditorClient::isAutomaticLinkDetectionEnabled()
@@ -179,7 +180,8 @@ bool WebEditorClient::isAutomaticLinkDetectionEnabled()
 
 void WebEditorClient::toggleAutomaticLinkDetection()
 {
-    notImplemented();
+    // This should be handled in the UI process.
+    ASSERT_NOT_REACHED();
 }
 
 bool WebEditorClient::isAutomaticDashSubstitutionEnabled()
@@ -189,7 +191,8 @@ bool WebEditorClient::isAutomaticDashSubstitutionEnabled()
 
 void WebEditorClient::toggleAutomaticDashSubstitution()
 {
-    notImplemented();
+    // This should be handled in the UI process.
+    ASSERT_NOT_REACHED();
 }
 
 bool WebEditorClient::isAutomaticTextReplacementEnabled()
@@ -199,7 +202,8 @@ bool WebEditorClient::isAutomaticTextReplacementEnabled()
 
 void WebEditorClient::toggleAutomaticTextReplacement()
 {
-    notImplemented();
+    // This should be handled in the UI process.
+    ASSERT_NOT_REACHED();
 }
 
 bool WebEditorClient::isAutomaticSpellingCorrectionEnabled()
diff --git a/WebKit2/WebProcess/WebPage/WebPage.cpp b/WebKit2/WebProcess/WebPage/WebPage.cpp
index f636ee2..3841185 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.cpp
+++ b/WebKit2/WebProcess/WebPage/WebPage.cpp
@@ -62,6 +62,7 @@
 #include <WebCore/ArchiveResource.h>
 #include <WebCore/Chrome.h>
 #include <WebCore/ContextMenuController.h>
+#include <WebCore/DocumentFragment.h>
 #include <WebCore/DocumentLoader.h>
 #include <WebCore/DocumentMarkerController.h>
 #include <WebCore/EventHandler.h>
@@ -74,11 +75,13 @@
 #include <WebCore/Page.h>
 #include <WebCore/PlatformKeyboardEvent.h>
 #include <WebCore/RenderTreeAsText.h>
+#include <WebCore/ReplaceSelectionCommand.h>
 #include <WebCore/ResourceRequest.h>
 #include <WebCore/Settings.h>
 #include <WebCore/SharedBuffer.h>
 #include <WebCore/SubstituteData.h>
 #include <WebCore/TextIterator.h>
+#include <WebCore/markup.h>
 #include <runtime/JSLock.h>
 #include <runtime/JSValue.h>
 
@@ -1256,10 +1259,21 @@ void WebPage::didCancelForOpenPanel()
     m_activeOpenPanelResultListener = 0;
 }
 
-void WebPage::advanceToNextMisspelling()
+void WebPage::advanceToNextMisspelling(bool startBeforeSelection)
 {
-    if (Frame* frame = m_page->focusController()->focusedOrMainFrame())
-        frame->editor()->advanceToNextMisspelling();
+    Frame* frame = m_page->focusController()->focusedOrMainFrame();
+    frame->editor()->advanceToNextMisspelling(startBeforeSelection);
+}
+
+void WebPage::changeSpellingToWord(const String& word)
+{
+    Frame* frame = m_page->focusController()->focusedOrMainFrame();
+    if (frame->selection()->isNone())
+        return;
+
+    RefPtr<DocumentFragment> textFragment = createFragmentFromText(frame->selection()->toNormalizedRange().get(), word);
+    applyCommand(ReplaceSelectionCommand::create(frame->document(), textFragment.release(), true, false, true));
+    frame->selection()->revealSelection(ScrollAlignment::alignToEdgeIfNeeded);
 }
 
 void WebPage::unmarkAllMisspellings()
diff --git a/WebKit2/WebProcess/WebPage/WebPage.h b/WebKit2/WebProcess/WebPage/WebPage.h
index 12633f0..864d60f 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.h
+++ b/WebKit2/WebProcess/WebPage/WebPage.h
@@ -374,7 +374,8 @@ private:
     void didChooseFilesForOpenPanel(const Vector<String>&);
     void didCancelForOpenPanel();
 
-    void advanceToNextMisspelling();
+    void advanceToNextMisspelling(bool startBeforeSelection);
+    void changeSpellingToWord(const String& word);
     void unmarkAllMisspellings();
     void unmarkAllBadGrammar();
 
diff --git a/WebKit2/WebProcess/WebPage/WebPage.messages.in b/WebKit2/WebProcess/WebPage/WebPage.messages.in
index baa5ae8..cf1fdc6 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.messages.in
+++ b/WebKit2/WebProcess/WebPage/WebPage.messages.in
@@ -101,7 +101,8 @@ messages -> WebPage {
     DidCancelForOpenPanel()
 
     # Speling and grammer.
-    AdvanceToNextMisspelling()
+    AdvanceToNextMisspelling(bool startBeforeSelection)
+    ChangeSpellingToWord(WTF::String word)
     UnmarkAllMisspellings()
     UnmarkAllBadGrammar()
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list