Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Unified Diff: third_party/WebKit/Source/core/editing/spellcheck/IdleSpellCheckCallback.cpp

Issue 2740503002: Remove timeout from idle time spell checker's cold mode request (Closed)
Patch Set: Make change more verbose Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/editing/spellcheck/IdleSpellCheckCallback.cpp
diff --git a/third_party/WebKit/Source/core/editing/spellcheck/IdleSpellCheckCallback.cpp b/third_party/WebKit/Source/core/editing/spellcheck/IdleSpellCheckCallback.cpp
index 2c400a479fa4ad213609139d7e6f4af24c4694fb..6a212b735493137b871943b3c13a82d2c876ee5f 100644
--- a/third_party/WebKit/Source/core/editing/spellcheck/IdleSpellCheckCallback.cpp
+++ b/third_party/WebKit/Source/core/editing/spellcheck/IdleSpellCheckCallback.cpp
@@ -27,7 +27,7 @@ namespace {
const int kColdModeTimerIntervalMS = 1000;
const int kConsecutiveColdModeTimerIntervalMS = 200;
-const int kRequestTimeoutMS = 200;
+const int kHotModeRequestTimeoutMS = 200;
const int kInvalidHandle = -1;
const int kDummyHandleForForcedInvocation = -2;
const double kForcedInvocationDeadlineSeconds = 10;
@@ -64,14 +64,6 @@ bool IdleSpellCheckCallback::isSpellCheckingEnabled() const {
return frame().spellChecker().isSpellCheckingEnabled();
}
-void IdleSpellCheckCallback::requestInvocation() {
- DCHECK_EQ(m_idleCallbackHandle, kInvalidHandle);
-
- IdleRequestOptions options;
- options.setTimeout(kRequestTimeoutMS);
- m_idleCallbackHandle = frame().document()->requestIdleCallback(this, options);
-}
-
void IdleSpellCheckCallback::deactivate() {
m_state = State::kInactive;
if (m_coldModeTimer.isActive())
@@ -95,8 +87,14 @@ void IdleSpellCheckCallback::setNeedsInvocation() {
m_coldModeTimer.stop();
}
- if (m_state != State::kColdModeRequested)
- requestInvocation();
+ if (m_state == State::kColdModeRequested) {
+ frame().document()->cancelIdleCallback(m_idleCallbackHandle);
+ m_idleCallbackHandle = kInvalidHandle;
+ }
+
+ IdleRequestOptions options;
+ options.setTimeout(kHotModeRequestTimeoutMS);
+ m_idleCallbackHandle = frame().document()->requestIdleCallback(this, options);
m_state = State::kHotModeRequested;
}
@@ -126,7 +124,8 @@ void IdleSpellCheckCallback::coldModeTimerFired(TimerBase*) {
return;
}
- requestInvocation();
+ m_idleCallbackHandle =
+ frame().document()->requestIdleCallback(this, IdleRequestOptions());
m_state = State::kColdModeRequested;
}

Powered by Google App Engine
This is Rietveld 408576698