Commit 8d7d05b9 authored by Xiaocheng Hu's avatar Xiaocheng Hu Committed by Commit Bot

Unify marker removal logic when spellchecking is globally disabled

When spellchecking is globally disabled (via context menu or
settings), all spelling markers should be removed. Currently, the
marker removal logic is duplicated at two places.

This patch unifies the logic and ensures that the removal is done
exactly once for each frame.

This is also a preparation patch for removing Blink-side maintenance
of the global spellcheck enabled status.

All-in-one patch: crrev.com/c/821496

Removal plan of Blink-side status: https://goo.gl/grtURZ

Bug: 710097
Change-Id: I84d33cef5db2aa6ffeb1b66568dee037cba4a737
Reviewed-on: https://chromium-review.googlesource.com/826259Reviewed-by: default avatarRouslan Solomakhin <rouslan@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524003}
parent 3270e26c
...@@ -61,6 +61,10 @@ bool UpdateSpellcheckEnabled::Visit(content::RenderFrame* render_frame) { ...@@ -61,6 +61,10 @@ bool UpdateSpellcheckEnabled::Visit(content::RenderFrame* render_frame) {
SpellCheckProvider* provider = SpellCheckProvider::Get(render_frame); SpellCheckProvider* provider = SpellCheckProvider::Get(render_frame);
DCHECK(provider); DCHECK(provider);
provider->EnableSpellcheck(enabled_); provider->EnableSpellcheck(enabled_);
if (!enabled_) {
if (render_frame && render_frame->GetWebFrame())
render_frame->GetWebFrame()->RemoveSpellingMarkers();
}
return true; return true;
} }
......
...@@ -249,8 +249,6 @@ void SpellCheckProvider::OnRespondTextCheck( ...@@ -249,8 +249,6 @@ void SpellCheckProvider::OnRespondTextCheck(
void SpellCheckProvider::EnableSpellcheck(bool enable) { void SpellCheckProvider::EnableSpellcheck(bool enable) {
WebLocalFrame* frame = render_frame()->GetWebFrame(); WebLocalFrame* frame = render_frame()->GetWebFrame();
frame->EnableSpellChecking(enable); frame->EnableSpellChecking(enable);
if (!enable)
frame->RemoveSpellingMarkers();
} }
bool SpellCheckProvider::SatisfyRequestFromCache( bool SpellCheckProvider::SatisfyRequestFromCache(
......
...@@ -119,18 +119,10 @@ void SpellChecker::ToggleSpellCheckingEnabled() { ...@@ -119,18 +119,10 @@ void SpellChecker::ToggleSpellCheckingEnabled() {
Page* page = GetFrame().GetPage(); Page* page = GetFrame().GetPage();
if (!page) if (!page)
return; return;
if (IsSpellCheckingEnabled()) { if (IsSpellCheckingEnabled())
page->SetSpellCheckStatus(Page::SpellCheckStatus::kForcedOff); page->SetSpellCheckStatus(Page::SpellCheckStatus::kForcedOff);
for (Frame* frame = page->MainFrame(); frame; else
frame = frame->Tree().TraverseNext()) {
if (!frame->IsLocalFrame())
continue;
ToLocalFrame(frame)->GetDocument()->Markers().RemoveMarkersOfTypes(
DocumentMarker::MisspellingMarkers());
}
} else {
page->SetSpellCheckStatus(Page::SpellCheckStatus::kForcedOn); page->SetSpellCheckStatus(Page::SpellCheckStatus::kForcedOn);
}
} }
void SpellChecker::IgnoreSpelling() { void SpellChecker::IgnoreSpelling() {
......
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