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; |
} |