Commit 659edf80 authored by xiaochengh's avatar xiaochengh Committed by Commit bot

Hide SpellCheckRequest from other classes in editing/spellcheck

Currently, all external clients of SpellCheckRequest use it in only
one way -- pass it to SpellCheckRequester::requestCheckingFor
directly.

Hence, this patch makes the clients call the function directly without
knowing about details of this class, to reduce exposure of implementation
details.

BUG=n/a
TEST=n/a; no behavior changes

Review-Url: https://codereview.chromium.org/2740603003
Cr-Commit-Position: refs/heads/master@{#456240}
parent e1d64e74
......@@ -102,9 +102,9 @@ void HotModeSpellCheckRequester::checkSpellingAt(const Position& position) {
if (!shouldCheckRootEditableInHotMode(*rootEditable, position))
return;
SpellCheckRequest* request = SpellCheckRequest::create(
calculateHotModeCheckingRange(*rootEditable, position));
m_requester->requestCheckingFor(request);
const EphemeralRange& checkingRange =
calculateHotModeCheckingRange(*rootEditable, position);
m_requester->requestCheckingFor(checkingRange);
}
} // namespace blink
......@@ -173,8 +173,7 @@ void IdleSpellCheckCallback::chunkAndRequestFullCheckingFor(
// Check the full content if it is short.
if (fullLength <= kColdModeChunkSize) {
SpellCheckRequest* fullRequest = SpellCheckRequest::create(fullRange);
spellCheckRequester().requestCheckingFor(fullRequest);
spellCheckRequester().requestCheckingFor(fullRange);
return;
}
......@@ -195,9 +194,7 @@ void IdleSpellCheckCallback::chunkAndRequestFullCheckingFor(
chunkIndex >= 1 ? expandEndToSentenceBoundary(chunkRange)
: expandRangeToSentenceBoundary(chunkRange);
SpellCheckRequest* chunkRequest =
SpellCheckRequest::create(checkRange, chunkIndex);
spellCheckRequester().requestCheckingFor(chunkRequest);
spellCheckRequester().requestCheckingFor(checkRange, chunkIndex);
chunkStart = checkRange.endPosition();
}
......
......@@ -143,7 +143,13 @@ void SpellCheckRequester::timerFiredToProcessQueuedRequest(TimerBase*) {
invokeRequest(m_requestQueue.takeFirst());
}
void SpellCheckRequester::requestCheckingFor(SpellCheckRequest* request) {
void SpellCheckRequester::requestCheckingFor(const EphemeralRange& range) {
requestCheckingFor(range, 0);
}
void SpellCheckRequester::requestCheckingFor(const EphemeralRange& range,
int requestNum) {
SpellCheckRequest* request = SpellCheckRequest::create(range, requestNum);
if (!request)
return;
......
......@@ -43,10 +43,11 @@ class LocalFrame;
class SpellCheckRequester;
class TextCheckerClient;
// TODO(xiaochengh): Move this class to dedicated files.
class SpellCheckRequest final : public TextCheckingRequest {
public:
static SpellCheckRequest* create(const EphemeralRange& checkingRange,
int requestNumber = 0);
int requestNumber);
~SpellCheckRequest() override;
void dispose();
......@@ -87,7 +88,8 @@ class SpellCheckRequester final
~SpellCheckRequester();
DECLARE_TRACE();
void requestCheckingFor(SpellCheckRequest*);
void requestCheckingFor(const EphemeralRange&);
void requestCheckingFor(const EphemeralRange&, int requestNum);
void cancelCheck();
int lastRequestSequence() const { return m_lastRequestSequence; }
......
......@@ -504,9 +504,7 @@ void SpellChecker::chunkAndMarkAllMisspellings(
// Check the full paragraph instead if the paragraph is short, which saves
// the cost on sentence boundary finding.
if (fullParagraphToCheck.rangeLength() <= kChunkSize) {
SpellCheckRequest* request = SpellCheckRequest::create(paragraphRange, 0);
if (request)
m_spellCheckRequester->requestCheckingFor(request);
m_spellCheckRequester->requestCheckingFor(paragraphRange);
return;
}
......@@ -522,10 +520,7 @@ void SpellChecker::chunkAndMarkAllMisspellings(
? expandEndToSentenceBoundary(chunkRange)
: expandRangeToSentenceBoundary(chunkRange);
SpellCheckRequest* request =
SpellCheckRequest::create(checkRange, requestNum);
if (request)
m_spellCheckRequester->requestCheckingFor(request);
m_spellCheckRequester->requestCheckingFor(checkRange, requestNum);
if (!checkRangeIterator.atEnd()) {
checkRangeIterator.advance(1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment