Commit 9afcc1e5 authored by Xiaocheng Hu's avatar Xiaocheng Hu Committed by Commit Bot

Revert "Remove cold mode idle time spellchecker flag"

This reverts commit d1c99618.

Reason for revert: Observed many crashes in M68 & M69. Not ready
for shipping.

Original change's description:
> Remove cold mode idle time spellchecker flag
>
> As cold mode idle time spellchecker is shipped into M68
> and no regression is obversed, this patch removes the flag
> from M69 as cleanup.
>
> Bug: 716642
> Change-Id: I8f850c52469590ee9d5e542c14f4dae842a6163a
> Reviewed-on: https://chromium-review.googlesource.com/1072953
> Reviewed-by: Kent Tamura <tkent@chromium.org>
> Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
> Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#561951}

TBR=yosin@chromium.org,tkent@chromium.org,xiaochengh@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 716642, 856376, 859056, 859443
Change-Id: I91426509a315a07bf4f548ebafe825c2ef856999
Reviewed-on: https://chromium-review.googlesource.com/1123120
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: default avatarYoshifumi Inoue <yosin@chromium.org>
Reviewed-by: default avatarXiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572086}
parent a1bab9cc
...@@ -107,7 +107,8 @@ void IdleSpellCheckCallback::SetNeedsInvocation() { ...@@ -107,7 +107,8 @@ void IdleSpellCheckCallback::SetNeedsInvocation() {
} }
void IdleSpellCheckCallback::SetNeedsColdModeInvocation() { void IdleSpellCheckCallback::SetNeedsColdModeInvocation() {
if (!IsSpellCheckingEnabled()) { if (!RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled() ||
!IsSpellCheckingEnabled()) {
Deactivate(); Deactivate();
return; return;
} }
...@@ -125,6 +126,7 @@ void IdleSpellCheckCallback::SetNeedsColdModeInvocation() { ...@@ -125,6 +126,7 @@ void IdleSpellCheckCallback::SetNeedsColdModeInvocation() {
} }
void IdleSpellCheckCallback::ColdModeTimerFired(TimerBase*) { void IdleSpellCheckCallback::ColdModeTimerFired(TimerBase*) {
DCHECK(RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled());
DCHECK_EQ(State::kColdModeTimerStarted, state_); DCHECK_EQ(State::kColdModeTimerStarted, state_);
if (!IsSpellCheckingEnabled() || !IsAvailable()) { if (!IsSpellCheckingEnabled() || !IsAvailable()) {
...@@ -180,6 +182,7 @@ void IdleSpellCheckCallback::invoke(IdleDeadline* deadline) { ...@@ -180,6 +182,7 @@ void IdleSpellCheckCallback::invoke(IdleDeadline* deadline) {
HotModeInvocation(deadline); HotModeInvocation(deadline);
SetNeedsColdModeInvocation(); SetNeedsColdModeInvocation();
} else if (state_ == State::kColdModeRequested) { } else if (state_ == State::kColdModeRequested) {
DCHECK(RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled());
state_ = State::kInColdModeInvocation; state_ = State::kInColdModeInvocation;
cold_mode_requester_->Invoke(deadline); cold_mode_requester_->Invoke(deadline);
if (cold_mode_requester_->FullyChecked()) if (cold_mode_requester_->FullyChecked())
......
...@@ -37,8 +37,10 @@ class IdleSpellCheckCallbackTest : public SpellCheckTestBase { ...@@ -37,8 +37,10 @@ class IdleSpellCheckCallbackTest : public SpellCheckTestBase {
IdleChecker().SetNeedsInvocation(); IdleChecker().SetNeedsInvocation();
break; break;
case State::kColdModeTimerStarted: case State::kColdModeTimerStarted:
DCHECK(RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled());
break; break;
case State::kColdModeRequested: case State::kColdModeRequested:
DCHECK(RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled());
IdleChecker().SkipColdModeTimerForTesting(); IdleChecker().SkipColdModeTimerForTesting();
break; break;
case State::kInHotModeInvocation: case State::kInHotModeInvocation:
...@@ -51,9 +53,19 @@ class IdleSpellCheckCallbackTest : public SpellCheckTestBase { ...@@ -51,9 +53,19 @@ class IdleSpellCheckCallbackTest : public SpellCheckTestBase {
// Test cases for lifecycle state transitions. // Test cases for lifecycle state transitions.
TEST_F(IdleSpellCheckCallbackTest, InitializationWithColdMode) { TEST_F(IdleSpellCheckCallbackTest, InitializationWithColdMode) {
if (!RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
EXPECT_EQ(State::kColdModeTimerStarted, IdleChecker().GetState()); EXPECT_EQ(State::kColdModeTimerStarted, IdleChecker().GetState());
} }
TEST_F(IdleSpellCheckCallbackTest, InitializationWithoutColdMode) {
if (RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
EXPECT_EQ(State::kInactive, IdleChecker().GetState());
}
TEST_F(IdleSpellCheckCallbackTest, RequestWhenInactive) { TEST_F(IdleSpellCheckCallbackTest, RequestWhenInactive) {
TransitTo(State::kInactive); TransitTo(State::kInactive);
IdleChecker().SetNeedsInvocation(); IdleChecker().SetNeedsInvocation();
...@@ -71,6 +83,9 @@ TEST_F(IdleSpellCheckCallbackTest, RequestWhenHotModeRequested) { ...@@ -71,6 +83,9 @@ TEST_F(IdleSpellCheckCallbackTest, RequestWhenHotModeRequested) {
} }
TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeTimerStarted) { TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeTimerStarted) {
if (!RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
TransitTo(State::kColdModeTimerStarted); TransitTo(State::kColdModeTimerStarted);
IdleChecker().SetNeedsInvocation(); IdleChecker().SetNeedsInvocation();
EXPECT_EQ(State::kHotModeRequested, IdleChecker().GetState()); EXPECT_EQ(State::kHotModeRequested, IdleChecker().GetState());
...@@ -78,6 +93,9 @@ TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeTimerStarted) { ...@@ -78,6 +93,9 @@ TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeTimerStarted) {
} }
TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeRequested) { TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeRequested) {
if (!RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
TransitTo(State::kColdModeRequested); TransitTo(State::kColdModeRequested);
int handle = IdleChecker().IdleCallbackHandle(); int handle = IdleChecker().IdleCallbackHandle();
IdleChecker().SetNeedsInvocation(); IdleChecker().SetNeedsInvocation();
...@@ -86,13 +104,28 @@ TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeRequested) { ...@@ -86,13 +104,28 @@ TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeRequested) {
EXPECT_NE(-1, IdleChecker().IdleCallbackHandle()); EXPECT_NE(-1, IdleChecker().IdleCallbackHandle());
} }
TEST_F(IdleSpellCheckCallbackTest, HotModeTransitToInactive) {
if (RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
TransitTo(State::kHotModeRequested);
IdleChecker().ForceInvocationForTesting();
EXPECT_EQ(State::kInactive, IdleChecker().GetState());
}
TEST_F(IdleSpellCheckCallbackTest, HotModeTransitToColdMode) { TEST_F(IdleSpellCheckCallbackTest, HotModeTransitToColdMode) {
if (!RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
TransitTo(State::kHotModeRequested); TransitTo(State::kHotModeRequested);
IdleChecker().ForceInvocationForTesting(); IdleChecker().ForceInvocationForTesting();
EXPECT_EQ(State::kColdModeTimerStarted, IdleChecker().GetState()); EXPECT_EQ(State::kColdModeTimerStarted, IdleChecker().GetState());
} }
TEST_F(IdleSpellCheckCallbackTest, ColdModeTimerStartedToRequested) { TEST_F(IdleSpellCheckCallbackTest, ColdModeTimerStartedToRequested) {
if (!RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
TransitTo(State::kColdModeTimerStarted); TransitTo(State::kColdModeTimerStarted);
IdleChecker().SkipColdModeTimerForTesting(); IdleChecker().SkipColdModeTimerForTesting();
EXPECT_EQ(State::kColdModeRequested, IdleChecker().GetState()); EXPECT_EQ(State::kColdModeRequested, IdleChecker().GetState());
...@@ -100,6 +133,9 @@ TEST_F(IdleSpellCheckCallbackTest, ColdModeTimerStartedToRequested) { ...@@ -100,6 +133,9 @@ TEST_F(IdleSpellCheckCallbackTest, ColdModeTimerStartedToRequested) {
} }
TEST_F(IdleSpellCheckCallbackTest, ColdModeStayAtColdMode) { TEST_F(IdleSpellCheckCallbackTest, ColdModeStayAtColdMode) {
if (!RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
TransitTo(State::kColdModeRequested); TransitTo(State::kColdModeRequested);
IdleChecker().SetNeedsMoreColdModeInvocationForTesting(); IdleChecker().SetNeedsMoreColdModeInvocationForTesting();
IdleChecker().ForceInvocationForTesting(); IdleChecker().ForceInvocationForTesting();
...@@ -107,6 +143,9 @@ TEST_F(IdleSpellCheckCallbackTest, ColdModeStayAtColdMode) { ...@@ -107,6 +143,9 @@ TEST_F(IdleSpellCheckCallbackTest, ColdModeStayAtColdMode) {
} }
TEST_F(IdleSpellCheckCallbackTest, ColdModeToInactive) { TEST_F(IdleSpellCheckCallbackTest, ColdModeToInactive) {
if (!RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
TransitTo(State::kColdModeRequested); TransitTo(State::kColdModeRequested);
IdleChecker().ForceInvocationForTesting(); IdleChecker().ForceInvocationForTesting();
EXPECT_EQ(State::kInactive, IdleChecker().GetState()); EXPECT_EQ(State::kInactive, IdleChecker().GetState());
...@@ -125,12 +164,18 @@ TEST_F(IdleSpellCheckCallbackTest, DetachWhenHotModeRequested) { ...@@ -125,12 +164,18 @@ TEST_F(IdleSpellCheckCallbackTest, DetachWhenHotModeRequested) {
} }
TEST_F(IdleSpellCheckCallbackTest, DetachWhenColdModeTimerStarted) { TEST_F(IdleSpellCheckCallbackTest, DetachWhenColdModeTimerStarted) {
if (!RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
TransitTo(State::kColdModeTimerStarted); TransitTo(State::kColdModeTimerStarted);
GetDocument().Shutdown(); GetDocument().Shutdown();
EXPECT_EQ(State::kInactive, IdleChecker().GetState()); EXPECT_EQ(State::kInactive, IdleChecker().GetState());
} }
TEST_F(IdleSpellCheckCallbackTest, DetachWhenColdModeRequested) { TEST_F(IdleSpellCheckCallbackTest, DetachWhenColdModeRequested) {
if (!RuntimeEnabledFeatures::IdleTimeColdModeSpellCheckingEnabled())
return;
TransitTo(State::kColdModeRequested); TransitTo(State::kColdModeRequested);
GetDocument().Shutdown(); GetDocument().Shutdown();
EXPECT_EQ(State::kInactive, IdleChecker().GetState()); EXPECT_EQ(State::kInactive, IdleChecker().GetState());
......
...@@ -572,6 +572,10 @@ ...@@ -572,6 +572,10 @@
name: "IDBObserver", name: "IDBObserver",
status: "experimental", status: "experimental",
}, },
{
name: "IdleTimeColdModeSpellChecking",
status: "stable",
},
{ {
name: "ImageDecodingAttribute", name: "ImageDecodingAttribute",
status: "stable", status: "stable",
......
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