| Index: components/spellcheck/renderer/spellcheck_provider.cc
|
| diff --git a/components/spellcheck/renderer/spellcheck_provider.cc b/components/spellcheck/renderer/spellcheck_provider.cc
|
| index 964e1d7a811ba97447293a70f57d81f33d5b1014..abd2cd5422f17f20e0619485e6f9d9a5ded8429d 100644
|
| --- a/components/spellcheck/renderer/spellcheck_provider.cc
|
| +++ b/components/spellcheck/renderer/spellcheck_provider.cc
|
| @@ -11,7 +11,6 @@
|
| #include "components/spellcheck/renderer/spellcheck_language.h"
|
| #include "components/spellcheck/spellcheck_build_features.h"
|
| #include "content/public/renderer/render_frame.h"
|
| -#include "content/public/renderer/render_view.h"
|
| #include "third_party/WebKit/public/platform/WebVector.h"
|
| #include "third_party/WebKit/public/web/WebDocument.h"
|
| #include "third_party/WebKit/public/web/WebElement.h"
|
| @@ -19,7 +18,6 @@
|
| #include "third_party/WebKit/public/web/WebTextCheckingCompletion.h"
|
| #include "third_party/WebKit/public/web/WebTextCheckingResult.h"
|
| #include "third_party/WebKit/public/web/WebTextDecorationType.h"
|
| -#include "third_party/WebKit/public/web/WebView.h"
|
|
|
| using blink::WebElement;
|
| using blink::WebLocalFrame;
|
| @@ -36,16 +34,14 @@ static_assert(int(blink::kWebTextDecorationTypeGrammar) ==
|
| int(SpellCheckResult::GRAMMAR),
|
| "mismatching enums");
|
|
|
| -SpellCheckProvider::SpellCheckProvider(
|
| - content::RenderView* render_view,
|
| - SpellCheck* spellcheck)
|
| - : content::RenderViewObserver(render_view),
|
| - content::RenderViewObserverTracker<SpellCheckProvider>(render_view),
|
| +SpellCheckProvider::SpellCheckProvider(content::RenderFrame* render_frame,
|
| + SpellCheck* spellcheck)
|
| + : content::RenderFrameObserver(render_frame),
|
| + content::RenderFrameObserverTracker<SpellCheckProvider>(render_frame),
|
| spellcheck_(spellcheck) {
|
| DCHECK(spellcheck_);
|
| - if (render_view) { // NULL in unit tests.
|
| - EnableSpellcheck(spellcheck_->IsSpellcheckEnabled());
|
| - }
|
| + if (render_frame) // NULL in unit tests.
|
| + render_frame->GetWebFrame()->SetTextCheckClient(this);
|
| }
|
|
|
| SpellCheckProvider::~SpellCheckProvider() {
|
| @@ -100,7 +96,7 @@ bool SpellCheckProvider::OnMessageReceived(const IPC::Message& message) {
|
|
|
| void SpellCheckProvider::FocusedNodeChanged(const blink::WebNode& unused) {
|
| #if BUILDFLAG(USE_BROWSER_SPELLCHECKER)
|
| - WebLocalFrame* frame = render_view()->GetWebView()->FocusedFrame();
|
| + WebLocalFrame* frame = render_frame()->GetWebFrame();
|
| WebElement element = frame->GetDocument().IsNull()
|
| ? WebElement()
|
| : frame->GetDocument().FocusedElement();
|
| @@ -228,15 +224,7 @@ void SpellCheckProvider::OnRespondTextCheck(
|
| #endif
|
|
|
| void SpellCheckProvider::EnableSpellcheck(bool enable) {
|
| - if (!render_view()->GetWebView())
|
| - return;
|
| -
|
| - WebLocalFrame* frame = render_view()->GetWebView()->FocusedFrame();
|
| - // TODO(yabinh): The null check should be unnecessary.
|
| - // See crbug.com/625068
|
| - if (!frame)
|
| - return;
|
| -
|
| + WebLocalFrame* frame = render_frame()->GetWebFrame();
|
| frame->EnableSpellChecking(enable);
|
| if (!enable)
|
| frame->RemoveSpellingMarkers();
|
|
|