Index: Source/WebCore/editing/SpellChecker.cpp |
=================================================================== |
--- Source/WebCore/editing/SpellChecker.cpp (revision 86210) |
+++ Source/WebCore/editing/SpellChecker.cpp (working copy) |
@@ -33,6 +33,7 @@ |
#include "HTMLInputElement.h" |
#include "HTMLTextAreaElement.h" |
#include "Node.h" |
+#include "Page.h" |
#include "PositionIterator.h" |
#include "Range.h" |
#include "RenderObject.h" |
@@ -43,9 +44,8 @@ |
namespace WebCore { |
-SpellChecker::SpellChecker(Frame* frame, TextCheckerClient* client) |
+SpellChecker::SpellChecker(Frame* frame) |
: m_frame(frame) |
- , m_client(client) |
, m_requestSequence(0) |
{ |
} |
@@ -54,6 +54,14 @@ |
{ |
} |
+TextCheckerClient* SpellChecker::client() const |
+{ |
+ Page* page = m_frame->page(); |
+ if (!page) |
+ return 0; |
+ return page->editorClient()->textChecker(); |
+} |
+ |
bool SpellChecker::initRequest(Node* node) |
{ |
ASSERT(canCheckAsynchronously(node)); |
@@ -82,7 +90,7 @@ |
bool SpellChecker::canCheckAsynchronously(Node* node) const |
{ |
- return isCheckable(node) && isAsynchronousEnabled() && !isBusy(); |
+ return client() && isCheckable(node) && isAsynchronousEnabled() && !isBusy(); |
} |
bool SpellChecker::isBusy() const |
@@ -106,7 +114,7 @@ |
if (!initRequest(node)) |
return; |
- m_client->requestCheckingOfString(this, m_requestSequence, mask, m_requestText); |
+ client()->requestCheckingOfString(this, m_requestSequence, mask, m_requestText); |
} |
static bool forwardIterator(PositionIterator& iterator, int distance) |